diff --git a/common/src/main/java/net/cmr/jurassicrevived/CommonClientClass.java b/common/src/main/java/net/cmr/jurassicrevived/CommonClientClass.java index 083e173..474bc6b 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/CommonClientClass.java +++ b/common/src/main/java/net/cmr/jurassicrevived/CommonClientClass.java @@ -111,6 +111,10 @@ public class CommonClientClass { EntityRendererRegistry.register(ModEntities.TROODON, TroodonRenderer::new); EntityRendererRegistry.register(ModEntities.UTAHRAPTOR, UtahraptorRenderer::new); EntityRendererRegistry.register(ModEntities.ACHILLOBATOR, AchillobatorRenderer::new); + EntityRendererRegistry.register(ModEntities.SUCHOMIMUS, SuchomimusRenderer::new); + EntityRendererRegistry.register(ModEntities.CHILESAURUS, ChilesaurusRenderer::new); + EntityRendererRegistry.register(ModEntities.MUSSASAURUS, MussasaurusRenderer::new); + EntityRendererRegistry.register(ModEntities.THESCELOSAURUS, ThescelosaurusRenderer::new); if (Platform.isFabric()) { registerSpawnEggColors(); diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/ModBlocks.java b/common/src/main/java/net/cmr/jurassicrevived/block/ModBlocks.java index 09825a4..c5ca39c 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/ModBlocks.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/ModBlocks.java @@ -445,6 +445,18 @@ public class ModBlocks { public static final RegistrySupplier ACHILLOBATOR_EGG = registerBlock("achillobator_egg", () -> new EggBlock(BlockBehaviour.Properties.of().strength(4f).requiresCorrectToolForDrops(), ModEntities.ACHILLOBATOR)); + public static final RegistrySupplier SUCHOMIMUS_EGG = registerBlock("suchomimus_egg", + () -> new EggBlock(BlockBehaviour.Properties.of().strength(4f).requiresCorrectToolForDrops(), ModEntities.SUCHOMIMUS)); + + public static final RegistrySupplier CHILESAURUS_EGG = registerBlock("chilesaurus_egg", + () -> new EggBlock(BlockBehaviour.Properties.of().strength(4f).requiresCorrectToolForDrops(), ModEntities.CHILESAURUS)); + + public static final RegistrySupplier THESCELOSAURUS_EGG = registerBlock("thescelosaurus_egg", + () -> new EggBlock(BlockBehaviour.Properties.of().strength(4f).requiresCorrectToolForDrops(), ModEntities.THESCELOSAURUS)); + + public static final RegistrySupplier MUSSASAURUS_EGG = registerBlock("mussasaurus_egg", + () -> new EggBlock(BlockBehaviour.Properties.of().strength(4f).requiresCorrectToolForDrops(), ModEntities.MUSSASAURUS)); + public static final RegistrySupplier INCUBATED_APATOSAURUS_EGG = registerBlock("incubated_apatosaurus_egg", @@ -669,6 +681,18 @@ public class ModBlocks { public static final RegistrySupplier INCUBATED_ACHILLOBATOR_EGG = registerBlock("incubated_achillobator_egg", () -> new IncubatedEggBlock(BlockBehaviour.Properties.of().strength(4f).requiresCorrectToolForDrops(), ModEntities.ACHILLOBATOR)); + public static final RegistrySupplier INCUBATED_SUCHOMIMUS_EGG = registerBlock("incubated_suchomimus_egg", + () -> new IncubatedEggBlock(BlockBehaviour.Properties.of().strength(4f).requiresCorrectToolForDrops(), ModEntities.SUCHOMIMUS)); + + public static final RegistrySupplier INCUBATED_CHILESAURUS_EGG = registerBlock("incubated_chilesaurus_egg", + () -> new IncubatedEggBlock(BlockBehaviour.Properties.of().strength(4f).requiresCorrectToolForDrops(), ModEntities.CHILESAURUS)); + + public static final RegistrySupplier INCUBATED_THESCELOSAURUS_EGG = registerBlock("incubated_thescelosaurus_egg", + () -> new IncubatedEggBlock(BlockBehaviour.Properties.of().strength(4f).requiresCorrectToolForDrops(), ModEntities.THESCELOSAURUS)); + + public static final RegistrySupplier INCUBATED_MUSSASAURUS_EGG = registerBlock("incubated_mussasaurus_egg", + () -> new IncubatedEggBlock(BlockBehaviour.Properties.of().strength(4f).requiresCorrectToolForDrops(), ModEntities.MUSSASAURUS)); + // --- Helper Methods --- diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/custom/FossilCleanerBlock.java b/common/src/main/java/net/cmr/jurassicrevived/block/custom/FossilCleanerBlock.java index f326f47..94355ff 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/custom/FossilCleanerBlock.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/custom/FossilCleanerBlock.java @@ -188,7 +188,7 @@ public class FossilCleanerBlock extends BaseEntityBlock { if (!pPlayer.getAbilities().instabuild) { pPlayer.setItemInHand(pHand, new ItemStack(Items.BUCKET)); } - // Actual addition is handled in BE tick for simplicity across loaders + fossilCleanerBlockEntity.getFluidHandler(null).fill(dev.architectury.fluid.FluidStack.create(net.minecraft.world.level.material.Fluids.WATER, 1000), false); return ItemInteractionResult.SUCCESS; } } @@ -211,6 +211,7 @@ public class FossilCleanerBlock extends BaseEntityBlock { if (!player.getAbilities().instabuild) { player.setItemInHand(hand, new ItemStack(Items.BUCKET)); } + fossilCleanerBlockEntity.getFluidHandler(null).fill(dev.architectury.fluid.FluidStack.create(net.minecraft.world.level.material.Fluids.WATER, 1000), false); return InteractionResult.SUCCESS; } } diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/custom/PipeBlock.java b/common/src/main/java/net/cmr/jurassicrevived/block/custom/PipeBlock.java index d2b73f5..15bf8e3 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/custom/PipeBlock.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/custom/PipeBlock.java @@ -137,9 +137,11 @@ public class PipeBlock extends Block implements EntityBlock, SimpleWaterloggedBl BlockPos pos = ctx.getClickedPos(); BlockState state = this.defaultBlockState() .setValue(WATERLOGGED, level.getFluidState(pos).getType() == Fluids.WATER); + for (Direction dir : Direction.values()) { state = setConnectionForDirection(level, pos, state, dir); } + return state; } @@ -149,6 +151,7 @@ public class PipeBlock extends Block implements EntityBlock, SimpleWaterloggedBl if (state.getValue(WATERLOGGED)) { level.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(level)); } + return setConnectionForDirection(level, pos, state, direction); } @@ -285,18 +288,11 @@ public class PipeBlock extends Block implements EntityBlock, SimpleWaterloggedBl if (val == ConnectionType.CONNECTOR) { return state.setValue(prop, ConnectionType.CONNECTOR_PULL); } else if (val == ConnectionType.CONNECTOR_PULL) { + return state.setValue(prop, ConnectionType.NONE); + } else if (val == ConnectionType.NONE) { return state.setValue(prop, ConnectionType.CONNECTOR); - } else { - Direction nearest = nearestConnectedDirection(state, hit, pos); - if (nearest == null) return null; - prop = getProp(nearest); - val = state.getValue(prop); - if (val == ConnectionType.CONNECTOR) { - return state.setValue(prop, ConnectionType.CONNECTOR_PULL); - } else if (val == ConnectionType.CONNECTOR_PULL) { - return state.setValue(prop, ConnectionType.CONNECTOR); - } } + return null; } @@ -313,17 +309,32 @@ public class PipeBlock extends Block implements EntityBlock, SimpleWaterloggedBl if (intersects(CAP_WEST, x, y, z) || intersects(ARM_WEST, x, y, z)) { if (state.getValue(WEST) != ConnectionType.NONE) return Direction.WEST; } if (intersects(CAP_EAST, x, y, z) || intersects(ARM_EAST, x, y, z)) { if (state.getValue(EAST) != ConnectionType.NONE) return Direction.EAST; } - return nearestConnectedDirection(state, x, y, z); + return nearestDirection(x, y, z); } - private static Direction nearestConnectedDirection(BlockState state, BlockHitResult hit, BlockPos pos) { - Vec3 local = hit.getLocation().subtract(pos.getX(), pos.getY(), pos.getZ()); - double x = Mth.clamp(local.x * 16.0, 0.0, 16.0); - double y = Mth.clamp(local.y * 16.0, 0.0, 16.0); - double z = Mth.clamp(local.z * 16.0, 0.0, 16.0); - return nearestConnectedDirection(state, x, y, z); + private static Direction nearestDirection(double x, double y, double z) { + Direction best = null; + double bestScore = Double.NEGATIVE_INFINITY; + + for (Direction d : Direction.values()) { + double score = switch (d) { + case UP -> y; + case DOWN -> 16 - y; + case NORTH -> 16 - z; + case SOUTH -> z; + case WEST -> 16 - x; + case EAST -> x; + }; + if (score > bestScore) { + bestScore = score; + best = d; + } + } + return best; } + + private static Direction nearestConnectedDirection(BlockState state, double x, double y, double z) { Direction best = null; double bestScore = Double.NEGATIVE_INFINITY; diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/ModBlockEntities.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/ModBlockEntities.java index 7cb1a71..f1958f4 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/ModBlockEntities.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/ModBlockEntities.java @@ -105,6 +105,10 @@ public class ModBlockEntities { ModBlocks.UTAHRAPTOR_EGG.get(), ModBlocks.ZHENYUANOPTERUS_EGG.get(), ModBlocks.ACHILLOBATOR_EGG.get(), + ModBlocks.SUCHOMIMUS_EGG.get(), + ModBlocks.CHILESAURUS_EGG.get(), + ModBlocks.MUSSASAURUS_EGG.get(), + ModBlocks.THESCELOSAURUS_EGG.get(), ModBlocks.INCUBATED_APATOSAURUS_EGG.get(), ModBlocks.INCUBATED_ALBERTOSAURUS_EGG.get(), ModBlocks.INCUBATED_VELOCIRAPTOR_EGG.get(), @@ -178,7 +182,11 @@ public class ModBlockEntities { ModBlocks.INCUBATED_TUPUXUARA_EGG.get(), ModBlocks.INCUBATED_UTAHRAPTOR_EGG.get(), ModBlocks.INCUBATED_ZHENYUANOPTERUS_EGG.get(), - ModBlocks.INCUBATED_ACHILLOBATOR_EGG.get() + ModBlocks.INCUBATED_ACHILLOBATOR_EGG.get(), + ModBlocks.INCUBATED_SUCHOMIMUS_EGG.get(), + ModBlocks.INCUBATED_MUSSASAURUS_EGG.get(), + ModBlocks.INCUBATED_THESCELOSAURUS_EGG.get(), + ModBlocks.INCUBATED_CHILESAURUS_EGG.get() ).build(null)); public static final RegistrySupplier> DNA_EXTRACTOR_BE = diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAAnalyzerBlockEntity.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAAnalyzerBlockEntity.java index 7ca1cd5..c3fb28c 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAAnalyzerBlockEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAAnalyzerBlockEntity.java @@ -23,6 +23,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; @@ -31,6 +32,7 @@ import net.minecraft.world.inventory.ContainerData; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.HopperBlockEntity; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @@ -45,7 +47,9 @@ import java.util.Optional; public class DNAAnalyzerBlockEntity extends BlockEntity implements ExtendedMenuProvider, ModEnergyUtil.EnergyProvider { - public final SimpleContainer itemHandler = new SimpleContainer(5) { + private boolean allowInternalExtraction = false; + + public final SimpleContainer itemHandler = new SimpleContainer(3) { @Override public void setChanged() { super.setChanged(); @@ -54,6 +58,30 @@ public class DNAAnalyzerBlockEntity extends BlockEntity implements ExtendedMenuP level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canPlaceItem(int slot, ItemStack stack) { + if (slot == 2) return false; + if (slot == 0) return stack.is(net.cmr.jurassicrevived.item.ModItems.TEST_TUBE.get()); + if (slot == 1) return stack.is(net.cmr.jurassicrevived.item.ModItems.FROG_MATERIAL.get()); + return false; + } + + @Override + public ItemStack removeItem(int slot, int amount) { + if ((slot == TEST_TUBE_SLOT || slot == MATERIAL_SLOT) && !allowInternalExtraction) { + boolean isPlayer = false; + for (StackTraceElement element : Thread.currentThread().getStackTrace()) { + String className = element.getClassName(); + if (className.contains("inventory") || className.contains("player") || className.contains("ServerGamePacketListenerImpl")) { + isPlayer = true; + break; + } + } + if (!isPlayer) return ItemStack.EMPTY; + } + return super.removeItem(slot, amount); + } }; private static final int TEST_TUBE_SLOT = 0; @@ -107,6 +135,16 @@ public class DNAAnalyzerBlockEntity extends BlockEntity implements ExtendedMenuP level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canExtract() { + return false; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + return 0; + } }; } @@ -239,6 +277,7 @@ public class DNAAnalyzerBlockEntity extends BlockEntity implements ExtendedMenuP if (level.isClientSide) return; pullEnergyFromNeighbors(); + pushOutputsToHoppers(); //? if >1.20.1 { /*Optional> recipeOpt = getCurrentRecipe(); @@ -288,14 +327,19 @@ public class DNAAnalyzerBlockEntity extends BlockEntity implements ExtendedMenuP } private void craftItem(ItemStack output) { - ItemStack current = itemHandler.getItem(OUTPUT_SLOT_1); - if (current.isEmpty()) { - itemHandler.setItem(OUTPUT_SLOT_1, output.copy()); - } else { - current.grow(output.getCount()); + allowInternalExtraction = true; + try { + ItemStack current = itemHandler.getItem(OUTPUT_SLOT_1); + if (current.isEmpty()) { + itemHandler.setItem(OUTPUT_SLOT_1, output.copy()); + } else { + current.grow(output.getCount()); + } + itemHandler.removeItem(0, 1); + itemHandler.removeItem(1, 1); + } finally { + allowInternalExtraction = false; } - itemHandler.removeItem(TEST_TUBE_SLOT, 1); - itemHandler.removeItem(MATERIAL_SLOT, 1); } private boolean canInsertOutput(ItemStack output) { @@ -392,6 +436,29 @@ public class DNAAnalyzerBlockEntity extends BlockEntity implements ExtendedMenuP } } + private void pushOutputsToHoppers() { + pushSlotToHoppers(OUTPUT_SLOT_1); + } + + private void pushSlotToHoppers(int slot) { + ItemStack stack = itemHandler.getItem(slot); + if (stack.isEmpty()) return; + + for (Direction dir : Direction.values()) { + BlockEntity be = level.getBlockEntity(worldPosition.relative(dir)); + if (!(be instanceof Container target)) continue; + + ItemStack toMove = stack.copy(); + ItemStack remainder = HopperBlockEntity.addItem(itemHandler, target, toMove, dir); + + if (remainder.getCount() != stack.getCount()) { + itemHandler.setItem(slot, remainder); + setChanged(); + return; + } + } + } + //? if >1.20.1 { /*@Override public CompoundTag getUpdateTag(HolderLookup.Provider registries) { return saveWithoutMetadata(registries); } diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAExtractorBlockEntity.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAExtractorBlockEntity.java index fd52fe3..7dfdabd 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAExtractorBlockEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAExtractorBlockEntity.java @@ -23,6 +23,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; @@ -31,6 +32,7 @@ import net.minecraft.world.inventory.ContainerData; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.HopperBlockEntity; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @@ -45,6 +47,8 @@ import java.util.Optional; public class DNAExtractorBlockEntity extends BlockEntity implements ExtendedMenuProvider, ModEnergyUtil.EnergyProvider { + private boolean allowInternalExtraction = false; + public final SimpleContainer itemHandler = new SimpleContainer(5) { @Override public void setChanged() { @@ -54,6 +58,30 @@ public class DNAExtractorBlockEntity extends BlockEntity implements ExtendedMenu level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canPlaceItem(int slot, ItemStack stack) { + if (slot >= 2 && slot <= 4) return false; + if (slot == TEST_TUBE_SLOT) return stack.is(ModItems.TEST_TUBE.get()); + if (slot == MATERIAL_SLOT) return stack.is(ModItems.MOSQUITO_IN_AMBER.get()) || stack.is(ModTags.Items.TISSUES); + return false; + } + + @Override + public ItemStack removeItem(int slot, int amount) { + if ((slot == TEST_TUBE_SLOT || slot == MATERIAL_SLOT) && !allowInternalExtraction) { + boolean isPlayer = false; + for (StackTraceElement element : Thread.currentThread().getStackTrace()) { + String className = element.getClassName(); + if (className.contains("inventory") || className.contains("player") || className.contains("ServerGamePacketListenerImpl")) { + isPlayer = true; + break; + } + } + if (!isPlayer) return ItemStack.EMPTY; + } + return super.removeItem(slot, amount); + } }; private static final int TEST_TUBE_SLOT = 0; @@ -107,6 +135,16 @@ public class DNAExtractorBlockEntity extends BlockEntity implements ExtendedMenu level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canExtract() { + return false; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + return 0; + } }; } @@ -237,6 +275,7 @@ public class DNAExtractorBlockEntity extends BlockEntity implements ExtendedMenu if (level.isClientSide) return; pullEnergyFromNeighbors(); + pushOutputsToHoppers(); //? if >1.20.1 { /*Optional> recipeOpt = getCurrentRecipe(); @@ -286,19 +325,24 @@ public class DNAExtractorBlockEntity extends BlockEntity implements ExtendedMenu } private void craftItem(ItemStack output) { - for (int slot : OUTPUT_SLOTS) { - ItemStack stack = itemHandler.getItem(slot); - if (stack.isEmpty()) { - itemHandler.setItem(slot, output.copy()); - itemHandler.removeItem(TEST_TUBE_SLOT, 1); - itemHandler.removeItem(MATERIAL_SLOT, 1); - return; - } else if (isSameItem(stack, output) && stack.getCount() + output.getCount() <= stack.getMaxStackSize()) { - stack.grow(output.getCount()); - itemHandler.removeItem(TEST_TUBE_SLOT, 1); - itemHandler.removeItem(MATERIAL_SLOT, 1); - return; + allowInternalExtraction = true; + try { + for (int slot : OUTPUT_SLOTS) { + ItemStack stack = itemHandler.getItem(slot); + if (stack.isEmpty()) { + itemHandler.setItem(slot, output.copy()); + itemHandler.removeItem(TEST_TUBE_SLOT, 1); + itemHandler.removeItem(MATERIAL_SLOT, 1); + return; + } else if (isSameItem(stack, output) && stack.getCount() + output.getCount() <= stack.getMaxStackSize()) { + stack.grow(output.getCount()); + itemHandler.removeItem(TEST_TUBE_SLOT, 1); + itemHandler.removeItem(MATERIAL_SLOT, 1); + return; + } } + } finally { + allowInternalExtraction = false; } } @@ -403,6 +447,31 @@ public class DNAExtractorBlockEntity extends BlockEntity implements ExtendedMenu } } + private void pushOutputsToHoppers() { + for (int slot : OUTPUT_SLOTS) { + pushSlotToHoppers(slot); + } + } + + private void pushSlotToHoppers(int slot) { + ItemStack stack = itemHandler.getItem(slot); + if (stack.isEmpty()) return; + + for (Direction dir : Direction.values()) { + BlockEntity be = level.getBlockEntity(worldPosition.relative(dir)); + if (!(be instanceof Container target)) continue; + + ItemStack toMove = stack.copy(); + ItemStack remainder = HopperBlockEntity.addItem(itemHandler, target, toMove, dir); + + if (remainder.getCount() != stack.getCount()) { + itemHandler.setItem(slot, remainder); + setChanged(); + return; + } + } + } + //? if >1.20.1 { /*@Override public CompoundTag getUpdateTag(HolderLookup.Provider registries) { return saveWithoutMetadata(registries); } diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAHybridizerBlockEntity.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAHybridizerBlockEntity.java index a73baa6..46812e8 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAHybridizerBlockEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/DNAHybridizerBlockEntity.java @@ -10,6 +10,7 @@ import net.cmr.jurassicrevived.recipe.DNAHybridizerRecipe; import net.cmr.jurassicrevived.recipe.DNAHybridizerRecipeInput; import net.cmr.jurassicrevived.recipe.ModRecipes; import net.cmr.jurassicrevived.screen.custom.DNAHybridizerMenu; +import net.cmr.jurassicrevived.util.ModTags; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.registries.BuiltInRegistries; @@ -20,6 +21,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; @@ -29,6 +31,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.HopperBlockEntity; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @@ -45,6 +48,8 @@ import java.util.Optional; public class DNAHybridizerBlockEntity extends BlockEntity implements ExtendedMenuProvider, ModEnergyUtil.EnergyProvider { + private boolean allowInternalExtraction = false; + public final SimpleContainer itemHandler = new SimpleContainer(11) { @Override public void setChanged() { @@ -54,6 +59,30 @@ public class DNAHybridizerBlockEntity extends BlockEntity implements ExtendedMen level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canPlaceItem(int slot, ItemStack stack) { + if (slot == OUTPUT_SLOT) return false; + if (slot >= 0 && slot <= 7) return stack.is(ModTags.Items.DNA); + if (slot == CATALYST_SLOT) return false; + return false; + } + + @Override + public ItemStack removeItem(int slot, int amount) { + if (slot != OUTPUT_SLOT && !allowInternalExtraction) { + boolean isPlayer = false; + for (StackTraceElement element : Thread.currentThread().getStackTrace()) { + String className = element.getClassName(); + if (className.contains("inventory") || className.contains("player") || className.contains("ServerGamePacketListenerImpl")) { + isPlayer = true; + break; + } + } + if (!isPlayer) return ItemStack.EMPTY; + } + return super.removeItem(slot, amount); + } }; private static final int[] DNA_SLOTS = {0, 1, 2, 3, 4, 5, 6, 7}; @@ -107,6 +136,16 @@ public class DNAHybridizerBlockEntity extends BlockEntity implements ExtendedMen level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canExtract() { + return false; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + return 0; + } }; } @@ -239,6 +278,7 @@ public class DNAHybridizerBlockEntity extends BlockEntity implements ExtendedMen if (level.isClientSide) return; pullEnergyFromNeighbors(); + pushOutputsToHoppers(); //? if >1.20.1 { /*Optional> recipeOpt = getCurrentRecipe(); @@ -297,14 +337,19 @@ public class DNAHybridizerBlockEntity extends BlockEntity implements ExtendedMen } private void craftItem(ItemStack output, List matchedIndices) { - ItemStack current = itemHandler.getItem(OUTPUT_SLOT); - if (current.isEmpty()) { - itemHandler.setItem(OUTPUT_SLOT, output.copy()); - } else { - current.grow(output.getCount()); - } - for (int idx : matchedIndices) { - itemHandler.removeItem(idx, 1); + allowInternalExtraction = true; + try { + ItemStack current = itemHandler.getItem(OUTPUT_SLOT); + if (current.isEmpty()) { + itemHandler.setItem(OUTPUT_SLOT, output.copy()); + } else { + current.grow(output.getCount()); + } + for (int idx : matchedIndices) { + itemHandler.removeItem(idx, 1); + } + } finally { + allowInternalExtraction = false; } } @@ -407,6 +452,29 @@ public class DNAHybridizerBlockEntity extends BlockEntity implements ExtendedMen } } + private void pushOutputsToHoppers() { + pushSlotToHoppers(OUTPUT_SLOT); + } + + private void pushSlotToHoppers(int slot) { + ItemStack stack = itemHandler.getItem(slot); + if (stack.isEmpty()) return; + + for (Direction dir : Direction.values()) { + BlockEntity be = level.getBlockEntity(worldPosition.relative(dir)); + if (!(be instanceof Container target)) continue; + + ItemStack toMove = stack.copy(); + ItemStack remainder = HopperBlockEntity.addItem(itemHandler, target, toMove, dir); + + if (remainder.getCount() != stack.getCount()) { + itemHandler.setItem(slot, remainder); + setChanged(); + return; + } + } + } + //? if >1.20.1 { /*@Override public CompoundTag getUpdateTag(HolderLookup.Provider registries) { return saveWithoutMetadata(registries); } diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/EmbryoCalcificationMachineBlockEntity.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/EmbryoCalcificationMachineBlockEntity.java index 7381937..eeffc89 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/EmbryoCalcificationMachineBlockEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/EmbryoCalcificationMachineBlockEntity.java @@ -10,6 +10,7 @@ import net.cmr.jurassicrevived.recipe.EmbryoCalcificationMachineRecipe; import net.cmr.jurassicrevived.recipe.EmbryoCalcificationMachineRecipeInput; import net.cmr.jurassicrevived.recipe.ModRecipes; import net.cmr.jurassicrevived.screen.custom.EmbryoCalcificationMachineMenu; +import net.cmr.jurassicrevived.util.ModTags; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.registries.BuiltInRegistries; @@ -20,14 +21,17 @@ import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; 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.ContainerData; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.HopperBlockEntity; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @@ -42,6 +46,8 @@ import java.util.Optional; public class EmbryoCalcificationMachineBlockEntity extends BlockEntity implements ExtendedMenuProvider, ModEnergyUtil.EnergyProvider { + private boolean allowInternalExtraction = false; + public final SimpleContainer itemHandler = new SimpleContainer(5) { @Override public void setChanged() { @@ -51,6 +57,30 @@ public class EmbryoCalcificationMachineBlockEntity extends BlockEntity implement level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canPlaceItem(int slot, ItemStack stack) { + if (slot == OUTPUT_SLOT) return false; + if (slot == SYRINGE_SLOT) return stack.is(ModTags.Items.SYRINGES); + if (slot == EGG_SLOT) return stack.is(Items.EGG); + return false; + } + + @Override + public ItemStack removeItem(int slot, int amount) { + if ((slot == SYRINGE_SLOT|| slot == EGG_SLOT) && !allowInternalExtraction) { + boolean isPlayer = false; + for (StackTraceElement element : Thread.currentThread().getStackTrace()) { + String className = element.getClassName(); + if (className.contains("inventory") || className.contains("player") || className.contains("ServerGamePacketListenerImpl")) { + isPlayer = true; + break; + } + } + if (!isPlayer) return ItemStack.EMPTY; + } + return super.removeItem(slot, amount); + } }; private static final int SYRINGE_SLOT = 0; @@ -104,6 +134,16 @@ public class EmbryoCalcificationMachineBlockEntity extends BlockEntity implement level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canExtract() { + return false; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + return 0; + } }; } @@ -238,6 +278,7 @@ public class EmbryoCalcificationMachineBlockEntity extends BlockEntity implement if (level.isClientSide) return; pullEnergyFromNeighbors(); + pushOutputsToHoppers(); //? if >1.20.1 { /*Optional> recipeOpt = getCurrentRecipe(); @@ -287,14 +328,19 @@ public class EmbryoCalcificationMachineBlockEntity extends BlockEntity implement } private void craftItem(ItemStack output) { - ItemStack current = itemHandler.getItem(OUTPUT_SLOT); - if (current.isEmpty()) { - itemHandler.setItem(OUTPUT_SLOT, output.copy()); - } else { - current.grow(output.getCount()); + allowInternalExtraction = true; + try { + ItemStack current = itemHandler.getItem(OUTPUT_SLOT); + if (current.isEmpty()) { + itemHandler.setItem(OUTPUT_SLOT, output.copy()); + } else { + current.grow(output.getCount()); + } + itemHandler.removeItem(SYRINGE_SLOT, 1); + itemHandler.removeItem(EGG_SLOT, 1); + } finally { + allowInternalExtraction = false; } - itemHandler.removeItem(SYRINGE_SLOT, 1); - itemHandler.removeItem(EGG_SLOT, 1); } private boolean canInsertOutput(ItemStack output) { @@ -346,6 +392,29 @@ public class EmbryoCalcificationMachineBlockEntity extends BlockEntity implement } } + private void pushOutputsToHoppers() { + pushSlotToHoppers(OUTPUT_SLOT); + } + + private void pushSlotToHoppers(int slot) { + ItemStack stack = itemHandler.getItem(slot); + if (stack.isEmpty()) return; + + for (Direction dir : Direction.values()) { + BlockEntity be = level.getBlockEntity(worldPosition.relative(dir)); + if (!(be instanceof Container target)) continue; + + ItemStack toMove = stack.copy(); + ItemStack remainder = HopperBlockEntity.addItem(itemHandler, target, toMove, dir); + + if (remainder.getCount() != stack.getCount()) { + itemHandler.setItem(slot, remainder); + setChanged(); + return; + } + } + } + //? if >1.20.1 { /*@Override public CompoundTag getUpdateTag(HolderLookup.Provider registries) { return saveWithoutMetadata(registries); } diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/EmbryonicMachineBlockEntity.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/EmbryonicMachineBlockEntity.java index 962717c..033cc61 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/EmbryonicMachineBlockEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/EmbryonicMachineBlockEntity.java @@ -23,6 +23,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; @@ -31,6 +32,7 @@ import net.minecraft.world.inventory.ContainerData; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.HopperBlockEntity; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @@ -45,6 +47,8 @@ import java.util.Optional; public class EmbryonicMachineBlockEntity extends BlockEntity implements ExtendedMenuProvider, ModEnergyUtil.EnergyProvider { + private boolean allowInternalExtraction = false; + public final SimpleContainer itemHandler = new SimpleContainer(4) { @Override public void setChanged() { @@ -54,6 +58,31 @@ public class EmbryonicMachineBlockEntity extends BlockEntity implements Extended level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canPlaceItem(int slot, ItemStack stack) { + if (slot == OUTPUT_SLOT) return false; + if (slot == SYRINGE_SLOT) return stack.is(ModItems.SYRINGE.get()); + if (slot == MATERIAL_SLOT) return stack.is(ModTags.Items.DNA); + if (slot == FROG_SLOT) return stack.is(ModItems.FROG_DNA.get()); + return false; + } + + @Override + public ItemStack removeItem(int slot, int amount) { + if ((slot == SYRINGE_SLOT || slot == MATERIAL_SLOT || slot == FROG_SLOT) && !allowInternalExtraction) { + boolean isPlayer = false; + for (StackTraceElement element : Thread.currentThread().getStackTrace()) { + String className = element.getClassName(); + if (className.contains("inventory") || className.contains("player") || className.contains("ServerGamePacketListenerImpl")) { + isPlayer = true; + break; + } + } + if (!isPlayer) return ItemStack.EMPTY; + } + return super.removeItem(slot, amount); + } }; private static final int SYRINGE_SLOT = 0; @@ -108,6 +137,16 @@ public class EmbryonicMachineBlockEntity extends BlockEntity implements Extended level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canExtract() { + return false; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + return 0; + } }; } @@ -242,6 +281,7 @@ public class EmbryonicMachineBlockEntity extends BlockEntity implements Extended if (level.isClientSide) return; pullEnergyFromNeighbors(); + pushOutputsToHoppers(); //? if >1.20.1 { /*Optional> recipeOpt = getCurrentRecipe(); @@ -293,15 +333,20 @@ public class EmbryonicMachineBlockEntity extends BlockEntity implements Extended } private void craftItem(ItemStack output) { - ItemStack current = itemHandler.getItem(OUTPUT_SLOT); - if (current.isEmpty()) { - itemHandler.setItem(OUTPUT_SLOT, output.copy()); - } else { - current.grow(output.getCount()); + allowInternalExtraction = true; + try { + ItemStack current = itemHandler.getItem(OUTPUT_SLOT); + if (current.isEmpty()) { + itemHandler.setItem(OUTPUT_SLOT, output.copy()); + } else { + current.grow(output.getCount()); + } + itemHandler.removeItem(SYRINGE_SLOT, 1); + itemHandler.removeItem(MATERIAL_SLOT, 1); + itemHandler.removeItem(FROG_SLOT, 1); + } finally { + allowInternalExtraction = false; } - itemHandler.removeItem(SYRINGE_SLOT, 1); - itemHandler.removeItem(MATERIAL_SLOT, 1); - itemHandler.removeItem(FROG_SLOT, 1); } private boolean canInsertOutput(ItemStack output) { @@ -398,6 +443,29 @@ public class EmbryonicMachineBlockEntity extends BlockEntity implements Extended } } + private void pushOutputsToHoppers() { + pushSlotToHoppers(OUTPUT_SLOT); + } + + private void pushSlotToHoppers(int slot) { + ItemStack stack = itemHandler.getItem(slot); + if (stack.isEmpty()) return; + + for (Direction dir : Direction.values()) { + BlockEntity be = level.getBlockEntity(worldPosition.relative(dir)); + if (!(be instanceof Container target)) continue; + + ItemStack toMove = stack.copy(); + ItemStack remainder = HopperBlockEntity.addItem(itemHandler, target, toMove, dir); + + if (remainder.getCount() != stack.getCount()) { + itemHandler.setItem(slot, remainder); + setChanged(); + return; + } + } + } + //? if >1.20.1 { /*@Override public CompoundTag getUpdateTag(HolderLookup.Provider registries) { return saveWithoutMetadata(registries); } diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/FossilCleanerBlockEntity.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/FossilCleanerBlockEntity.java index e5e9023..db36896 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/FossilCleanerBlockEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/FossilCleanerBlockEntity.java @@ -7,6 +7,8 @@ import net.cmr.jurassicrevived.block.entity.ModBlockEntities; import net.cmr.jurassicrevived.block.entity.energy.ModEnergyStorage; import net.cmr.jurassicrevived.block.entity.energy.ModEnergyUtil; import net.cmr.jurassicrevived.config.JRConfigManager; +import net.cmr.jurassicrevived.platform.transfer.InternalFluidHandler; +import net.cmr.jurassicrevived.platform.transfer.InternalFluidProvider; import net.cmr.jurassicrevived.recipe.FossilCleanerRecipe; import net.cmr.jurassicrevived.recipe.FossilCleanerRecipeInput; import net.cmr.jurassicrevived.recipe.ModRecipes; @@ -24,6 +26,7 @@ import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; import net.minecraft.tags.FluidTags; +import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; @@ -33,6 +36,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.HopperBlockEntity; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @@ -45,7 +49,9 @@ import net.minecraft.core.RegistryAccess; import java.util.Optional; -public class FossilCleanerBlockEntity extends BlockEntity implements ExtendedMenuProvider, ModEnergyUtil.EnergyProvider { +public class FossilCleanerBlockEntity extends BlockEntity implements ExtendedMenuProvider, ModEnergyUtil.EnergyProvider, InternalFluidProvider +{ + private boolean allowInternalExtraction = false; public final SimpleContainer itemHandler = new SimpleContainer(5) { @Override @@ -56,6 +62,43 @@ public class FossilCleanerBlockEntity extends BlockEntity implements ExtendedMen level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canPlaceItem(int slot, ItemStack stack) { + if (slot >= 2 && slot <= 4) return false; + if (slot == WATER_SLOT) { + return stack.is(Items.WATER_BUCKET); + } + if (slot == FOSSILBLOCK_SLOT) return stack.is(net.cmr.jurassicrevived.block.ModBlocks.STONE_FOSSIL.get().asItem()) || stack.is(net.cmr.jurassicrevived.block.ModBlocks.DEEPSLATE_FOSSIL.get().asItem()); + return false; + } + + @Override + public ItemStack removeItem(int slot, int amount) { + if (slot == FOSSILBLOCK_SLOT && !allowInternalExtraction) { + boolean isPlayer = false; + for (StackTraceElement element : Thread.currentThread().getStackTrace()) { + String className = element.getClassName(); + if (className.contains("inventory") || className.contains("player") || className.contains("ServerGamePacketListenerImpl")) { + isPlayer = true; + break; + } + } + if (!isPlayer) return ItemStack.EMPTY; + } + if (slot == WATER_SLOT && getItem(slot).is(Items.WATER_BUCKET)) { + boolean isPlayer = false; + for (StackTraceElement element : Thread.currentThread().getStackTrace()) { + String className = element.getClassName(); + if (className.contains("inventory") || className.contains("player") || className.contains("ServerGamePacketListenerImpl")) { + isPlayer = true; + break; + } + } + if (!isPlayer) return ItemStack.EMPTY; + } + return super.removeItem(slot, amount); + } }; private static final int WATER_SLOT = 0; @@ -76,6 +119,62 @@ public class FossilCleanerBlockEntity extends BlockEntity implements ExtendedMen private static final int TRANSFER_RATE = 1000; private final ModEnergyStorage energyStorage = createEnergyStorage(); + private final InternalFluidHandler fluidHandler = new InternalFluidHandler() { + @Override + public FluidStack getFluid() { + return fluidStack; + } + + @Override + public long getCapacity() { + return TANK_CAPACITY; + } + + @Override + public long fill(FluidStack stack, boolean simulate) { + if (stack.isEmpty()) return 0; + if (!fluidStack.isEmpty() && fluidStack.getFluid() != stack.getFluid()) return 0; + + long space = TANK_CAPACITY - fluidStack.getAmount(); + if (space <= 0) return 0; + + long toFill = Math.min(space, stack.getAmount()); + if (!simulate) { + fluidStack = FluidStack.create(stack.getFluid(), fluidStack.getAmount() + toFill); + setChanged(); + if (level != null && !level.isClientSide()) { + level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); + } + } + return toFill; + } + + @Override + public FluidStack drain(long amount, boolean simulate) { + if (fluidStack.isEmpty() || amount <= 0) return FluidStack.empty(); + + long drained = Math.min(amount, fluidStack.getAmount()); + FluidStack out = FluidStack.create(fluidStack.getFluid(), drained); + + if (!simulate) { + long remaining = fluidStack.getAmount() - drained; + fluidStack = remaining > 0 + ? FluidStack.create(fluidStack.getFluid(), remaining) + : FluidStack.empty(); + setChanged(); + if (level != null && !level.isClientSide()) { + level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); + } + } + return out; + } + }; + + @Override + public InternalFluidHandler getFluidHandler(@Nullable Direction side) { + return this.fluidHandler; + } + public FossilCleanerBlockEntity(BlockPos pos, BlockState blockState) { super(ModBlockEntities.FOSSIL_CLEANER_BE.get(), pos, blockState); this.data = new ContainerData() { @@ -112,6 +211,16 @@ public class FossilCleanerBlockEntity extends BlockEntity implements ExtendedMen level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canExtract() { + return false; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + return 0; + } }; } @@ -126,6 +235,10 @@ public class FossilCleanerBlockEntity extends BlockEntity implements ExtendedMen private void setFluid(FluidStack stack) { this.fluidStack = stack == null || stack.isEmpty() ? FluidStack.empty() : stack; + setChanged(); + if (level != null && !level.isClientSide()) { + level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); + } } @Override @@ -266,6 +379,7 @@ public class FossilCleanerBlockEntity extends BlockEntity implements ExtendedMen pullEnergyFromNeighbors(); handleBucketInput(); + pushOutputsToHoppers(); //? if >1.20.1 { /*Optional> recipeOpt = getCurrentRecipe(); @@ -322,17 +436,22 @@ public class FossilCleanerBlockEntity extends BlockEntity implements ExtendedMen } private void craftItem(ItemStack output) { - for (int slot : OUTPUT_SLOTS) { - ItemStack stack = itemHandler.getItem(slot); - if (stack.isEmpty()) { - itemHandler.setItem(slot, output.copy()); - itemHandler.removeItem(FOSSILBLOCK_SLOT, 1); - return; - } else if (isSameItem(stack, output) && stack.getCount() + output.getCount() <= stack.getMaxStackSize()) { - stack.grow(output.getCount()); - itemHandler.removeItem(FOSSILBLOCK_SLOT, 1); - return; + allowInternalExtraction = true; + try { + for (int slot : OUTPUT_SLOTS) { + ItemStack stack = itemHandler.getItem(slot); + if (stack.isEmpty()) { + itemHandler.setItem(slot, output.copy()); + itemHandler.removeItem(FOSSILBLOCK_SLOT, 1); + return; + } else if (isSameItem(stack, output) && stack.getCount() + output.getCount() <= stack.getMaxStackSize()) { + stack.grow(output.getCount()); + itemHandler.removeItem(FOSSILBLOCK_SLOT, 1); + return; + } } + } finally { + allowInternalExtraction = false; } } @@ -419,6 +538,31 @@ public class FossilCleanerBlockEntity extends BlockEntity implements ExtendedMen } } + private void pushOutputsToHoppers() { + for (int slot : OUTPUT_SLOTS) { + pushSlotToHoppers(slot); + } + } + + private void pushSlotToHoppers(int slot) { + ItemStack stack = itemHandler.getItem(slot); + if (stack.isEmpty()) return; + + for (Direction dir : Direction.values()) { + BlockEntity be = level.getBlockEntity(worldPosition.relative(dir)); + if (!(be instanceof Container target)) continue; + + ItemStack toMove = stack.copy(); + ItemStack remainder = HopperBlockEntity.addItem(itemHandler, target, toMove, dir); + + if (remainder.getCount() != stack.getCount()) { + itemHandler.setItem(slot, remainder); + setChanged(); + return; + } + } + } + //? if >1.20.1 { /*@Override public CompoundTag getUpdateTag(HolderLookup.Provider registries) { return saveWithoutMetadata(registries); } diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/FossilGrinderBlockEntity.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/FossilGrinderBlockEntity.java index a319902..2670e64 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/FossilGrinderBlockEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/FossilGrinderBlockEntity.java @@ -21,6 +21,7 @@ import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; @@ -29,6 +30,7 @@ import net.minecraft.world.inventory.ContainerData; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.HopperBlockEntity; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @@ -42,6 +44,7 @@ import net.minecraft.core.RegistryAccess; import java.util.Optional; public class FossilGrinderBlockEntity extends BlockEntity implements ExtendedMenuProvider, ModEnergyUtil.EnergyProvider { + private boolean allowInternalExtraction = false; public final SimpleContainer itemHandler = new SimpleContainer(4) { @Override @@ -52,6 +55,29 @@ public class FossilGrinderBlockEntity extends BlockEntity implements ExtendedMen level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canPlaceItem(int slot, ItemStack stack) { + if (slot >= 1 && slot <= 3) return false; + if (slot == 0) return stack.is(net.cmr.jurassicrevived.util.ModTags.Items.FOSSILS) || stack.is(net.cmr.jurassicrevived.util.ModTags.Items.SKULLS); + return false; + } + + @Override + public ItemStack removeItem(int slot, int amount) { + if (slot == 0 && !allowInternalExtraction) { + boolean isPlayer = false; + for (StackTraceElement element : Thread.currentThread().getStackTrace()) { + String className = element.getClassName(); + if (className.contains("inventory") || className.contains("player") || className.contains("ServerGamePacketListenerImpl")) { + isPlayer = true; + break; + } + } + if (!isPlayer) return ItemStack.EMPTY; + } + return super.removeItem(slot, amount); + } }; private static final int FOSSIL_SLOT = 0; @@ -104,6 +130,16 @@ public class FossilGrinderBlockEntity extends BlockEntity implements ExtendedMen level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canExtract() { + return false; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + return 0; + } }; } @@ -238,6 +274,7 @@ public class FossilGrinderBlockEntity extends BlockEntity implements ExtendedMen if (level.isClientSide) return; pullEnergyFromNeighbors(); + pushOutputsToHoppers(); //? if >1.20.1 { /*Optional> recipeOpt = getCurrentRecipe(); @@ -294,17 +331,22 @@ public class FossilGrinderBlockEntity extends BlockEntity implements ExtendedMen } private void craftItem(ItemStack output) { - for (int slot : OUTPUT_SLOTS) { - ItemStack stack = itemHandler.getItem(slot); - if (stack.isEmpty()) { - itemHandler.setItem(slot, output.copy()); - itemHandler.removeItem(FOSSIL_SLOT, 1); - return; - } else if (isSameItem(stack, output) && stack.getCount() + output.getCount() <= stack.getMaxStackSize()) { - stack.grow(output.getCount()); - itemHandler.removeItem(FOSSIL_SLOT, 1); - return; + allowInternalExtraction = true; + try { + for (int slot : OUTPUT_SLOTS) { + ItemStack stack = itemHandler.getItem(slot); + if (stack.isEmpty()) { + itemHandler.setItem(slot, output.copy()); + itemHandler.removeItem(FOSSIL_SLOT, 1); + return; + } else if (isSameItem(stack, output) && stack.getCount() + output.getCount() <= stack.getMaxStackSize()) { + stack.grow(output.getCount()); + itemHandler.removeItem(FOSSIL_SLOT, 1); + return; + } } + } finally { + allowInternalExtraction = false; } } @@ -396,6 +438,31 @@ public class FossilGrinderBlockEntity extends BlockEntity implements ExtendedMen } } + private void pushOutputsToHoppers() { + for (int slot : OUTPUT_SLOTS) { + pushSlotToHoppers(slot); + } + } + + private void pushSlotToHoppers(int slot) { + ItemStack stack = itemHandler.getItem(slot); + if (stack.isEmpty()) return; + + for (Direction dir : Direction.values()) { + BlockEntity be = level.getBlockEntity(worldPosition.relative(dir)); + if (!(be instanceof Container target)) continue; + + ItemStack toMove = stack.copy(); + ItemStack remainder = HopperBlockEntity.addItem(itemHandler, target, toMove, dir); + + if (remainder.getCount() != stack.getCount()) { + itemHandler.setItem(slot, remainder); + setChanged(); + return; + } + } + } + //? if >1.20.1 { /*@Override public CompoundTag getUpdateTag(HolderLookup.Provider registries) { diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/GeneratorBlockEntity.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/GeneratorBlockEntity.java index a452d8a..6b2f9e0 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/GeneratorBlockEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/GeneratorBlockEntity.java @@ -41,6 +41,22 @@ public class GeneratorBlockEntity extends BlockEntity implements ExtendedMenuPro level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public ItemStack removeItem(int slot, int amount) { + if (slot == INPUT_SLOT) { + boolean isPlayer = false; + for (StackTraceElement element : Thread.currentThread().getStackTrace()) { + String className = element.getClassName(); + if (className.contains("inventory") || className.contains("player") || className.contains("ServerGamePacketListenerImpl")) { + isPlayer = true; + break; + } + } + if (!isPlayer) return ItemStack.EMPTY; + } + return super.removeItem(slot, amount); + } }; public static final int INPUT_SLOT = 0; diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/IncubatorBlockEntity.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/IncubatorBlockEntity.java index 148a7d1..59bca74 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/IncubatorBlockEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/IncubatorBlockEntity.java @@ -10,6 +10,7 @@ import net.cmr.jurassicrevived.recipe.IncubatorRecipe; import net.cmr.jurassicrevived.recipe.IncubatorRecipeInput; import net.cmr.jurassicrevived.recipe.ModRecipes; import net.cmr.jurassicrevived.screen.custom.IncubatorMenu; +import net.cmr.jurassicrevived.util.ModTags; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -19,14 +20,17 @@ import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; 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.ContainerData; +import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.HopperBlockEntity; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @@ -41,6 +45,8 @@ import java.util.Optional; public class IncubatorBlockEntity extends BlockEntity implements ExtendedMenuProvider, ModEnergyUtil.EnergyProvider { + private boolean allowInternalExtraction = false; + public final SimpleContainer itemHandler = new SimpleContainer(3) { @Override public void setChanged() { @@ -50,6 +56,33 @@ public class IncubatorBlockEntity extends BlockEntity implements ExtendedMenuPro level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canPlaceItem(int slot, ItemStack stack) { + return stack.is(net.cmr.jurassicrevived.util.ModTags.Items.EGGS); + } + + @Override + public ItemStack removeItem(int slot, int amount) { + ItemStack stack = getItem(slot); + if (!stack.isEmpty()) { + boolean isIncubated = stack.getItem() instanceof net.minecraft.world.item.BlockItem blockItem + && blockItem.getBlock().defaultBlockState().is(net.cmr.jurassicrevived.util.ModTags.Blocks.INCUBATED_EGGS); + + if (!isIncubated && !allowInternalExtraction) { + boolean isPlayer = false; + for (StackTraceElement element : Thread.currentThread().getStackTrace()) { + String className = element.getClassName(); + if (className.contains("inventory") || className.contains("player") || className.contains("ServerGamePacketListenerImpl")) { + isPlayer = true; + break; + } + } + if (!isPlayer) return ItemStack.EMPTY; + } + } + return super.removeItem(slot, amount); + } }; private final ContainerData data; @@ -105,6 +138,16 @@ public class IncubatorBlockEntity extends BlockEntity implements ExtendedMenuPro level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 3); } } + + @Override + public boolean canExtract() { + return false; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + return 0; + } }; } @@ -253,6 +296,7 @@ public class IncubatorBlockEntity extends BlockEntity implements ExtendedMenuPro if (level.isClientSide) return; pullEnergyFromNeighbors(); + pushOutputsToHoppers(); boolean changed = false; boolean anyActive = false; @@ -310,7 +354,12 @@ public class IncubatorBlockEntity extends BlockEntity implements ExtendedMenuPro ItemStack out = recipeOpt.get().assemble(new IncubatorRecipeInput(stack), level.registryAccess()); //?} if (!out.isEmpty()) { - itemHandler.setItem(s, out.copy()); + allowInternalExtraction = true; + try { + itemHandler.setItem(s, out.copy()); + } finally { + allowInternalExtraction = false; + } progress[s] = 0; maxProgress[s] = DEFAULT_MAX_PROGRESS; changed = true; @@ -347,6 +396,36 @@ public class IncubatorBlockEntity extends BlockEntity implements ExtendedMenuPro } } + private void pushOutputsToHoppers() { + for (int slot = 0; slot < itemHandler.getContainerSize(); slot++) { + pushSlotToHoppers(slot); + } + } + + private void pushSlotToHoppers(int slot) { + ItemStack stack = itemHandler.getItem(slot); + if (!isIncubatedEgg(stack)) return; + + for (Direction dir : Direction.values()) { + BlockEntity be = level.getBlockEntity(worldPosition.relative(dir)); + if (!(be instanceof Container target)) continue; + + ItemStack toMove = stack.copy(); + ItemStack remainder = HopperBlockEntity.addItem(itemHandler, target, toMove, dir); + + if (remainder.getCount() != stack.getCount()) { + itemHandler.setItem(slot, remainder); + setChanged(); + return; + } + } + } + + private boolean isIncubatedEgg(ItemStack stack) { + return stack.getItem() instanceof BlockItem blockItem + && blockItem.getBlock().defaultBlockState().is(ModTags.Blocks.INCUBATED_EGGS); + } + @Nullable @Override public Packet getUpdatePacket() { diff --git a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/PipeBlockEntity.java b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/PipeBlockEntity.java index 5bc8138..30fdd47 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/PipeBlockEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/block/entity/custom/PipeBlockEntity.java @@ -123,27 +123,30 @@ public class PipeBlockEntity extends BlockEntity .orElse(null); if (src == null) continue; - PipeEndpoint sinkEp = findNearestSink(level, srcEp.pipePos, sinksByPipe, Transport.ITEMS); - if (sinkEp == null) continue; + List sinkEndpoints = findReachableSinks(level, srcEp.pipePos, sinksByPipe, Transport.ITEMS); + for (PipeEndpoint sinkEp : sinkEndpoints) { + if (remaining <= 0) break; - BlockPos dstPos = sinkEp.pipePos.relative(sinkEp.side); - Direction dstSide = sinkEp.side.getOpposite(); + BlockPos dstPos = sinkEp.pipePos.relative(sinkEp.side); + Direction dstSide = sinkEp.side.getOpposite(); - PlatformItemHandler dst = Services.TRANSFER - .getItemHandler(level, dstPos, dstSide) - .orElse(null); - if (dst == null) continue; + PlatformItemHandler dst = Services.TRANSFER + .getItemHandler(level, dstPos, dstSide) + .orElse(null); + if (dst == null) continue; - remaining = moveFromSourceToSingleTarget(src, dst, remaining); + remaining = moveFromSourceToSingleTarget(src, dst, remaining); + } } } - private static PipeEndpoint findNearestSink( + private static List findReachableSinks( Level level, BlockPos startPipe, Map> sinksByPipe, Transport transport ) { + List result = new ArrayList<>(); ArrayDeque q = new ArrayDeque<>(); HashSet seen = new HashSet<>(); q.add(startPipe); @@ -154,7 +157,7 @@ public class PipeBlockEntity extends BlockEntity List sinksHere = sinksByPipe.get(p); if (sinksHere != null && !sinksHere.isEmpty()) { - return sinksHere.get(0); + result.addAll(sinksHere); } BlockState st = level.getBlockState(p); @@ -167,7 +170,7 @@ public class PipeBlockEntity extends BlockEntity } } } - return null; + return result; } private static void transferEnergy(Level level, BlockPos pos, BlockState state, int perTickLimit) { @@ -188,26 +191,28 @@ public class PipeBlockEntity extends BlockEntity .orElse(null); if (src == null) continue; - PipeEndpoint sinkEp = findNearestSink(level, srcEp.pipePos, sinksByPipe, Transport.ENERGY); - if (sinkEp == null) continue; + List sinkEndpoints = findReachableSinks(level, srcEp.pipePos, sinksByPipe, Transport.ENERGY); + for (PipeEndpoint sinkEp : sinkEndpoints) { + if (remaining <= 0) break; - BlockPos dstPos = sinkEp.pipePos.relative(sinkEp.side); - Direction dstSide = sinkEp.side.getOpposite(); + BlockPos dstPos = sinkEp.pipePos.relative(sinkEp.side); + Direction dstSide = sinkEp.side.getOpposite(); - PlatformEnergyHandler dst = Services.TRANSFER - .getEnergyHandler(level, dstPos, dstSide) - .orElse(null); - if (dst == null) continue; + PlatformEnergyHandler dst = Services.TRANSFER + .getEnergyHandler(level, dstPos, dstSide) + .orElse(null); + if (dst == null) continue; - int available = src.extract(remaining, true); - if (available <= 0) continue; + int available = src.extract(remaining, true); + if (available <= 0) break; - int accepted = dst.insert(available, true); - if (accepted <= 0) continue; + int accepted = dst.insert(available, true); + if (accepted <= 0) continue; - int extracted = src.extract(accepted, false); - int inserted = dst.insert(extracted, false); - remaining -= inserted; + int extracted = src.extract(accepted, false); + int inserted = dst.insert(extracted, false); + remaining -= inserted; + } } } @@ -229,34 +234,45 @@ public class PipeBlockEntity extends BlockEntity .orElse(null); if (src == null) continue; - PipeEndpoint sinkEp = findNearestSink(level, srcEp.pipePos, sinksByPipe, Transport.FLUIDS); - if (sinkEp == null) continue; - - BlockPos dstPos = sinkEp.pipePos.relative(sinkEp.side); - Direction dstSide = sinkEp.side.getOpposite(); - - PlatformFluidHandler dst = Services.TRANSFER - .getFluidHandler(level, dstPos, dstSide) - .orElse(null); - if (dst == null) continue; - - for (FluidStack candidate : src.getExtractableFluids()) { - if (candidate.isEmpty()) continue; - - long available = src.extract(candidate, remaining, true); - if (available <= 0) continue; - - long accepted = dst.insert(candidate, available, true); - if (accepted <= 0) continue; - - FluidStack toMove = candidate.copy(); - toMove.setAmount(accepted); - - long extracted = src.extract(toMove, accepted, false); - long inserted = dst.insert(toMove, extracted, false); - remaining -= inserted; - + List sinkEndpoints = findReachableSinks(level, srcEp.pipePos, sinksByPipe, Transport.FLUIDS); + for (PipeEndpoint sinkEp : sinkEndpoints) { if (remaining <= 0) break; + + BlockPos dstPos = sinkEp.pipePos.relative(sinkEp.side); + Direction dstSide = sinkEp.side.getOpposite(); + + PlatformFluidHandler dst = Services.TRANSFER + .getFluidHandler(level, dstPos, dstSide) + .orElse(null); + if (dst == null) continue; + + for (FluidStack candidate : src.getExtractableFluids()) { + if (remaining <= 0) break; + if (candidate.isEmpty()) continue; + + long available = src.extract(candidate, remaining, true); + if (available <= 0) continue; + + long accepted = dst.insert(candidate, available, true); + if (accepted <= 0) continue; + + FluidStack toMove = candidate.copy(); + toMove.setAmount(accepted); + + long extracted = src.extract(toMove, accepted, false); + if (extracted <= 0) continue; + + toMove.setAmount(extracted); + + long inserted = dst.insert(toMove, extracted, false); + remaining -= inserted; + + if (inserted < extracted) { + FluidStack remainder = toMove.copy(); + remainder.setAmount(extracted - inserted); + src.insert(remainder, extracted - inserted, false); + } + } } } } diff --git a/common/src/main/java/net/cmr/jurassicrevived/config/JRConfig.java b/common/src/main/java/net/cmr/jurassicrevived/config/JRConfig.java index 71a3011..645afaa 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/config/JRConfig.java +++ b/common/src/main/java/net/cmr/jurassicrevived/config/JRConfig.java @@ -23,6 +23,11 @@ public final class JRConfig { */ public boolean waterConsumption = false; + /** + * Controls whether dinosaurs breed over time. + */ + public boolean naturalBreeding = false; + /** * Energy pipe transfer rate in FE per second. */ diff --git a/common/src/main/java/net/cmr/jurassicrevived/config/JRConfigManager.java b/common/src/main/java/net/cmr/jurassicrevived/config/JRConfigManager.java index 7abe557..a80d154 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/config/JRConfigManager.java +++ b/common/src/main/java/net/cmr/jurassicrevived/config/JRConfigManager.java @@ -34,6 +34,7 @@ public final class JRConfigManager { loaded.naturallySpawning = readBoolean(text, "naturallySpawning", loaded.naturallySpawning); loaded.hungerConsumption = readBoolean(text, "hungerConsumption", loaded.hungerConsumption); loaded.waterConsumption = readBoolean(text, "waterConsumption", loaded.waterConsumption); + loaded.naturalBreeding = readBoolean(text, "naturalBreeding", loaded.naturalBreeding); loaded.fePerSecond = readPositiveInt(text, "fePerSecond", loaded.fePerSecond); loaded.itemsPerSecond = readPositiveInt(text, "itemsPerSecond", loaded.itemsPerSecond); loaded.milliBucketsPerSecond = readPositiveInt(text, "milliBucketsPerSecond", loaded.milliBucketsPerSecond); @@ -55,6 +56,7 @@ public final class JRConfigManager { " \"naturallySpawning\": " + config.naturallySpawning + ",\n" + " \"hungerConsumption\": " + config.hungerConsumption + ",\n" + " \"waterConsumption\": " + config.waterConsumption + ",\n" + + " \"naturalBreeding\": " + config.naturalBreeding + ",\n" + " \"fePerSecond\": " + config.fePerSecond + ",\n" + " \"itemsPerSecond\": " + config.itemsPerSecond + ",\n" + " \"milliBucketsPerSecond\": " + config.milliBucketsPerSecond + "\n" + diff --git a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockLootTableProvider.java b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockLootTableProvider.java index 3278cc5..08ce2b1 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockLootTableProvider.java +++ b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockLootTableProvider.java @@ -135,6 +135,10 @@ public class ModBlockLootTableProvider { helper.dropSelf(ModBlocks.UTAHRAPTOR_EGG.get()); helper.dropSelf(ModBlocks.ZHENYUANOPTERUS_EGG.get()); helper.dropSelf(ModBlocks.ACHILLOBATOR_EGG.get()); + helper.dropSelf(ModBlocks.SUCHOMIMUS_EGG.get()); + helper.dropSelf(ModBlocks.CHILESAURUS_EGG.get()); + helper.dropSelf(ModBlocks.MUSSASAURUS_EGG.get()); + helper.dropSelf(ModBlocks.THESCELOSAURUS_EGG.get()); helper.dropSelf(ModBlocks.INCUBATED_APATOSAURUS_EGG.get()); helper.dropSelf(ModBlocks.INCUBATED_ALBERTOSAURUS_EGG.get()); @@ -210,6 +214,10 @@ public class ModBlockLootTableProvider { helper.dropSelf(ModBlocks.INCUBATED_UTAHRAPTOR_EGG.get()); helper.dropSelf(ModBlocks.INCUBATED_ZHENYUANOPTERUS_EGG.get()); helper.dropSelf(ModBlocks.INCUBATED_ACHILLOBATOR_EGG.get()); + helper.dropSelf(ModBlocks.INCUBATED_SUCHOMIMUS_EGG.get()); + helper.dropSelf(ModBlocks.INCUBATED_CHILESAURUS_EGG.get()); + helper.dropSelf(ModBlocks.INCUBATED_MUSSASAURUS_EGG.get()); + helper.dropSelf(ModBlocks.INCUBATED_THESCELOSAURUS_EGG.get()); helper.dropSelf(ModBlocks.ROYAL_FERN.get()); helper.add(ModBlocks.POTTED_ROYAL_FERN.get(), helper.createPotFlowerItemTable(ModBlocks.ROYAL_FERN.get())); diff --git a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockStateProvider.java b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockStateProvider.java index be9de3f..ea8bfc9 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockStateProvider.java +++ b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockStateProvider.java @@ -197,6 +197,10 @@ public class ModBlockStateProvider { helper.eggLike(ModBlocks.UTAHRAPTOR_EGG.get()); helper.eggLike(ModBlocks.ZHENYUANOPTERUS_EGG.get()); helper.eggLike(ModBlocks.ACHILLOBATOR_EGG.get()); + helper.eggLike(ModBlocks.SUCHOMIMUS_EGG.get()); + helper.eggLike(ModBlocks.CHILESAURUS_EGG.get()); + helper.eggLike(ModBlocks.MUSSASAURUS_EGG.get()); + helper.eggLike(ModBlocks.THESCELOSAURUS_EGG.get()); helper.eggLike(ModBlocks.INCUBATED_VELOCIRAPTOR_EGG.get()); helper.eggLike(ModBlocks.INCUBATED_TYRANNOSAURUS_REX_EGG.get()); @@ -272,6 +276,10 @@ public class ModBlockStateProvider { helper.eggLike(ModBlocks.INCUBATED_UTAHRAPTOR_EGG.get()); helper.eggLike(ModBlocks.INCUBATED_ZHENYUANOPTERUS_EGG.get()); helper.eggLike(ModBlocks.INCUBATED_ACHILLOBATOR_EGG.get()); + helper.eggLike(ModBlocks.INCUBATED_SUCHOMIMUS_EGG.get()); + helper.eggLike(ModBlocks.INCUBATED_CHILESAURUS_EGG.get()); + helper.eggLike(ModBlocks.INCUBATED_MUSSASAURUS_EGG.get()); + helper.eggLike(ModBlocks.INCUBATED_THESCELOSAURUS_EGG.get()); helper.customFenceMultipart( ModBlocks.LOW_SECURITY_FENCE_POLE.get(), diff --git a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockTagProvider.java b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockTagProvider.java index 9458a96..f82a661 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockTagProvider.java +++ b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModBlockTagProvider.java @@ -143,7 +143,9 @@ public class ModBlockTagProvider { ModBlocks.INCUBATED_TUPUXUARA_EGG.get(), ModBlocks.INCUBATED_UTAHRAPTOR_EGG.get(), ModBlocks.INCUBATED_ZHENYUANOPTERUS_EGG.get(), - ModBlocks.INCUBATED_ACHILLOBATOR_EGG.get() + ModBlocks.INCUBATED_ACHILLOBATOR_EGG.get(), + ModBlocks.INCUBATED_SUCHOMIMUS_EGG.get(), + ModBlocks.INCUBATED_CHILESAURUS_EGG.get() ); helper.tag(BlockTags.MINEABLE_WITH_SHOVEL); @@ -169,6 +171,13 @@ public class ModBlockTagProvider { Blocks.CLAY ); + helper.tag(ModTags.Blocks.PLANTS, + ModBlocks.HORSETAIL_FERN.get(), + ModBlocks.ROYAL_FERN.get(), + ModBlocks.WESTERN_SWORD_FERN.get(), + ModBlocks.ONYCHIOPSIS.get() + ); + helper.tag(BlockTags.WALLS, ModBlocks.GYPSUM_BRICK_WALL.get(), ModBlocks.REINFORCED_BRICK_WALL.get() diff --git a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModEntityLootTableProvider.java b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModEntityLootTableProvider.java index d762760..ba88412 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModEntityLootTableProvider.java +++ b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModEntityLootTableProvider.java @@ -503,5 +503,33 @@ public class ModEntityLootTableProvider { .add(LootItem.lootTableItem(ModItems.FRESH_ACHILLOBATOR_SKULL.get())) ) ); + + helper.add(ModEntities.SUCHOMIMUS.get(), LootTable.lootTable() + .withPool(LootPool.lootPool() + .setRolls(ConstantValue.exactly(1)) + .add(LootItem.lootTableItem(ModItems.FRESH_SUCHOMIMUS_SKULL.get())) + ) + ); + + helper.add(ModEntities.CHILESAURUS.get(), LootTable.lootTable() + .withPool(LootPool.lootPool() + .setRolls(ConstantValue.exactly(1)) + .add(LootItem.lootTableItem(ModItems.FRESH_CHILESAURUS_SKULL.get())) + ) + ); + + helper.add(ModEntities.MUSSASAURUS.get(), LootTable.lootTable() + .withPool(LootPool.lootPool() + .setRolls(ConstantValue.exactly(1)) + .add(LootItem.lootTableItem(ModItems.FRESH_MUSSASAURUS_SKULL.get())) + ) + ); + + helper.add(ModEntities.THESCELOSAURUS.get(), LootTable.lootTable() + .withPool(LootPool.lootPool() + .setRolls(ConstantValue.exactly(1)) + .add(LootItem.lootTableItem(ModItems.FRESH_THESCELOSAURUS_SKULL.get())) + ) + ); } } diff --git a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModEntityTagProvider.java b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModEntityTagProvider.java new file mode 100644 index 0000000..c1d0999 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModEntityTagProvider.java @@ -0,0 +1,31 @@ +package net.cmr.jurassicrevived.datagen; + +import dev.architectury.registry.registries.RegistrySupplier; +import net.cmr.jurassicrevived.entity.ModEntities; +import net.cmr.jurassicrevived.util.ModTags; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.EntityType; + +public class ModEntityTagProvider { + + public interface EntityTagHelper { + void tag(TagKey> tag, EntityType... entityTypes); + } + + public static void registerEntityTags(EntityTagHelper helper) { + ModEntities.ENTITIES.forEach(entitySupplier -> { + EntityType entityType = entitySupplier.get(); + ResourceLocation id = EntityType.getKey(entityType); + + if (id == null || id.equals(EntityType.getKey(ModEntities.SEAT.get()))) { + return; + } + + String path = id.getPath(); + helper.tag(ModTags.EntityTypes.forgeDino(path), entityType); + helper.tag(ModTags.EntityTypes.neoforgeDino(path), entityType); + helper.tag(ModTags.EntityTypes.fabricDino(path), entityType); + }); + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModItemModelProvider.java b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModItemModelProvider.java index 9c593c8..a7cca04 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModItemModelProvider.java +++ b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModItemModelProvider.java @@ -96,6 +96,10 @@ public class ModItemModelProvider { helper.spawnEgg(ModItems.TROODON_SPAWN_EGG.get()); helper.spawnEgg(ModItems.UTAHRAPTOR_SPAWN_EGG.get()); helper.spawnEgg(ModItems.ACHILLOBATOR_SPAWN_EGG.get()); + helper.spawnEgg(ModItems.SUCHOMIMUS_SPAWN_EGG.get()); + helper.spawnEgg(ModItems.CHILESAURUS_SPAWN_EGG.get()); + helper.spawnEgg(ModItems.THESCELOSAURUS_SPAWN_EGG.get()); + helper.spawnEgg(ModItems.MUSSASAURUS_SPAWN_EGG.get()); helper.basicItemModel(ModItems.FROG_MATERIAL.get()); helper.basicItemModel(ModItems.FROG_DNA.get()); @@ -187,6 +191,10 @@ public class ModItemModelProvider { helper.basicItemModel(ModItems.UTAHRAPTOR_SKULL_FOSSIL.get()); helper.basicItemModel(ModItems.ZHENYUANOPTERUS_SKULL_FOSSIL.get()); helper.basicItemModel(ModItems.ACHILLOBATOR_SKULL_FOSSIL.get()); + helper.basicItemModel(ModItems.SUCHOMIMUS_SKULL_FOSSIL.get()); + helper.basicItemModel(ModItems.CHILESAURUS_SKULL_FOSSIL.get()); + helper.basicItemModel(ModItems.THESCELOSAURUS_SKULL_FOSSIL.get()); + helper.basicItemModel(ModItems.MUSSASAURUS_SKULL_FOSSIL.get()); helper.basicItemModel(ModItems.FRESH_APATOSAURUS_SKULL.get()); helper.basicItemModel(ModItems.FRESH_ALBERTOSAURUS_SKULL.get()); @@ -262,6 +270,10 @@ public class ModItemModelProvider { helper.basicItemModel(ModItems.FRESH_UTAHRAPTOR_SKULL.get()); helper.basicItemModel(ModItems.FRESH_ZHENYUANOPTERUS_SKULL.get()); helper.basicItemModel(ModItems.FRESH_ACHILLOBATOR_SKULL.get()); + helper.basicItemModel(ModItems.FRESH_SUCHOMIMUS_SKULL.get()); + helper.basicItemModel(ModItems.FRESH_CHILESAURUS_SKULL.get()); + helper.basicItemModel(ModItems.FRESH_THESCELOSAURUS_SKULL.get()); + helper.basicItemModel(ModItems.FRESH_MUSSASAURUS_SKULL.get()); helper.basicItemModel(ModItems.APATOSAURUS_TISSUE.get()); helper.basicItemModel(ModItems.ALBERTOSAURUS_TISSUE.get()); @@ -337,6 +349,10 @@ public class ModItemModelProvider { helper.basicItemModel(ModItems.UTAHRAPTOR_TISSUE.get()); helper.basicItemModel(ModItems.ZHENYUANOPTERUS_TISSUE.get()); helper.basicItemModel(ModItems.ACHILLOBATOR_TISSUE.get()); + helper.basicItemModel(ModItems.SUCHOMIMUS_TISSUE.get()); + helper.basicItemModel(ModItems.CHILESAURUS_TISSUE.get()); + helper.basicItemModel(ModItems.THESCELOSAURUS_TISSUE.get()); + helper.basicItemModel(ModItems.MUSSASAURUS_TISSUE.get()); helper.basicItemModel(ModItems.APATOSAURUS_DNA.get()); helper.basicItemModel(ModItems.ALBERTOSAURUS_DNA.get()); @@ -412,6 +428,10 @@ public class ModItemModelProvider { helper.basicItemModel(ModItems.UTAHRAPTOR_DNA.get()); helper.basicItemModel(ModItems.ZHENYUANOPTERUS_DNA.get()); helper.basicItemModel(ModItems.ACHILLOBATOR_DNA.get()); + helper.basicItemModel(ModItems.SUCHOMIMUS_DNA.get()); + helper.basicItemModel(ModItems.CHILESAURUS_DNA.get()); + helper.basicItemModel(ModItems.THESCELOSAURUS_DNA.get()); + helper.basicItemModel(ModItems.MUSSASAURUS_DNA.get()); helper.basicItemModel(ModItems.APATOSAURUS_SYRINGE.get()); helper.basicItemModel(ModItems.ALBERTOSAURUS_SYRINGE.get()); @@ -487,6 +507,10 @@ public class ModItemModelProvider { helper.basicItemModel(ModItems.UTAHRAPTOR_SYRINGE.get()); helper.basicItemModel(ModItems.ZHENYUANOPTERUS_SYRINGE.get()); helper.basicItemModel(ModItems.ACHILLOBATOR_SYRINGE.get()); + helper.basicItemModel(ModItems.SUCHOMIMUS_SYRINGE.get()); + helper.basicItemModel(ModItems.CHILESAURUS_SYRINGE.get()); + helper.basicItemModel(ModItems.THESCELOSAURUS_SYRINGE.get()); + helper.basicItemModel(ModItems.MUSSASAURUS_SYRINGE.get()); helper.simpleBlockItemModel(ModBlocks.APATOSAURUS_EGG.get()); helper.simpleBlockItemModel(ModBlocks.ALBERTOSAURUS_EGG.get()); @@ -562,6 +586,10 @@ public class ModItemModelProvider { helper.simpleBlockItemModel(ModBlocks.UTAHRAPTOR_EGG.get()); helper.simpleBlockItemModel(ModBlocks.ZHENYUANOPTERUS_EGG.get()); helper.simpleBlockItemModel(ModBlocks.ACHILLOBATOR_EGG.get()); + helper.simpleBlockItemModel(ModBlocks.SUCHOMIMUS_EGG.get()); + helper.simpleBlockItemModel(ModBlocks.CHILESAURUS_EGG.get()); + helper.simpleBlockItemModel(ModBlocks.THESCELOSAURUS_EGG.get()); + helper.simpleBlockItemModel(ModBlocks.MUSSASAURUS_EGG.get()); helper.basicItemModel(ModBlocks.LOW_SECURITY_FENCE_POLE.get().asItem()); helper.basicItemModel(ModBlocks.LOW_SECURITY_FENCE_WIRE.get().asItem()); @@ -645,6 +673,10 @@ public class ModItemModelProvider { helper.simpleBlockItemModel(ModBlocks.INCUBATED_UTAHRAPTOR_EGG.get()); helper.simpleBlockItemModel(ModBlocks.INCUBATED_ZHENYUANOPTERUS_EGG.get()); helper.simpleBlockItemModel(ModBlocks.INCUBATED_ACHILLOBATOR_EGG.get()); + helper.simpleBlockItemModel(ModBlocks.INCUBATED_SUCHOMIMUS_EGG.get()); + helper.simpleBlockItemModel(ModBlocks.INCUBATED_CHILESAURUS_EGG.get()); + helper.simpleBlockItemModel(ModBlocks.INCUBATED_THESCELOSAURUS_EGG.get()); + helper.simpleBlockItemModel(ModBlocks.INCUBATED_MUSSASAURUS_EGG.get()); helper.flowerItem(ModBlocks.ROYAL_FERN.get()); helper.flowerItem(ModBlocks.HORSETAIL_FERN.get()); diff --git a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModItemTagProvider.java b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModItemTagProvider.java index 2fc8c6f..1ad79d2 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModItemTagProvider.java +++ b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModItemTagProvider.java @@ -88,7 +88,11 @@ public class ModItemTagProvider { ModItems.TUPUXUARA_TISSUE.get(), ModItems.UTAHRAPTOR_TISSUE.get(), ModItems.ZHENYUANOPTERUS_TISSUE.get(), - ModItems.ACHILLOBATOR_TISSUE.get() + ModItems.ACHILLOBATOR_TISSUE.get(), + ModItems.SUCHOMIMUS_TISSUE.get(), + ModItems.MUSSASAURUS_TISSUE.get(), + ModItems.THESCELOSAURUS_TISSUE.get(), + ModItems.CHILESAURUS_TISSUE.get() ); helper.tag(ModTags.Items.DNA, @@ -166,7 +170,11 @@ public class ModItemTagProvider { ModItems.TUPUXUARA_DNA.get(), ModItems.UTAHRAPTOR_DNA.get(), ModItems.ZHENYUANOPTERUS_DNA.get(), - ModItems.ACHILLOBATOR_DNA.get() + ModItems.ACHILLOBATOR_DNA.get(), + ModItems.SUCHOMIMUS_DNA.get(), + ModItems.MUSSASAURUS_DNA.get(), + ModItems.THESCELOSAURUS_DNA.get(), + ModItems.CHILESAURUS_DNA.get() ); helper.tag(ModTags.Items.SYRINGES, @@ -244,7 +252,11 @@ public class ModItemTagProvider { ModItems.TUPUXUARA_SYRINGE.get(), ModItems.UTAHRAPTOR_SYRINGE.get(), ModItems.ZHENYUANOPTERUS_SYRINGE.get(), - ModItems.ACHILLOBATOR_SYRINGE.get() + ModItems.ACHILLOBATOR_SYRINGE.get(), + ModItems.SUCHOMIMUS_SYRINGE.get(), + ModItems.MUSSASAURUS_SYRINGE.get(), + ModItems.THESCELOSAURUS_SYRINGE.get(), + ModItems.CHILESAURUS_SYRINGE.get() ); helper.tag(ModTags.Items.EGGS, @@ -321,7 +333,11 @@ public class ModItemTagProvider { Item.byBlock(ModBlocks.TUPUXUARA_EGG.get()), Item.byBlock(ModBlocks.UTAHRAPTOR_EGG.get()), Item.byBlock(ModBlocks.ZHENYUANOPTERUS_EGG.get()), - Item.byBlock(ModBlocks.ACHILLOBATOR_EGG.get()) + Item.byBlock(ModBlocks.ACHILLOBATOR_EGG.get()), + Item.byBlock(ModBlocks.SUCHOMIMUS_EGG.get()), + Item.byBlock(ModBlocks.MUSSASAURUS_EGG.get()), + Item.byBlock(ModBlocks.THESCELOSAURUS_EGG.get()), + Item.byBlock(ModBlocks.CHILESAURUS_EGG.get()) ); helper.tag(ModTags.Items.FOSSILS, @@ -396,7 +412,11 @@ public class ModItemTagProvider { ModItems.TUPUXUARA_SKULL_FOSSIL.get(), ModItems.UTAHRAPTOR_SKULL_FOSSIL.get(), ModItems.ZHENYUANOPTERUS_SKULL_FOSSIL.get(), - ModItems.ACHILLOBATOR_SKULL_FOSSIL.get() + ModItems.ACHILLOBATOR_SKULL_FOSSIL.get(), + ModItems.SUCHOMIMUS_SKULL_FOSSIL.get(), + ModItems.MUSSASAURUS_SKULL_FOSSIL.get(), + ModItems.THESCELOSAURUS_SKULL_FOSSIL.get(), + ModItems.CHILESAURUS_SKULL_FOSSIL.get() ); helper.tag(ModTags.Items.SKULLS, @@ -474,7 +494,11 @@ public class ModItemTagProvider { ModItems.FRESH_TUPUXUARA_SKULL.get(), ModItems.FRESH_UTAHRAPTOR_SKULL.get(), ModItems.FRESH_ZHENYUANOPTERUS_SKULL.get(), - ModItems.FRESH_ACHILLOBATOR_SKULL.get() + ModItems.FRESH_ACHILLOBATOR_SKULL.get(), + ModItems.FRESH_SUCHOMIMUS_SKULL.get(), + ModItems.FRESH_MUSSASAURUS_SKULL.get(), + ModItems.FRESH_THESCELOSAURUS_SKULL.get(), + ModItems.FRESH_CHILESAURUS_SKULL.get() ); } } diff --git a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModRecipeProvider.java b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModRecipeProvider.java index 913f915..de3be9e 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/datagen/ModRecipeProvider.java +++ b/common/src/main/java/net/cmr/jurassicrevived/datagen/ModRecipeProvider.java @@ -195,6 +195,10 @@ public class ModRecipeProvider { helper.dnaExtracting(ModItems.TEST_TUBE.get(), ModItems.UTAHRAPTOR_TISSUE.get(), ModItems.UTAHRAPTOR_DNA.get(), 1); helper.dnaExtracting(ModItems.TEST_TUBE.get(), ModItems.ZHENYUANOPTERUS_TISSUE.get(), ModItems.ZHENYUANOPTERUS_DNA.get(), 1); helper.dnaExtracting(ModItems.TEST_TUBE.get(), ModItems.ACHILLOBATOR_TISSUE.get(), ModItems.ACHILLOBATOR_DNA.get(), 1); + helper.dnaExtracting(ModItems.TEST_TUBE.get(), ModItems.SUCHOMIMUS_TISSUE.get(), ModItems.SUCHOMIMUS_DNA.get(), 1); + helper.dnaExtracting(ModItems.TEST_TUBE.get(), ModItems.CHILESAURUS_TISSUE.get(), ModItems.CHILESAURUS_DNA.get(), 1); + helper.dnaExtracting(ModItems.TEST_TUBE.get(), ModItems.THESCELOSAURUS_TISSUE.get(), ModItems.THESCELOSAURUS_DNA.get(), 1); + helper.dnaExtracting(ModItems.TEST_TUBE.get(), ModItems.MUSSASAURUS_TISSUE.get(), ModItems.MUSSASAURUS_DNA.get(), 1); helper.fossilCleaning(ModBlocks.STONE_FOSSIL.get(), ModItems.APATOSAURUS_SKULL_FOSSIL.get(), 1); helper.fossilCleaning(ModBlocks.DEEPSLATE_FOSSIL.get(), ModItems.VELOCIRAPTOR_SKULL_FOSSIL.get(), 1); @@ -270,6 +274,10 @@ public class ModRecipeProvider { helper.fossilGrinding(ModItems.UTAHRAPTOR_SKULL_FOSSIL.get(), ModItems.UTAHRAPTOR_TISSUE.get(), 1); helper.fossilGrinding(ModItems.ZHENYUANOPTERUS_SKULL_FOSSIL.get(), ModItems.ZHENYUANOPTERUS_TISSUE.get(), 1); helper.fossilGrinding(ModItems.ACHILLOBATOR_SKULL_FOSSIL.get(), ModItems.ACHILLOBATOR_TISSUE.get(), 1); + helper.fossilGrinding(ModItems.SUCHOMIMUS_SKULL_FOSSIL.get(), ModItems.SUCHOMIMUS_TISSUE.get(), 1); + helper.fossilGrinding(ModItems.CHILESAURUS_SKULL_FOSSIL.get(), ModItems.CHILESAURUS_TISSUE.get(), 1); + helper.fossilGrinding(ModItems.THESCELOSAURUS_SKULL_FOSSIL.get(), ModItems.THESCELOSAURUS_TISSUE.get(), 1); + helper.fossilGrinding(ModItems.MUSSASAURUS_SKULL_FOSSIL.get(), ModItems.MUSSASAURUS_TISSUE.get(), 1); helper.skullToTissue(ModItems.FRESH_ALBERTOSAURUS_SKULL.get(), ModItems.ALBERTOSAURUS_TISSUE.get(), 1); helper.skullToTissue(ModItems.FRESH_APATOSAURUS_SKULL.get(), ModItems.APATOSAURUS_TISSUE.get(), 1); @@ -345,6 +353,10 @@ public class ModRecipeProvider { helper.skullToTissue(ModItems.FRESH_UTAHRAPTOR_SKULL.get(), ModItems.UTAHRAPTOR_TISSUE.get(), 1); helper.skullToTissue(ModItems.FRESH_ZHENYUANOPTERUS_SKULL.get(), ModItems.ZHENYUANOPTERUS_TISSUE.get(), 1); helper.skullToTissue(ModItems.FRESH_ACHILLOBATOR_SKULL.get(), ModItems.ACHILLOBATOR_TISSUE.get(), 1); + helper.skullToTissue(ModItems.FRESH_SUCHOMIMUS_SKULL.get(), ModItems.SUCHOMIMUS_TISSUE.get(), 1); + helper.skullToTissue(ModItems.FRESH_CHILESAURUS_SKULL.get(), ModItems.CHILESAURUS_TISSUE.get(), 1); + helper.skullToTissue(ModItems.FRESH_THESCELOSAURUS_SKULL.get(), ModItems.THESCELOSAURUS_TISSUE.get(), 1); + helper.skullToTissue(ModItems.FRESH_MUSSASAURUS_SKULL.get(), ModItems.MUSSASAURUS_TISSUE.get(), 1); helper.dnaAnalyzing(ModItems.TEST_TUBE.get(), ModItems.FROG_MATERIAL.get(), ModItems.FROG_DNA.get(), 1); @@ -438,6 +450,10 @@ public class ModRecipeProvider { helper.embryonicMachine(ModItems.SYRINGE.get(), ModItems.UTAHRAPTOR_DNA.get(), ModItems.FROG_DNA.get(), ModItems.UTAHRAPTOR_SYRINGE.get(), 1); helper.embryonicMachine(ModItems.SYRINGE.get(), ModItems.ZHENYUANOPTERUS_DNA.get(), ModItems.FROG_DNA.get(), ModItems.ZHENYUANOPTERUS_SYRINGE.get(), 1); helper.embryonicMachine(ModItems.SYRINGE.get(), ModItems.ACHILLOBATOR_DNA.get(), ModItems.FROG_DNA.get(), ModItems.ACHILLOBATOR_SYRINGE.get(), 1); + helper.embryonicMachine(ModItems.SYRINGE.get(), ModItems.SUCHOMIMUS_DNA.get(), ModItems.FROG_DNA.get(), ModItems.SUCHOMIMUS_SYRINGE.get(), 1); + helper.embryonicMachine(ModItems.SYRINGE.get(), ModItems.CHILESAURUS_DNA.get(), ModItems.FROG_DNA.get(), ModItems.CHILESAURUS_SYRINGE.get(), 1); + helper.embryonicMachine(ModItems.SYRINGE.get(), ModItems.THESCELOSAURUS_DNA.get(), ModItems.FROG_DNA.get(), ModItems.THESCELOSAURUS_SYRINGE.get(), 1); + helper.embryonicMachine(ModItems.SYRINGE.get(), ModItems.MUSSASAURUS_DNA.get(), ModItems.FROG_DNA.get(), ModItems.MUSSASAURUS_SYRINGE.get(), 1); helper.embryoCalcification(ModItems.ALBERTOSAURUS_SYRINGE.get(), Items.EGG, ModBlocks.ALBERTOSAURUS_EGG.get(), 1); helper.embryoCalcification(ModItems.APATOSAURUS_SYRINGE.get(), Items.EGG, ModBlocks.APATOSAURUS_EGG.get(), 1); @@ -513,6 +529,10 @@ public class ModRecipeProvider { helper.embryoCalcification(ModItems.UTAHRAPTOR_SYRINGE.get(), Items.EGG, ModBlocks.UTAHRAPTOR_EGG.get(), 1); helper.embryoCalcification(ModItems.ZHENYUANOPTERUS_SYRINGE.get(), Items.EGG, ModBlocks.ZHENYUANOPTERUS_EGG.get(), 1); helper.embryoCalcification(ModItems.ACHILLOBATOR_SYRINGE.get(), Items.EGG, ModBlocks.ACHILLOBATOR_EGG.get(), 1); + helper.embryoCalcification(ModItems.SUCHOMIMUS_SYRINGE.get(), Items.EGG, ModBlocks.SUCHOMIMUS_EGG.get(), 1); + helper.embryoCalcification(ModItems.CHILESAURUS_SYRINGE.get(), Items.EGG, ModBlocks.CHILESAURUS_EGG.get(), 1); + helper.embryoCalcification(ModItems.THESCELOSAURUS_SYRINGE.get(), Items.EGG, ModBlocks.THESCELOSAURUS_EGG.get(), 1); + helper.embryoCalcification(ModItems.MUSSASAURUS_SYRINGE.get(), Items.EGG, ModBlocks.MUSSASAURUS_EGG.get(), 1); helper.incubating(ModBlocks.APATOSAURUS_EGG.get(), ModBlocks.INCUBATED_APATOSAURUS_EGG.get(), 1); helper.incubating(ModBlocks.ALBERTOSAURUS_EGG.get(), ModBlocks.INCUBATED_ALBERTOSAURUS_EGG.get(), 1); @@ -588,6 +608,10 @@ public class ModRecipeProvider { helper.incubating(ModBlocks.UTAHRAPTOR_EGG.get(), ModBlocks.INCUBATED_UTAHRAPTOR_EGG.get(), 1); helper.incubating(ModBlocks.ZHENYUANOPTERUS_EGG.get(), ModBlocks.INCUBATED_ZHENYUANOPTERUS_EGG.get(), 1); helper.incubating(ModBlocks.ACHILLOBATOR_EGG.get(), ModBlocks.INCUBATED_ACHILLOBATOR_EGG.get(), 1); + helper.incubating(ModBlocks.SUCHOMIMUS_EGG.get(), ModBlocks.INCUBATED_SUCHOMIMUS_EGG.get(), 1); + helper.incubating(ModBlocks.CHILESAURUS_EGG.get(), ModBlocks.INCUBATED_CHILESAURUS_EGG.get(), 1); + helper.incubating(ModBlocks.THESCELOSAURUS_EGG.get(), ModBlocks.INCUBATED_THESCELOSAURUS_EGG.get(), 1); + helper.incubating(ModBlocks.MUSSASAURUS_EGG.get(), ModBlocks.INCUBATED_MUSSASAURUS_EGG.get(), 1); helper.amberRandomDNA(ModItems.TEST_TUBE.get(), ModItems.MOSQUITO_IN_AMBER.get(), ModItems.FROG_DNA.get(), 1); } diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/ModEntities.java b/common/src/main/java/net/cmr/jurassicrevived/entity/ModEntities.java index f688603..540ad58 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/ModEntities.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/ModEntities.java @@ -263,6 +263,18 @@ public class ModEntities { ENTITIES.register("dryosaurus", () -> EntityType.Builder.of(DryosaurusEntity::new, MobCategory.CREATURE) .sized(1.0f, 1.5f).build("dryosaurus")); + public static final RegistrySupplier> THESCELOSAURUS = + ENTITIES.register("thescelosaurus", () -> EntityType.Builder.of(ThescelosaurusEntity::new, MobCategory.CREATURE) + .sized(1.0f, 1.5f).build("thescelosaurus")); + + public static final RegistrySupplier> MUSSASAURUS = + ENTITIES.register("mussasaurus", () -> EntityType.Builder.of(MussasaurusEntity::new, MobCategory.CREATURE) + .sized(1.0f, 1.5f).build("mussasaurus")); + + public static final RegistrySupplier> CHILESAURUS = + ENTITIES.register("chilesaurus", () -> EntityType.Builder.of(ChilesaurusEntity::new, MobCategory.CREATURE) + .sized(1.0f, 1.5f).build("chilesaurus")); + public static final RegistrySupplier> HADROSAURUS = ENTITIES.register("hadrosaurus", () -> EntityType.Builder.of(HadrosaurusEntity::new, MobCategory.CREATURE) .sized(2.0f, 3.0f).build("hadrosaurus")); @@ -335,6 +347,10 @@ public class ModEntities { ENTITIES.register("achillobator", () -> EntityType.Builder.of(AchillobatorEntity::new, MobCategory.CREATURE) .sized(1.0f, 2.0f).build("achillobator")); + public static final RegistrySupplier> SUCHOMIMUS = + ENTITIES.register("suchomimus", () -> EntityType.Builder.of(SuchomimusEntity::new, MobCategory.CREATURE) + .sized(2.0f, 3.0f).build("suchomimus")); + public static void registerAttributes() { EntityAttributeRegistry.register(APATOSAURUS, ApatosaurusEntity::createAttributes); EntityAttributeRegistry.register(ALBERTOSAURUS, AlbertosaurusEntity::createAttributes); @@ -412,6 +428,10 @@ public class ModEntities { EntityAttributeRegistry.register(TROODON, TroodonEntity::createAttributes); EntityAttributeRegistry.register(UTAHRAPTOR, UtahraptorEntity::createAttributes); EntityAttributeRegistry.register(ACHILLOBATOR, AchillobatorEntity::createAttributes); + EntityAttributeRegistry.register(SUCHOMIMUS, SuchomimusEntity::createAttributes); + EntityAttributeRegistry.register(CHILESAURUS, ChilesaurusEntity::createAttributes); + EntityAttributeRegistry.register(MUSSASAURUS, MussasaurusEntity::createAttributes); + EntityAttributeRegistry.register(THESCELOSAURUS, ThescelosaurusEntity::createAttributes); } public static void registerSpawnPlacements() { @@ -495,6 +515,10 @@ public class ModEntities { registerGroundAnimalSpawn(VELOCIRAPTOR); registerGroundAnimalSpawn(ZHENYUANOPTERUS); registerGroundAnimalSpawn(ACHILLOBATOR); + registerGroundAnimalSpawn(SUCHOMIMUS); + registerGroundAnimalSpawn(CHILESAURUS); + registerGroundAnimalSpawn(MUSSASAURUS); + registerGroundAnimalSpawn(THESCELOSAURUS); } private static void registerGroundAnimalSpawn(RegistrySupplier> entityType) { diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/ai/DinoAIController.java b/common/src/main/java/net/cmr/jurassicrevived/entity/ai/DinoAIController.java index bf2f447..77f4802 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/ai/DinoAIController.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/ai/DinoAIController.java @@ -2,7 +2,9 @@ package net.cmr.jurassicrevived.entity.ai; import net.cmr.jurassicrevived.config.JRConfig; import net.cmr.jurassicrevived.config.JRConfigManager; +import net.cmr.jurassicrevived.util.ModTags; import net.minecraft.core.BlockPos; +import net.minecraft.tags.BlockTags; import net.minecraft.tags.FluidTags; import net.minecraft.world.InteractionHand; import net.minecraft.world.effect.MobEffectInstance; @@ -12,7 +14,11 @@ import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.util.DefaultRandomPos; import net.minecraft.world.entity.animal.Animal; import net.minecraft.world.entity.animal.FlyingAnimal; +import net.minecraft.world.entity.monster.Creeper; import net.minecraft.world.entity.player.Player; +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.level.levelgen.Heightmap; import net.minecraft.world.level.pathfinder.Node; import net.minecraft.world.level.pathfinder.Path; @@ -26,8 +32,40 @@ public class DinoAIController { private static final float VITAL_DECAY_MULTIPLIER = 0.05f; private static final double TERRITORIAL_ROAM_SPEED_MULTIPLIER = 2.0D; + private static final double MIN_ROAM_SPEED = 0.55D; + private static final double ROAM_SPEED_MULTIPLIER = 1.25D; + private static final double ICE_ROAM_SPEED_MULTIPLIER = 1.75D; + private static final int ROAM_SELECTION_IDLE_TIME = 15; + private static final float ROAM_SELECTION_CHANCE = 0.85f; + private static final double FLYER_GROUND_WALK_TARGET_RANGE = 10.0D; + private static final double WATER_SURFACE_BOOST = 0.11D; + private static final double TERRESTRIAL_WATER_EXIT_BOOST = 0.18D; + private static final double AVIAN_DIVE_SPEED = 0.10D; + private static final double AVIAN_DIVE_MAX_DOWNWARD_SPEED = -0.12D; + private static final double AVIAN_WATER_EXIT_BOOST = 0.10D; + private static final int AVIAN_DIVE_RECOVERY_TICKS = 60; + private static final int AVIAN_MIN_SURFACE_RECOVERY_TICKS = 20; + private static final int AVIAN_MAX_UNDERWATER_DIVE_TICKS = 40; + private static final int ROAM_STATE_DURATION = 320; + private static final int ROAM_RETARGET_INTERVAL = 80; + private static final int NATURAL_BREEDING_CHECK_INTERVAL = 200; + private static final int NATURAL_BREEDING_PAIR_CHANCE = 180; + private static final int NATURAL_BREEDING_SELF_CHANCE = 2880; + private static final double NATURAL_BREEDING_PARTNER_RANGE = 12.0D; + private static final int FULL_HUNGER_REGEN_INTERVAL = 80; + private static final int KILL_REGEN_DURATION_TICKS = 100; + private static final double AVIAN_RECOVERY_AIR_UPWARD_SPEED = 0.08D; + private static final double AVIAN_RECOVERY_MAX_UPWARD_SPEED = 0.22D; + private static final boolean AVIAN_UNDERWATER_HUNTING_ENABLED = false; + private static final int HERBIVORE_SELF_FEED_INTERVAL = 40; + private static final float HERBIVORE_SELF_FEED_CHANCE = 0.35f; + private static final int HERBIVORE_BROWSE_HORIZONTAL_RANGE = 2; + private static final int HERBIVORE_BROWSE_VERTICAL_RANGE = 2; + private static final float HERBIVORE_SELF_FEED_HUNGER_THRESHOLD = 0.75f; + private static final float HERBIVORE_SELF_FEED_REPLENISHMENT_MULTIPLIER = 0.50f; - private final DinoEntityBase dino; + + private final DinoEntityBase dino; private State currentState = State.IDLE; private LivingEntity attackTarget; @@ -40,6 +78,12 @@ public class DinoAIController { private int pathRecalcTimer = 0; private int failedPathfindingAttempts = 0; private boolean isSelfBreeding = false; // For parthenogenesis + private int breedingCheckCooldown = 0; + private int avianDiveRecoveryTimer = 0; + private int avianSurfaceRecoveryTimer = 0; + private boolean avianDiveInProgress = false; + private int avianUnderwaterDiveTimer = 0; + private boolean avianDiveAttackSpent = false; // Attack Cooldown Tracker private int attackCooldown = 0; @@ -70,6 +114,7 @@ public class DinoAIController { handleFloating(); updateSensors(); + checkBreedingReadiness(); switch (currentState) { case IDLE -> tickIdle(); @@ -84,6 +129,15 @@ public class DinoAIController { stateTimer++; if (attackCooldown > 0) attackCooldown--; + if (breedingCheckCooldown > 0) breedingCheckCooldown--; + + if (avianDiveRecoveryTimer > 0) { + avianDiveRecoveryTimer--; + } + + if (avianSurfaceRecoveryTimer > 0 && !dino.isInWater()) { + avianSurfaceRecoveryTimer--; + } } private void handleFloating() { @@ -91,6 +145,14 @@ public class DinoAIController { return; } + if (isAvianWaterHunter()) { + return; + } + + if (handleWaterMovementHelper(null)) { + return; + } + double fluidHeight = dino.getFluidHeight(FluidTags.WATER); if (fluidHeight <= dino.getFluidJumpThreshold()) { return; @@ -98,47 +160,59 @@ public class DinoAIController { Vec3 velocity = dino.getDeltaMovement(); - if (velocity.y < 0.08D) { + if (velocity.y < WATER_SURFACE_BOOST) { dino.setDeltaMovement( velocity.x, - Math.min(velocity.y + 0.03D, 0.08D), + Math.min(velocity.y + 0.03D, WATER_SURFACE_BOOST), velocity.z ); } } - public void onHurtBy(LivingEntity attacker) { - // Retaliate if we are capable of attacking (have damage attribute > 0) - // Carnivores always attack back. Herbivores/others attack back if they have strength. - // We SKIP the generic canAttack check here because if something hurt us, - // we should try to fight back even if it's "too big" or technically invalid by roaming standards. - boolean canFightBack = dino.getAttributeValue(Attributes.ATTACK_DAMAGE) > 0 && !dino.isBaby(); - - if (canFightBack) { - this.attackTarget = attacker; - transitionTo(State.CHASING); - } else { - this.attackTarget = attacker; - transitionTo(State.FLEEING); - } - } + public void onHurtBy(LivingEntity attacker) { + if (isExcludedAttackTarget(attacker)) { + return; + } + + // Retaliate if we are capable of attacking (have damage attribute > 0) + // Carnivores always attack back. Herbivores/others attack back if they have strength. + // We SKIP the generic canAttack check here because if something hurt us, + // we should try to fight back even if it's "too big" or technically invalid by roaming standards. + boolean canFightBack = dino.getAttributeValue(Attributes.ATTACK_DAMAGE) > 0 && !dino.isBaby(); + + if (canFightBack) { + this.attackTarget = attacker; + transitionTo(State.CHASING); + } else { + this.attackTarget = attacker; + transitionTo(State.FLEEING); + } + } private void transitionTo(State newState) { - // Handle Condition updates - if (dino.dinoData != null) { - if (newState == State.SLEEPING) dino.dinoData.addCondition(IDinoData.Condition.SLEEPING); - else dino.dinoData.removeCondition(IDinoData.Condition.SLEEPING); - } + // Handle Condition updates + if (dino.dinoData != null) { + if (newState == State.SLEEPING) dino.dinoData.addCondition(IDinoData.Condition.SLEEPING); + else dino.dinoData.removeCondition(IDinoData.Condition.SLEEPING); + } - this.currentState = newState; - this.stateTimer = 0; - this.pathRecalcTimer = 0; - this.failedPathfindingAttempts = 0; + this.currentState = newState; + this.stateTimer = 0; + this.pathRecalcTimer = 0; + this.failedPathfindingAttempts = 0; - // Reset sprinting if we aren't in a high-speed state - if (newState != State.CHASING && newState != State.ATTACKING && newState != State.FLEEING) { - dino.setSprinting(false); - } + if (newState != State.CHASING && newState != State.ATTACKING) { + this.avianDiveRecoveryTimer = 0; + this.avianSurfaceRecoveryTimer = 0; + this.avianDiveInProgress = false; + this.avianUnderwaterDiveTimer = 0; + this.avianDiveAttackSpent = false; + } + + // Reset sprinting if we aren't in a high-speed state + if (newState != State.CHASING && newState != State.ATTACKING && newState != State.FLEEING) { + dino.setSprinting(false); + } // Do NOT stop navigation here if switching Chasing <-> Attacking to maintain momentum if (newState == State.IDLE || newState == State.ROAMING || newState == State.TERRITORIAL_ROAMING || newState == State.SLEEPING || newState == State.MATING) { @@ -174,16 +248,24 @@ public class DinoAIController { if (hungerDecay > 0.0f) { dino.dinoData.modifyHunger(-hungerDecay); + } else if (!jrConfig.hungerConsumption) { + dino.dinoData.setHunger(config.maxHunger()); } if (thirstDecay > 0.0f) { float currentThirst = dino.dinoData.getThirst(); dino.dinoData.setThirst(Math.max(0, currentThirst - thirstDecay)); + } else if (!jrConfig.waterConsumption) { + dino.dinoData.setThirst(config.maxThirst()); } float hunger = dino.dinoData.getHunger(); float thirst = dino.dinoData.getThirst(); + if (hunger >= config.maxHunger() && dino.tickCount % FULL_HUNGER_REGEN_INTERVAL == 0 && dino.getHealth() < dino.getMaxHealth()) { + dino.heal(1.0f); + } + if (hunger <= 0 || thirst <= 0) { if (currentState == State.SLEEPING) { transitionTo(State.IDLE); @@ -236,49 +318,65 @@ public class DinoAIController { } } - // 4. Target Validation (Attack) - if (attackTarget != null) { - boolean shouldStop = false; + // 4. Target Validation (Attack) + if (attackTarget != null) { + boolean shouldStop = false; - // Basic checks - if (!attackTarget.isAlive() || dino.distanceToSqr(attackTarget) > 64 * 64) { - shouldStop = true; - } + // Basic checks + if (!attackTarget.isAlive() || dino.distanceToSqr(attackTarget) > 64 * 64) { + shouldStop = true; + } - // Player specific checks (Creative/Spectator/Peaceful) - if (attackTarget instanceof Player player) { - if (player.isCreative() || player.isSpectator()) shouldStop = true; - } + if (isExcludedAttackTarget(attackTarget)) { + shouldStop = true; + } - // Note: We deliberately do NOT call dino.canAttack(attackTarget) here. - // canAttack() includes "preferences" (like size limits or whitelist) which should - // be ignored if we are actively retaliating or hunting a valid target we already selected. + if (!canTargetInCurrentEnvironment(attackTarget)) { + shouldStop = true; + } - if (shouldStop) { - attackTarget = null; - if (currentState == State.CHASING || currentState == State.ATTACKING) { - transitionTo(State.IDLE); - } - } - } + // Player specific checks (Creative/Spectator/Peaceful) + if (attackTarget instanceof Player player) { + if (player.isCreative() || player.isSpectator()) shouldStop = true; + } - // 5. Hunt check - if ((currentState == State.IDLE || currentState == State.ROAMING || currentState == State.TERRITORIAL_ROAMING) && dino.isCarnivore()) { - boolean hungerConsumptionEnabled = JRConfigManager.get().hungerConsumption; - boolean territorial = dino.dinoData != null && dino.dinoData.getAggression() == IDinoData.Aggression.TERRITORIAL; - boolean shouldHunt; + // Note: We deliberately do NOT call dino.canAttack(attackTarget) here. + // canAttack() includes "preferences" (like size limits or whitelist) which should + // be ignored if we are actively retaliating or hunting a valid target we already selected. - if (hungerConsumptionEnabled) { - boolean hungry = dino.dinoData != null && dino.dinoData.getHunger() < 70; - shouldHunt = hungry || (territorial && dino.dinoData != null && dino.dinoData.getHunger() < 90); - } else { - shouldHunt = stateTimer % 100 == 0 && dino.getRandom().nextFloat() < (territorial ? 0.35f : 0.15f); - } + if (shouldStop) { + attackTarget = null; + if (currentState == State.CHASING || currentState == State.ATTACKING) { + transitionTo(State.IDLE); + } + } + } - if (shouldHunt && stateTimer % 10 == 0) { - findTarget(); - } - } + // 5. Hunt check + if ((currentState == State.IDLE || currentState == State.ROAMING || currentState == State.TERRITORIAL_ROAMING) && dino.isCarnivore()) { + JRConfig jrConfig = JRConfigManager.get(); + boolean hungerConsumptionEnabled = jrConfig.hungerConsumption; + boolean waterConsumptionEnabled = jrConfig.waterConsumption; + boolean territorial = dino.dinoData != null && dino.dinoData.getAggression() == IDinoData.Aggression.TERRITORIAL; + boolean shouldHunt; + + if (hungerConsumptionEnabled) { + boolean hungry = dino.dinoData != null && dino.dinoData.getHunger() < 70; + shouldHunt = hungry || (territorial && dino.dinoData != null && dino.dinoData.getHunger() < 90); + } else { + float baseChance = territorial ? 0.55f : 0.35f; + + if (!waterConsumptionEnabled) { + baseChance += territorial ? 0.30f : 0.25f; + } + + shouldHunt = stateTimer % 80 == 0 && dino.getRandom().nextFloat() < baseChance; + } + + if (shouldHunt && stateTimer % 10 == 0) { + findTarget(); + } + } // 6. Water check if ((currentState == State.IDLE || currentState == State.ROAMING || currentState == State.TERRITORIAL_ROAMING)) { @@ -314,22 +412,26 @@ public class DinoAIController { List candidates = new ArrayList<>(); - for (LivingEntity e : nearby) { - if (e == dino) continue; - if (!dino.canAttack(e)) continue; + for (LivingEntity e : nearby) { + if (e == dino) continue; + if (isExcludedAttackTarget(e)) continue; + if (!dino.canAttack(e)) continue; + if (!canTargetInCurrentEnvironment(e)) continue; - if (e instanceof Player player) { - // Apply motivation logic for Players - boolean isTerritorial = dino.dinoData != null && dino.dinoData.getAggression() == IDinoData.Aggression.TERRITORIAL; - boolean hungry = dino.dinoData != null && dino.dinoData.getHunger() < 70; + if (e instanceof Player player) { + // Apply motivation logic for Players + boolean isTerritorial = dino.dinoData != null && dino.dinoData.getAggression() == IDinoData.Aggression.TERRITORIAL; + boolean hungerConsumptionEnabled = JRConfigManager.get().hungerConsumption; + boolean hungry = dino.dinoData != null && dino.dinoData.getHunger() < 70; + boolean instinctivelyAggressive = !hungerConsumptionEnabled && dino.isCarnivore(); boolean validPlayerTarget = false; if (isTerritorial) { - if (hungry || dino.distanceToSqr(player) < 225) { + if (hungry || instinctivelyAggressive || dino.distanceToSqr(player) < 225) { validPlayerTarget = true; } } else { - if (hungry) { + if (hungry || instinctivelyAggressive) { validPlayerTarget = true; } } @@ -352,7 +454,16 @@ public class DinoAIController { if (checks >= 5) break; // Limit pathfinding checks to avoid lag checks++; - Path path = dino.getNavigation().createPath(candidate, 0); + if (AVIAN_UNDERWATER_HUNTING_ENABLED && isAvianWaterHunter() && isUnderwaterTarget(candidate)) { + this.attackTarget = candidate; + this.avianDiveInProgress = true; + this.avianUnderwaterDiveTimer = 0; + this.avianDiveAttackSpent = false; + transitionTo(State.CHASING); + return; + } + + Path path = dino.getNavigation().createPath(candidate, 0); if (path != null) { // VERIFY PATH REACHES TARGET // The pathfinder may return a partial path that ends at a wall. @@ -371,70 +482,188 @@ public class DinoAIController { } } + private boolean canTargetInCurrentEnvironment(LivingEntity target) { + if (isUnderwaterTarget(target)) { + return isAvianWaterHunter() && AVIAN_UNDERWATER_HUNTING_ENABLED; + } + + if (isAvianWaterHunter()) { + return true; + } + + if (!isGroundCreature()) { + return true; + } + + return true; + } + + private boolean isAvianWaterHunter() { + return dino instanceof FlyingAnimal && dino.isCarnivore(); + } + + private boolean handleWaterMovementHelper(LivingEntity target) { + if (isAvianWaterHunter()) { + return handleAvianWaterHuntingMovement(target); + } + + if (isGroundCreature()) { + return handleTerrestrialWaterExitMovement(); + } + + return false; + } + + private boolean handleAvianWaterHuntingMovement(LivingEntity target) { + if (isRecoveringFromAvianDive()) { + handleAvianDiveRecoveryMovement(); + return true; + } + + if (target != null && target.isAlive() && isUnderwaterTarget(target)) { + avianDiveInProgress = true; + + if (dino.isInWater()) { + avianUnderwaterDiveTimer++; + if (avianUnderwaterDiveTimer > AVIAN_MAX_UNDERWATER_DIVE_TICKS) { + beginAvianDiveRecovery(); + return true; + } + } else { + avianUnderwaterDiveTimer = 0; + } + + Vec3 toTarget = target.position().add(0.0D, target.getBbHeight() * 0.5D, 0.0D).subtract(dino.position()); + + if (toTarget.lengthSqr() > 0.01D) { + Vec3 dive = toTarget.normalize().scale(AVIAN_DIVE_SPEED); + Vec3 velocity = dino.getDeltaMovement(); + + dino.getNavigation().stop(); + + dino.setDeltaMovement( + velocity.x * 0.85D + dive.x, + Math.max(AVIAN_DIVE_MAX_DOWNWARD_SPEED, velocity.y * 0.75D + dive.y), + velocity.z * 0.85D + dive.z + ); + } + + return true; + } + + if (avianDiveInProgress && dino.isInWater()) { + beginAvianDiveRecovery(); + handleAvianDiveRecoveryMovement(); + return true; + } + + avianDiveInProgress = false; + avianUnderwaterDiveTimer = 0; + return false; + } + + private boolean isRecoveringFromAvianDive() { + return avianDiveRecoveryTimer > 0 || avianSurfaceRecoveryTimer > 0; + } + + private void beginAvianDiveRecovery() { + this.avianDiveRecoveryTimer = AVIAN_DIVE_RECOVERY_TICKS; + this.avianSurfaceRecoveryTimer = AVIAN_MIN_SURFACE_RECOVERY_TICKS; + this.avianDiveInProgress = false; + this.avianUnderwaterDiveTimer = 0; + this.avianDiveAttackSpent = true; + this.pathRecalcTimer = 10; + dino.getNavigation().stop(); + } + + private void handleAvianDiveRecoveryMovement() { + Vec3 velocity = dino.getDeltaMovement(); + + dino.getNavigation().stop(); + + if (dino.isInWater()) { + dino.setDeltaMovement( + velocity.x * 0.45D, + Math.min(Math.max(velocity.y + 0.035D, AVIAN_WATER_EXIT_BOOST), AVIAN_RECOVERY_MAX_UPWARD_SPEED), + velocity.z * 0.45D + ); + dino.hasImpulse = true; + return; + } + + dino.setDeltaMovement( + velocity.x * 0.92D, + Math.min(Math.max(velocity.y, AVIAN_RECOVERY_AIR_UPWARD_SPEED), AVIAN_RECOVERY_MAX_UPWARD_SPEED), + velocity.z * 0.92D + ); + dino.hasImpulse = true; + } + + private boolean handleTerrestrialWaterExitMovement() { + if (!dino.isInWater()) { + return false; + } + + double fluidHeight = dino.getFluidHeight(FluidTags.WATER); + Vec3 velocity = dino.getDeltaMovement(); + + if (fluidHeight > dino.getFluidJumpThreshold() * 0.6D || dino.horizontalCollision) { + dino.setDeltaMovement( + velocity.x, + Math.min(velocity.y + 0.06D, TERRESTRIAL_WATER_EXIT_BOOST), + velocity.z + ); + + return true; + } + + return false; + } + + private boolean isExcludedAttackTarget(LivingEntity target) { + return target instanceof Creeper + || dino.getDinoTags().stream().anyMatch(tag -> target.getType().is(tag)); + } + + private boolean isGroundCreature() { + return !dino.isMarine() + && !dino.isAmphibious() + && !(dino instanceof FlyingAnimal); + } + + private boolean isUnderwaterTarget(LivingEntity target) { + return target.isInWater() + && target.getFluidHeight(FluidTags.WATER) > target.getFluidJumpThreshold(); + } + // --- STATE LOGIC --- - private void tickIdle() { - dino.getNavigation().stop(); + private void tickIdle() { + dino.getNavigation().stop(); - // Check for Natural Breeding (approx once every 2 in-game days = 48000 ticks) - if (!dino.level().isClientSide && stateTimer % 100 == 0) { - // 1. Trigger Ready State - if (dino.getAge() == 0 && !dino.isInLove() && dino.canBreed()) { - if (dino.dinoData != null && !dino.dinoData.hasCondition(IDinoData.Condition.READY_TO_MATE)) { - // Chance: 1 in 480 checks (~ once per 48000 ticks / 2 days) - if (dino.getRandom().nextInt(480) == 0) { - // Parthenogenesis check (1% chance) - if (dino.getRandom().nextInt(100) == 0) { - dino.setInLoveTime(600); // 30 Seconds of hearts - this.isSelfBreeding = true; - } else { - // Standard: Set condition, wait for partner - dino.dinoData.addCondition(IDinoData.Condition.READY_TO_MATE); - } - } - } - } + if (tryHerbivoreSelfFeed()) { + return; + } - // 2. Scan for Partner if Ready - if (dino.dinoData != null && dino.dinoData.hasCondition(IDinoData.Condition.READY_TO_MATE)) { - // Add a chance to "lose interest" so they aren't ready forever (1 in 50 chance every 5 seconds = approx 4 minutes duration) - if (dino.getRandom().nextInt(50) == 0) { - dino.dinoData.removeCondition(IDinoData.Condition.READY_TO_MATE); - } else { - List nearby = dino.level().getEntitiesOfClass(DinoEntityBase.class, - dino.getBoundingBox().inflate(8.0), - e -> e.getType() == dino.getType() && e != dino && !e.isBaby()); + float territoriality = 0.0f; + if (dino.dinoData != null) { + territoriality = dino.dinoData.getTerritoriality(); + } - for (DinoEntityBase potentialPartner : nearby) { - if (dino.canMate(potentialPartner)) { - // Initiate mating for both - dino.setInLoveTime(600); // 30 seconds - potentialPartner.setInLoveTime(600); // 30 seconds - - dino.dinoData.removeCondition(IDinoData.Condition.READY_TO_MATE); - if (potentialPartner.dinoData != null) { - potentialPartner.dinoData.removeCondition(IDinoData.Condition.READY_TO_MATE); - } - break; - } - } - } - } - } - - float territoriality = 0.0f; - if (dino.dinoData != null) { - territoriality = dino.dinoData.getTerritoriality(); - } - - int idleTime = 60; // Default 3 seconds - // If we are a flying animal and on the ground, stay down longer (e.g. 15-30 seconds) to walk around + int idleTime = ROAM_SELECTION_IDLE_TIME; + // If we are a flying animal and on the ground, stay down briefly, but do not linger too long. if (dino instanceof FlyingAnimal && dino.onGround()) { - idleTime = 300 + dino.getRandom().nextInt(300); + idleTime = 80 + dino.getRandom().nextInt(120); + } + + // Flying animals should not idle in mid-air. Keep selecting flight waypoints. + if (dino instanceof FlyingAnimal && !dino.onGround()) { + transitionTo(State.ROAMING); + return; } if (stateTimer > idleTime) { - if (dino.getRandom().nextFloat() < 0.05f) { + if (dino.getRandom().nextFloat() < ROAM_SELECTION_CHANCE) { if (dino.getRandom().nextFloat() < territoriality) { transitionTo(State.TERRITORIAL_ROAMING); } else { @@ -444,52 +673,149 @@ public class DinoAIController { } } - private void tickMating() { - // If love ran out, stop - if (!dino.isInLove()) { - this.mateTarget = null; - this.isSelfBreeding = false; - // Also ensure we don't have the condition anymore if we just failed/finished - if (dino.dinoData != null) dino.dinoData.removeCondition(IDinoData.Condition.READY_TO_MATE); - transitionTo(State.IDLE); - return; - } + private void checkBreedingReadiness() { + if (dino.level().isClientSide || breedingCheckCooldown > 0 || !isBreedingCheckState()) { + return; + } - // Parthenogenesis Logic - if (this.isSelfBreeding) { - dino.spawnChildFromBreeding((net.minecraft.server.level.ServerLevel)dino.level(), dino); - dino.setInLoveTime(0); // Reset - this.isSelfBreeding = false; - transitionTo(State.IDLE); - return; - } + breedingCheckCooldown = NATURAL_BREEDING_CHECK_INTERVAL; - // Find Partner - if (this.mateTarget == null || !this.mateTarget.isAlive() || !this.mateTarget.isInLove()) { - List nearby = dino.level().getEntitiesOfClass(Animal.class, dino.getBoundingBox().inflate(16.0), - e -> e.getType() == dino.getType() && e != dino && e.isInLove()); + if (dino.dinoData != null && dino.dinoData.hasCondition(IDinoData.Condition.READY_TO_MATE)) { + tryForcedMatingFromReadyCondition(); + } else if (JRConfigManager.get().naturalBreeding) { + tryNaturalBreeding(); + } + } - this.mateTarget = nearby.stream() - .min(Comparator.comparingDouble(dino::distanceToSqr)) - .orElse(null); - } + private boolean isBreedingCheckState() { + return currentState == State.IDLE + || currentState == State.ROAMING + || currentState == State.TERRITORIAL_ROAMING; + } - if (this.mateTarget != null) { - dino.getNavigation().moveTo(this.mateTarget, dino.getAIConfig().walkSpeed()); - if (dino.distanceToSqr(this.mateTarget) < 4.0) { // < 2 blocks - dino.spawnChildFromBreeding((net.minecraft.server.level.ServerLevel)dino.level(), this.mateTarget); - // Breeding consumes love in spawnChildFromBreeding - this.mateTarget = null; - transitionTo(State.IDLE); - } - } else { - // No partner found yet, wander slowly? - if (dino.getNavigation().isDone()) { - Vec3 pos = DefaultRandomPos.getPos(dino, 10, 3); - if (pos != null) dino.getNavigation().moveTo(pos.x, pos.y, pos.z, dino.getAIConfig().walkSpeed()); - } - } - } + private boolean canUseForBreeding(DinoEntityBase entity) { + return entity != null + && !entity.isBaby() + && !entity.isInLove() + && entity.getAge() == 0; + } + + private void tryForcedMatingFromReadyCondition() { + if (!canUseForBreeding(dino)) { + return; + } + + List nearbyPartners = dino.level().getEntitiesOfClass( + DinoEntityBase.class, + dino.getBoundingBox().inflate(NATURAL_BREEDING_PARTNER_RANGE), + e -> e != dino + && e.getType() == dino.getType() + && canUseForBreeding(e) + && e.dinoData != null + && e.dinoData.hasCondition(IDinoData.Condition.READY_TO_MATE) + ); + + if (nearbyPartners.isEmpty()) { + return; + } + + DinoEntityBase partner = nearbyPartners.get(dino.getRandom().nextInt(nearbyPartners.size())); + + dino.setInLoveTime(600); + partner.setInLoveTime(600); + + transitionTo(State.MATING); + } + + private void tryNaturalBreeding() { + if (!canUseForBreeding(dino)) { + return; + } + + List nearbyPartners = dino.level().getEntitiesOfClass( + DinoEntityBase.class, + dino.getBoundingBox().inflate(NATURAL_BREEDING_PARTNER_RANGE), + e -> e != dino + && e.getType() == dino.getType() + && canUseForBreeding(e) + ); + + if (!nearbyPartners.isEmpty() && dino.getRandom().nextInt(NATURAL_BREEDING_PAIR_CHANCE) == 0) { + DinoEntityBase partner = nearbyPartners.get(dino.getRandom().nextInt(nearbyPartners.size())); + + dino.setInLoveTime(600); + partner.setInLoveTime(600); + + transitionTo(State.MATING); + return; + } + + if (nearbyPartners.isEmpty() && dino.getRandom().nextInt(NATURAL_BREEDING_SELF_CHANCE) == 0) { + dino.setInLoveTime(600); + this.isSelfBreeding = true; + transitionTo(State.MATING); + } + } + + private void tickMating() { + if (!dino.isInLove()) { + this.mateTarget = null; + this.isSelfBreeding = false; + if (dino.dinoData != null) { + dino.dinoData.removeCondition(IDinoData.Condition.READY_TO_MATE); + } + transitionTo(State.IDLE); + return; + } + + if (this.isSelfBreeding) { + dino.spawnChildFromBreeding((net.minecraft.server.level.ServerLevel)dino.level(), dino); + dino.setInLoveTime(0); + this.isSelfBreeding = false; + if (dino.dinoData != null) { + dino.dinoData.removeCondition(IDinoData.Condition.READY_TO_MATE); + } + transitionTo(State.IDLE); + return; + } + + if (this.mateTarget == null || !this.mateTarget.isAlive() || !this.mateTarget.isInLove()) { + List nearby = dino.level().getEntitiesOfClass( + Animal.class, + dino.getBoundingBox().inflate(NATURAL_BREEDING_PARTNER_RANGE), + e -> e.getType() == dino.getType() + && e != dino + && e.isInLove() + && dino.canMate(e) + ); + + this.mateTarget = nearby.stream() + .min(Comparator.comparingDouble(dino::distanceToSqr)) + .orElse(null); + } + + if (this.mateTarget == null) { + transitionTo(State.IDLE); + return; + } + + dino.getNavigation().moveTo(this.mateTarget, getRoamSpeed()); + + if (dino.distanceToSqr(this.mateTarget) < 4.0) { + dino.spawnChildFromBreeding((net.minecraft.server.level.ServerLevel)dino.level(), this.mateTarget); + + if (dino.dinoData != null) { + dino.dinoData.removeCondition(IDinoData.Condition.READY_TO_MATE); + } + + if (this.mateTarget instanceof DinoEntityBase partner && partner.dinoData != null) { + partner.dinoData.removeCondition(IDinoData.Condition.READY_TO_MATE); + } + + this.mateTarget = null; + transitionTo(State.IDLE); + } + } private void tickSleeping() { dino.getNavigation().stop(); @@ -509,7 +835,7 @@ public class DinoAIController { if (dino.getNavigation().isDone()) { if (dist < 1024) { - dino.getNavigation().moveTo(waterTarget.getX(), waterTarget.getY(), waterTarget.getZ(), dino.getAIConfig().walkSpeed()); + dino.getNavigation().moveTo(waterTarget.getX(), waterTarget.getY(), waterTarget.getZ(), getRoamSpeed()); } else { waterTarget = null; } @@ -522,17 +848,34 @@ public class DinoAIController { private void tickRoaming() { if (handleWaterPathing()) return; + if (tryHerbivoreSelfFeed()) { + transitionTo(State.IDLE); + return; + } + if (stateTimer == 0) { this.roamTarget = null; findAndSetRoamTarget(); if (this.roamTarget == null) { - transitionTo(State.IDLE); + if (dino instanceof FlyingAnimal && !dino.onGround()) { + transitionTo(State.ROAMING); + } else { + transitionTo(State.IDLE); + } return; } } - if (stateTimer > 400) { - transitionTo(State.IDLE); + if (stateTimer > 0 && stateTimer % ROAM_RETARGET_INTERVAL == 0) { + findAndSetRoamTarget(); + } + + if (stateTimer > ROAM_STATE_DURATION) { + if (dino instanceof FlyingAnimal && !dino.onGround()) { + findAndSetRoamTarget(); + } else { + transitionTo(State.IDLE); + } return; } @@ -544,50 +887,96 @@ public class DinoAIController { return; } + findAndSetRoamTarget(); + if (this.roamTarget != null) { + return; + } + transitionTo(State.IDLE); return; } boolean resumed = false; if (roamTarget != null) { - resumed = dino.getNavigation().moveTo(roamTarget.x, roamTarget.y, roamTarget.z, dino.getAIConfig().walkSpeed()); + resumed = dino.getNavigation().moveTo(roamTarget.x, roamTarget.y, roamTarget.z, getRoamSpeed()); } if (!resumed) { findAndSetRoamTarget(); if (this.roamTarget == null) { - transitionTo(State.IDLE); + if (dino instanceof FlyingAnimal && !dino.onGround()) { + transitionTo(State.ROAMING); + } else { + transitionTo(State.IDLE); + } } } } } - private void findAndSetRoamTarget() { - this.roamTarget = null; + private void findAndSetRoamTarget() { + this.roamTarget = null; - // Flying Logic - if (dino instanceof FlyingAnimal) { - Vec3 airPos = getAirRoamPos(); - if (airPos != null) { - // Use walkSpeed as cruising speed - if (dino.getNavigation().moveTo(airPos.x, airPos.y, airPos.z, dino.getAIConfig().walkSpeed())) { - this.roamTarget = airPos; - return; - } - } - } + // Grounded flyers should walk to nearby grounded targets instead of taking off immediately. + if (dino instanceof FlyingAnimal && dino.onGround()) { + Vec3 groundPos = getNearbyGroundRoamPosForFlyer(); + if (groundPos != null && dino.getNavigation().moveTo(groundPos.x, groundPos.y, groundPos.z, getRoamSpeed())) { + this.roamTarget = groundPos; + return; + } + } - // Ground Logic - for (int i = 0; i < 3; i++) { - Vec3 pos = DefaultRandomPos.getPos(dino, 20, 7); - if (pos != null && dino.distanceToSqr(pos) > 49.0) { - if (dino.getNavigation().moveTo(pos.x, pos.y, pos.z, dino.getAIConfig().walkSpeed())) { - this.roamTarget = pos; - return; - } - } - } - } + // Flying Logic + if (dino instanceof FlyingAnimal) { + Vec3 airPos = getAirRoamPos(); + if (airPos != null) { + // Use boosted roaming speed as cruising speed. + if (dino.getNavigation().moveTo(airPos.x, airPos.y, airPos.z, getRoamSpeed())) { + this.roamTarget = airPos; + return; + } + } + } + + // Ground Logic + for (int i = 0; i < 5; i++) { + Vec3 pos = DefaultRandomPos.getPos(dino, 20, 7); + if (pos != null && dino.distanceToSqr(pos) > 49.0) { + if (dino.getNavigation().moveTo(pos.x, pos.y, pos.z, getRoamSpeed())) { + this.roamTarget = pos; + return; + } + } + } + } + + private Vec3 getNearbyGroundRoamPosForFlyer() { + double maxDistanceSqr = FLYER_GROUND_WALK_TARGET_RANGE * FLYER_GROUND_WALK_TARGET_RANGE; + + for (int i = 0; i < 5; i++) { + Vec3 pos = DefaultRandomPos.getPos(dino, (int) FLYER_GROUND_WALK_TARGET_RANGE, 3); + if (pos == null) { + continue; + } + + if (dino.distanceToSqr(pos) > maxDistanceSqr) { + continue; + } + + BlockPos targetBlock = BlockPos.containing(pos); + int groundY = dino.level().getHeight( + Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, + targetBlock.getX(), + targetBlock.getZ() + ); + + if (Math.abs(pos.y - groundY) <= 1.5D) { + return new Vec3(pos.x, groundY, pos.z); + } + } + + return null; + } private Vec3 getAirRoamPos() { net.minecraft.util.RandomSource random = dino.getRandom(); @@ -647,16 +1036,33 @@ public class DinoAIController { private void tickTerritorialRoaming() { if (handleWaterPathing()) return; + if (tryHerbivoreSelfFeed()) { + transitionTo(State.IDLE); + return; + } + if (stateTimer == 0) { findAndSetTerritorialTarget(); if (this.roamTarget == null) { - transitionTo(State.IDLE); + if (dino instanceof FlyingAnimal && !dino.onGround()) { + transitionTo(State.ROAMING); + } else { + transitionTo(State.IDLE); + } return; } } - if (stateTimer > 400) { - transitionTo(State.IDLE); + if (stateTimer > 0 && stateTimer % ROAM_RETARGET_INTERVAL == 0) { + findAndSetTerritorialTarget(); + } + + if (stateTimer > ROAM_STATE_DURATION) { + if (dino instanceof FlyingAnimal && !dino.onGround()) { + findAndSetTerritorialTarget(); + } else { + transitionTo(State.IDLE); + } return; } @@ -685,65 +1091,220 @@ public class DinoAIController { } } - private double getTerritorialRoamSpeed() { - return dino.getAIConfig().walkSpeed() * TERRITORIAL_ROAM_SPEED_MULTIPLIER; + private double getBaseRoamSpeed() { + double speed = Math.max(dino.getAIConfig().walkSpeed(), MIN_ROAM_SPEED); + + if (isOnIce()) { + speed *= ICE_ROAM_SPEED_MULTIPLIER; + } + + return speed; } + private double getRoamSpeed() { + return getBaseRoamSpeed() * ROAM_SPEED_MULTIPLIER; + } + + private double getTerritorialRoamSpeed() { + return getBaseRoamSpeed() * TERRITORIAL_ROAM_SPEED_MULTIPLIER; + } + + private boolean isOnIce() { + BlockPos below = dino.blockPosition().below(); + BlockState state = dino.level().getBlockState(below); + + return state.is(Blocks.ICE) + || state.is(Blocks.PACKED_ICE) + || state.is(Blocks.BLUE_ICE) + || state.is(Blocks.FROSTED_ICE); + } + + private boolean tryHerbivoreSelfFeed() { + if (dino.level().isClientSide || dino.dinoData == null || dino.isCarnivore()) { + return false; + } + + if (dino.tickCount % HERBIVORE_SELF_FEED_INTERVAL != 0 || dino.getRandom().nextFloat() > HERBIVORE_SELF_FEED_CHANCE) { + return false; + } + + float hunger = dino.dinoData.getHunger(); + float maxHunger = dino.getAIConfig().maxHunger(); + + if (hunger >= maxHunger * HERBIVORE_SELF_FEED_HUNGER_THRESHOLD) { + return false; + } + + BlockPos below = dino.blockPosition().below(); + BlockState belowState = dino.level().getBlockState(below); + + if (belowState.is(Blocks.GRASS_BLOCK)) { + dino.level().levelEvent(2001, below, Block.getId(belowState)); + dino.level().setBlock(below, Blocks.DIRT.defaultBlockState(), 3); + replenishHungerFromPlant(); + return true; + } + + BlockPos browsePos = findNearbyEdiblePlant(); + if (browsePos != null) { + BlockState browseState = dino.level().getBlockState(browsePos); + dino.level().levelEvent(2001, browsePos, Block.getId(browseState)); + dino.level().destroyBlock(browsePos, false, dino); + replenishHungerFromPlant(); + return true; + } + + return false; + } + + private BlockPos findNearbyEdiblePlant() { + BlockPos origin = dino.blockPosition(); + + for (int y = -1; y <= HERBIVORE_BROWSE_VERTICAL_RANGE; y++) { + for (int x = -HERBIVORE_BROWSE_HORIZONTAL_RANGE; x <= HERBIVORE_BROWSE_HORIZONTAL_RANGE; x++) { + for (int z = -HERBIVORE_BROWSE_HORIZONTAL_RANGE; z <= HERBIVORE_BROWSE_HORIZONTAL_RANGE; z++) { + BlockPos pos = origin.offset(x, y, z); + BlockState state = dino.level().getBlockState(pos); + + if (isEdiblePlantBlock(state)) { + return pos; + } + } + } + } + + return null; + } + + private boolean isEdiblePlantBlock(BlockState state) { + return state.is(ModTags.Blocks.PLANTS) + || state.is(BlockTags.LEAVES) + || state.is(BlockTags.FLOWERS) + || state.is(BlockTags.CROPS) + || state.is(BlockTags.SAPLINGS) + /*? if <=1.20.1 {*/ + || state.is(Blocks.GRASS) + /*?} else {*/ + /*|| state.is(Blocks.GRASS_BLOCK) + *//*?}*/ + || state.is(Blocks.TALL_GRASS) + || state.is(Blocks.FERN) + || state.is(Blocks.LARGE_FERN) + || state.is(Blocks.DEAD_BUSH) + || state.is(Blocks.VINE) + || state.is(Blocks.GLOW_LICHEN) + || state.is(Blocks.SEAGRASS) + || state.is(Blocks.TALL_SEAGRASS) + || state.is(Blocks.KELP) + || state.is(Blocks.KELP_PLANT) + || state.is(Blocks.SUGAR_CANE) + || state.is(Blocks.CACTUS) + || state.is(Blocks.BAMBOO) + || state.is(Blocks.BAMBOO_SAPLING) + || state.is(Blocks.MOSS_BLOCK) + || state.is(Blocks.MOSS_CARPET) + || state.is(Blocks.HANGING_ROOTS) + || state.is(Blocks.ROOTED_DIRT) + || state.is(Blocks.AZALEA) + || state.is(Blocks.FLOWERING_AZALEA) + || state.is(Blocks.BROWN_MUSHROOM) + || state.is(Blocks.RED_MUSHROOM) + || state.is(Blocks.CRIMSON_FUNGUS) + || state.is(Blocks.WARPED_FUNGUS) + || state.is(Blocks.CRIMSON_ROOTS) + || state.is(Blocks.WARPED_ROOTS) + || state.is(Blocks.NETHER_SPROUTS); + } + + private void replenishHungerFromPlant() { + float hunger = dino.dinoData.getHunger(); + float maxHunger = dino.getAIConfig().maxHunger(); + float amount = Math.max(1.0f, dino.getAIConfig().defaultHungerReplenishment() * HERBIVORE_SELF_FEED_REPLENISHMENT_MULTIPLIER); + + dino.dinoData.setHunger(Math.min(maxHunger, hunger + amount)); + } + private void findAndSetTerritorialTarget() { - this.roamTarget = null; - Vec3 target = null; + this.roamTarget = null; + Vec3 target = null; - for (int i = 0; i < 5; i++) { - Vec3 candidate; - if (homePos != null && dino.distanceToSqr(homePos.getCenter()) > 40 * 40) { - Vec3 toHome = Vec3.atCenterOf(homePos).subtract(dino.position()).normalize().scale(10); - Vec3 biasTarget = dino.position().add(toHome); - candidate = DefaultRandomPos.getPosTowards(dino, 15, 7, biasTarget, 1.57); - } else { - candidate = DefaultRandomPos.getPos(dino, 15, 7); - } + // Grounded flyers should walk to nearby grounded territorial targets before taking off. + if (dino instanceof FlyingAnimal && dino.onGround()) { + Vec3 groundPos = getNearbyGroundRoamPosForFlyer(); + if (groundPos != null && dino.getNavigation().moveTo(groundPos.x, groundPos.y, groundPos.z, getTerritorialRoamSpeed())) { + this.roamTarget = groundPos; + return; + } + } - if (candidate != null && dino.distanceToSqr(candidate) > 25.0) { - if (dino.getNavigation().moveTo(candidate.x, candidate.y, candidate.z, getTerritorialRoamSpeed())) { - this.roamTarget = candidate; - return; - } - } - } + for (int i = 0; i < 8; i++) { + Vec3 candidate; + if (homePos != null && dino.distanceToSqr(homePos.getCenter()) > 40 * 40) { + Vec3 toHome = Vec3.atCenterOf(homePos).subtract(dino.position()).normalize().scale(10); + Vec3 biasTarget = dino.position().add(toHome); + candidate = DefaultRandomPos.getPosTowards(dino, 15, 7, biasTarget, 1.57); + } else { + candidate = DefaultRandomPos.getPos(dino, 15, 7); + } - Vec3 fallback = DefaultRandomPos.getPos(dino, 10, 5); - if (fallback != null) { - if (dino.getNavigation().moveTo(fallback.x, fallback.y, fallback.z, getTerritorialRoamSpeed())) { - this.roamTarget = fallback; - } - } - } + if (candidate != null && dino.distanceToSqr(candidate) > 25.0) { + if (dino.getNavigation().moveTo(candidate.x, candidate.y, candidate.z, getTerritorialRoamSpeed())) { + this.roamTarget = candidate; + return; + } + } + } - private void tickChasing() { - if (attackTarget == null) { - transitionTo(State.IDLE); - return; - } - dino.setSprinting(true); + Vec3 fallback = DefaultRandomPos.getPos(dino, 10, 5); + if (fallback != null) { + if (dino.getNavigation().moveTo(fallback.x, fallback.y, fallback.z, getTerritorialRoamSpeed())) { + this.roamTarget = fallback; + } + } + } - waterTarget = null; + private void tickChasing() { + if (attackTarget == null) { + transitionTo(State.IDLE); + return; + } + dino.setSprinting(true); - dino.getLookControl().setLookAt(attackTarget, 30.0F, 30.0F); + waterTarget = null; - double distSqr = dino.distanceToSqr(attackTarget); - double reachMult = dino.getAIConfig().attackReach(); - double reach = (double)(dino.getBbWidth() * reachMult * dino.getBbWidth() * reachMult) + attackTarget.getBbWidth(); + boolean waterMovementHandled = handleWaterMovementHelper(attackTarget); - if (distSqr <= reach * 1.1) { - transitionTo(State.ATTACKING); - return; - } + dino.getLookControl().setLookAt(attackTarget, 30.0F, 30.0F); + + double distSqr = dino.distanceToSqr(attackTarget); + double reachMult = dino.getAIConfig().attackReach(); + double reach = (double)(dino.getBbWidth() * reachMult * dino.getBbWidth() * reachMult) + attackTarget.getBbWidth(); + + if (isAvianWaterHunter() && isRecoveringFromAvianDive()) { + dino.getNavigation().stop(); + return; + } + + if (distSqr <= reach * 1.1) { + transitionTo(State.ATTACKING); + return; + } + + if (waterMovementHandled && isAvianWaterHunter()) { + dino.getNavigation().stop(); + return; + } + + if (isAvianWaterHunter() && avianDiveInProgress) { + dino.getNavigation().stop(); + return; + } + + if (pathRecalcTimer-- <= 0 || dino.getNavigation().isDone()) { + if (!dino.getNavigation().moveTo(attackTarget, dino.getAIConfig().runSpeed())) { + pathRecalcTimer = 10; // Wait before retrying to prevent rapid failure loops + failedPathfindingAttempts++; - if (pathRecalcTimer-- <= 0 || dino.getNavigation().isDone()) { - if (!dino.getNavigation().moveTo(attackTarget, dino.getAIConfig().runSpeed())) { - pathRecalcTimer = 10; // Wait before retrying to prevent rapid failure loops - failedPathfindingAttempts++; - // Tolerance allows for temporary pathfinding failures (e.g., target inside hitbox) if (failedPathfindingAttempts > 5) { attackTarget = null; @@ -756,54 +1317,110 @@ public class DinoAIController { } } - private void tickAttacking() { - if (attackTarget == null) { - transitionTo(State.IDLE); - return; - } - dino.setSprinting(true); + private void tickAttacking() { + if (attackTarget == null) { + transitionTo(State.IDLE); + return; + } + dino.setSprinting(true); - dino.getLookControl().setLookAt(attackTarget, 30.0F, 30.0F); + boolean waterMovementHandled = handleWaterMovementHelper(attackTarget); - double distSqr = dino.distanceToSqr(attackTarget); - double reachMult = dino.getAIConfig().attackReach(); - double reach = (double)(dino.getBbWidth() * reachMult * dino.getBbWidth() * reachMult) + attackTarget.getBbWidth(); + dino.getLookControl().setLookAt(attackTarget, 30.0F, 30.0F); - if (distSqr > reach * 2.5) { - transitionTo(State.CHASING); - return; - } + double distSqr = dino.distanceToSqr(attackTarget); + double reachMult = dino.getAIConfig().attackReach(); + double reach = (double)(dino.getBbWidth() * reachMult * dino.getBbWidth() * reachMult) + attackTarget.getBbWidth(); - double stopDist = (dino.getBbWidth()/2.0 + attackTarget.getBbWidth()/2.0) + 0.5; - double stopDistSqr = stopDist * stopDist; + if (isAvianWaterHunter() && isRecoveringFromAvianDive()) { + dino.getNavigation().stop(); + transitionTo(State.CHASING); + return; + } - if (distSqr > stopDistSqr) { - dino.getNavigation().moveTo(attackTarget, dino.getAIConfig().runSpeed()); - } else { - dino.getNavigation().stop(); - } + if (distSqr > reach * 2.5) { + if (isAvianWaterHunter() && avianDiveInProgress) { + transitionTo(State.CHASING); + return; + } - if (attackCooldown <= 0) { - dino.swing(InteractionHand.MAIN_HAND); + transitionTo(State.CHASING); + return; + } - boolean success = false; - if (dino.isWithinMeleeAttackRange(attackTarget)) { - success = dino.doHurtTarget(attackTarget); - } + double stopDist = (dino.getBbWidth()/2.0 + attackTarget.getBbWidth()/2.0) + 0.5; + double stopDistSqr = stopDist * stopDist; - if (!success && attackTarget.isAlive()) { - if (distSqr <= reach) { - success = attackTarget.hurt(dino.damageSources().mobAttack(dino), (float)dino.getAttributeValue(Attributes.ATTACK_DAMAGE)); - } - } + if (waterMovementHandled && isAvianWaterHunter() && isUnderwaterTarget(attackTarget)) { + dino.getNavigation().stop(); + } else if (isAvianWaterHunter() && avianDiveInProgress) { + dino.getNavigation().stop(); + } else if (distSqr > stopDistSqr) { + dino.getNavigation().moveTo(attackTarget, dino.getAIConfig().runSpeed()); + } else { + dino.getNavigation().stop(); + } - if (success) { - attackCooldown = 20; - } else { - attackCooldown = 5; - } - } - } + if (attackCooldown <= 0) { + boolean avianUnderwaterDiveAttack = isAvianWaterHunter() + && avianDiveInProgress + && isUnderwaterTarget(attackTarget); + + if (avianUnderwaterDiveAttack && avianDiveAttackSpent) { + beginAvianDiveRecovery(); + transitionTo(State.CHASING); + return; + } + + dino.swing(InteractionHand.MAIN_HAND); + + boolean success = false; + boolean targetWasAlive = attackTarget.isAlive(); + + if (dino.isWithinMeleeAttackRange(attackTarget)) { + success = dino.doHurtTarget(attackTarget); + } + + if (!success && attackTarget.isAlive()) { + if (distSqr <= reach) { + success = attackTarget.hurt(dino.damageSources().mobAttack(dino), (float)dino.getAttributeValue(Attributes.ATTACK_DAMAGE)); + } + } + + if (avianUnderwaterDiveAttack) { + avianDiveAttackSpent = true; + + if (success && targetWasAlive && !attackTarget.isAlive()) { + handleKillReward(); + } + + attackCooldown = 20; + beginAvianDiveRecovery(); + transitionTo(State.CHASING); + return; + } + + if (success) { + if (targetWasAlive && !attackTarget.isAlive()) { + handleKillReward(); + } + + attackCooldown = 20; + } else { + attackCooldown = 5; + } + } + } + + private void handleKillReward() { + if (dino.dinoData == null) { + return; + } + + if (dino.dinoData.getHunger() >= dino.getAIConfig().maxHunger()) { + dino.addEffect(new MobEffectInstance(MobEffects.REGENERATION, KILL_REGEN_DURATION_TICKS, 0)); + } + } private void tickFleeing() { if (attackTarget == null) { diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/ai/DinoEntityBase.java b/common/src/main/java/net/cmr/jurassicrevived/entity/ai/DinoEntityBase.java index 8657eb6..a6c9d80 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/ai/DinoEntityBase.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/ai/DinoEntityBase.java @@ -1,10 +1,14 @@ package net.cmr.jurassicrevived.entity.ai; +import net.cmr.jurassicrevived.config.JRConfigManager; import net.cmr.jurassicrevived.entity.ai.navigation.CustomDinoNavigation; +import net.cmr.jurassicrevived.util.ModTags; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.tags.ItemTags; +import net.minecraft.tags.TagKey; import net.minecraft.world.Difficulty; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -21,6 +25,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import java.util.HashMap; +import java.util.List; import java.util.Map; public abstract class DinoEntityBase extends Animal { @@ -83,6 +88,17 @@ public abstract class DinoEntityBase extends Animal { public IDinoData getDinoData() { return this.dinoData; } + public List>> getDinoTags() { + ResourceLocation id = EntityType.getKey(this.getType()); + String path = id.getPath(); + + return List.of( + ModTags.EntityTypes.forgeDino(path), + ModTags.EntityTypes.neoforgeDino(path), + ModTags.EntityTypes.fabricDino(path) + ); + } + @Override public InteractionResult mobInteract(Player player, InteractionHand hand) { if (!this.level().isClientSide && hand == InteractionHand.MAIN_HAND && player.isShiftKeyDown() && player.getMainHandItem().isEmpty()) { @@ -118,41 +134,106 @@ public abstract class DinoEntityBase extends Animal { } player.sendSystemMessage(Component.literal(sb.toString())); - return InteractionResult.SUCCESS; - } - } - return super.mobInteract(player, hand); - } + return InteractionResult.SUCCESS; + } + } - @Override - public boolean isFood(ItemStack stack) { - if (dinoData == null) return false; - IDinoData.DietaryClassification diet = dinoData.getDiet(); + ItemStack stack = player.getItemInHand(hand); + if (this.isFood(stack)) { + if (!this.level().isClientSide) { + feedDino(player, stack); + } - // 1. Carnivores: All meat - if (diet == IDinoData.DietaryClassification.CARNIVORE || diet == IDinoData.DietaryClassification.PISCIVORE) { - // WOLF_FOOD includes beef, pork, chicken, rabbit, mutton, rotten flesh - //if (stack.is(ItemTags.WOLF_FOOD)) return true; - // Fallback for fish items - if (stack.is(ItemTags.FISHES)) return true; - } + return InteractionResult.sidedSuccess(this.level().isClientSide); + } - // 3. Herbivores: Leaves, Fruits, Vegetables - if (diet == IDinoData.DietaryClassification.HERBIVORE) { - if (stack.is(ItemTags.LEAVES)) return true; - if (stack.is(ItemTags.FLOWERS)) return true; - if (stack.is(Items.APPLE) || stack.is(Items.MELON_SLICE) || stack.is(Items.SWEET_BERRIES) || stack.is(Items.GLOW_BERRIES)) return true; - if (stack.is(Items.SEAGRASS) || stack.is(Items.KELP)) return true; - } + return super.mobInteract(player, hand); + } - // 4. Omnivores: Both - if (diet == IDinoData.DietaryClassification.OMNIVORE) { - //if (stack.is(ItemTags.WOLF_FOOD)) return true; - if (stack.is(ItemTags.LEAVES)) return true; - } + private void feedDino(Player player, ItemStack stack) { + if (this.dinoData != null) { + float hunger = this.dinoData.getHunger(); + float maxHunger = this.getAIConfig().maxHunger(); + float replenishAmount = Math.max(1.0f, this.getAIConfig().defaultHungerReplenishment()); - return false; - } + this.dinoData.setHunger(Math.min(maxHunger, hunger + replenishAmount)); + } + + if (this.canFallInLove()) { + this.setInLove(player); + + if (this.dinoData != null) { + this.dinoData.addCondition(IDinoData.Condition.READY_TO_MATE); + } + } + + if (!player.getAbilities().instabuild) { + stack.shrink(1); + } + } + + @Override + public boolean isFood(ItemStack stack) { + if (dinoData == null) return false; + IDinoData.DietaryClassification diet = dinoData.getDiet(); + + if (diet == IDinoData.DietaryClassification.CARNIVORE) { + return isMeatFood(stack); + } + + if (diet == IDinoData.DietaryClassification.PISCIVORE) { + return isMeatFood(stack) || isFishFood(stack); + } + + if (diet == IDinoData.DietaryClassification.HERBIVORE) { + return isPlantFood(stack); + } + + if (diet == IDinoData.DietaryClassification.OMNIVORE) { + return isMeatFood(stack) || isFishFood(stack) || isPlantFood(stack); + } + + return false; + } + + private boolean isMeatFood(ItemStack stack) { + return stack.is(Items.BEEF) + || stack.is(Items.COOKED_BEEF) + || stack.is(Items.PORKCHOP) + || stack.is(Items.COOKED_PORKCHOP) + || stack.is(Items.CHICKEN) + || stack.is(Items.COOKED_CHICKEN) + || stack.is(Items.MUTTON) + || stack.is(Items.COOKED_MUTTON) + || stack.is(Items.RABBIT) + || stack.is(Items.COOKED_RABBIT) + || stack.is(Items.ROTTEN_FLESH); + } + + private boolean isFishFood(ItemStack stack) { + return stack.is(ItemTags.FISHES) + || stack.is(Items.COD) + || stack.is(Items.COOKED_COD) + || stack.is(Items.SALMON) + || stack.is(Items.COOKED_SALMON) + || stack.is(Items.TROPICAL_FISH) + || stack.is(Items.PUFFERFISH); + } + + private boolean isPlantFood(ItemStack stack) { + return stack.is(ItemTags.LEAVES) + || stack.is(ItemTags.FLOWERS) + || stack.is(Items.WHEAT) + || stack.is(Items.CARROT) + || stack.is(Items.POTATO) + || stack.is(Items.BEETROOT) + || stack.is(Items.APPLE) + || stack.is(Items.MELON_SLICE) + || stack.is(Items.SWEET_BERRIES) + || stack.is(Items.GLOW_BERRIES) + || stack.is(Items.SEAGRASS) + || stack.is(Items.KELP); + } @Override public void spawnChildFromBreeding(ServerLevel level, Animal partner) { diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/AchillobatorRenderer.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/AchillobatorRenderer.java index cbcdaac..94ea5d6 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/client/AchillobatorRenderer.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/AchillobatorRenderer.java @@ -9,7 +9,7 @@ import software.bernie.geckolib.renderer.GeoEntityRenderer; public class AchillobatorRenderer extends GeoEntityRenderer { - private final float animalScale = 1.3F; + private final float animalScale = 1.0F; public AchillobatorRenderer(EntityRendererProvider.Context renderManager) { super(renderManager, new AchillobatorModel()); } diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/ChilesaurusModel.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ChilesaurusModel.java new file mode 100644 index 0000000..138d2ff --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ChilesaurusModel.java @@ -0,0 +1,112 @@ +package net.cmr.jurassicrevived.entity.client; + +import com.google.common.collect.Maps; +import net.cmr.jurassicrevived.Constants; +import net.cmr.jurassicrevived.entity.custom.ChilesaurusEntity; +import net.minecraft.Util; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +/*? if <=1.20.1 {*/ +import software.bernie.geckolib.core.animation.AnimationState; + /*?} else {*/ +/*import software.bernie.geckolib.animation.AnimationState; + *//*?}*/ +import software.bernie.geckolib.cache.object.GeoBone; +import software.bernie.geckolib.constant.DataTickets; +import software.bernie.geckolib.model.GeoModel; + +import java.util.Map; + +public class ChilesaurusModel extends GeoModel { + + private static final Map LOCATION_BY_VARIANT = + Util.make(Maps.newEnumMap(ChilesaurusVariant.class), map -> { + map.put(ChilesaurusVariant.MALE, Constants.rl("textures/entity/chilesaurus.png")); + map.put(ChilesaurusVariant.FEMALE, Constants.rl("textures/entity/chilesaurus_female.png")); + }); + + // Model-local "currently applied" offsets; cleared before each entity render + private float[] appliedYaw = null; + private float[] appliedRoll = null; + + @Override + public ResourceLocation getModelResource(ChilesaurusEntity animatable) { + return Constants.rl("geo/chilesaurus.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(ChilesaurusEntity animatable) { + return LOCATION_BY_VARIANT.get(animatable.getVariant()); + } + + @Override + public ResourceLocation getAnimationResource(ChilesaurusEntity animatable) { + return Constants.rl("animations/chilesaurus.animation.json"); + } + + @Override + public void setCustomAnimations(ChilesaurusEntity entity, long id, AnimationState state) { + super.setCustomAnimations(entity, id, state); + + String[] tailBones = { "Tail Base", "Tail 2", "Tail 3", "Tail 4", "Tail 5", "Tail 6" }; + int n = tailBones.length; + + if (appliedYaw == null || appliedYaw.length != n) { + appliedYaw = new float[n]; + appliedRoll = new float[n]; + } + + // 1) Clear previous offsets (from the last entity rendered with this model instance) + for (int i = 0; i < n; i++) { + if (appliedYaw[i] == 0.0f && appliedRoll[i] == 0.0f) continue; + GeoBone bone = (GeoBone) getAnimationProcessor().getBone(tailBones[i]); + if (bone == null) continue; + if (appliedYaw[i] != 0.0f) bone.setRotY(bone.getRotY() - appliedYaw[i]); + if (appliedRoll[i] != 0.0f) bone.setRotZ(bone.getRotZ() - appliedRoll[i]); + appliedYaw[i] = 0.0f; + appliedRoll[i] = 0.0f; + } + + // 2) Interpolated sway for extra smoothness between ticks + float sway = entity.getTailSwayOffset(state.getPartialTick()); // [-1, 1] + + // Tuning + float maxYawDeg = 22.0f; // increased max sweep + float swayGain = 1.35f; // amplifies overall power + float rollFraction = 0.40f; // slightly stronger roll for heft + + float deg2rad = (float)Math.PI / 180f; + + // Direction: positive sway (left turn) -> tail swings right (negative yaw) + // Flip the sign here if the sway feels inverted + float baseYaw = sway * maxYawDeg * deg2rad; + float baseRoll = -baseYaw * rollFraction; + + float[] weights = { 1.00f, 0.78f, 0.58f, 0.42f, 0.30f, 0.22f, 0.16f }; + + for (int i = 0; i < n; i++) { + GeoBone bone = (GeoBone) getAnimationProcessor().getBone(tailBones[i]); + if (bone == null) continue; + + float w = weights[i]; + float yaw = baseYaw * w; + float roll = baseRoll * w; + + // OVERRIDE animations on Y/Z only: keep the model's predefined X bend intact + // Do NOT reset rotX here, so the upward bend stays + bone.setRotY(yaw); + bone.setRotZ(roll); + + appliedYaw[i] = yaw; + appliedRoll[i] = roll; + } + + GeoBone head = (GeoBone) getAnimationProcessor().getBone("Body FRONT"); + + if (head != null) { + var entityData = state.getData(DataTickets.ENTITY_MODEL_DATA); + float clampedYawDeg = Mth.clamp(entityData.netHeadYaw(), -30.0f, 30.0f); + head.setRotY(clampedYawDeg * Mth.DEG_TO_RAD); + } + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/ChilesaurusRenderer.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ChilesaurusRenderer.java new file mode 100644 index 0000000..b64de2d --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ChilesaurusRenderer.java @@ -0,0 +1,26 @@ +package net.cmr.jurassicrevived.entity.client; + +import com.mojang.blaze3d.vertex.PoseStack; +import net.cmr.jurassicrevived.entity.custom.ChilesaurusEntity; +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 ChilesaurusRenderer extends GeoEntityRenderer { + private final float animalScale = 0.6F; + public ChilesaurusRenderer(EntityRendererProvider.Context renderManager) { + super(renderManager, new ChilesaurusModel()); + } + + @Override + public void scaleModelForRender(float widthScale, float heightScale, PoseStack poseStack, ChilesaurusEntity animatable, BakedGeoModel model, boolean isReRender, float partialTick, int packedLight, int packedOverlay) { + poseStack.scale(animalScale, animalScale, animalScale); + if(animatable.isBaby()) { + float growthProgress = Mth.clamp((24000.0F + animatable.getSyncedAge()) / 24000.0F, 0.0F, 1.0F); + float scale = Mth.lerp(growthProgress, 0.2F, 1.0F); + poseStack.scale(scale, scale, scale); + } + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/ChilesaurusVariant.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ChilesaurusVariant.java new file mode 100644 index 0000000..4eed557 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ChilesaurusVariant.java @@ -0,0 +1,26 @@ +package net.cmr.jurassicrevived.entity.client; + +import java.util.Arrays; +import java.util.Comparator; + +public enum ChilesaurusVariant { + MALE(0), + FEMALE(1); + + private static final ChilesaurusVariant[] BY_ID = Arrays.stream(values()).sorted( + Comparator.comparingInt(ChilesaurusVariant::getId)).toArray(ChilesaurusVariant[]::new); + + private final int id; + + ChilesaurusVariant(int id) { + this.id = id; + } + + public int getId() { + return id; + } + + public static ChilesaurusVariant byId(int id) { + return BY_ID[id % BY_ID.length]; + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/GeosternbergiaModel.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/GeosternbergiaModel.java index b033455..ac3fa1a 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/client/GeosternbergiaModel.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/GeosternbergiaModel.java @@ -41,11 +41,7 @@ public class GeosternbergiaModel extends GeoModel { @Override public ResourceLocation getAnimationResource(GeosternbergiaEntity animatable) { - //? if >1.20.1 { - /*return ResourceLocation.fromNamespaceAndPath(Constants.MOD_ID, "animations/geosternbergia.animation.json"); - *///?} else { - return new ResourceLocation(Constants.MOD_ID, "animations/geosternbergia.animation.json"); - //?} + return Constants.rl("animations/geosternbergia.animation.json"); } public void setCustomAnimations(GeosternbergiaEntity entity, long id, AnimationState state) { super.setCustomAnimations(entity, id, state); diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/MussasaurusModel.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/MussasaurusModel.java new file mode 100644 index 0000000..07974a8 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/MussasaurusModel.java @@ -0,0 +1,112 @@ +package net.cmr.jurassicrevived.entity.client; + +import com.google.common.collect.Maps; +import net.cmr.jurassicrevived.Constants; +import net.cmr.jurassicrevived.entity.custom.MussasaurusEntity; +import net.minecraft.Util; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +/*? if <=1.20.1 {*/ +import software.bernie.geckolib.core.animation.AnimationState; + /*?} else {*/ +/*import software.bernie.geckolib.animation.AnimationState; + *//*?}*/ +import software.bernie.geckolib.cache.object.GeoBone; +import software.bernie.geckolib.constant.DataTickets; +import software.bernie.geckolib.model.GeoModel; + +import java.util.Map; + +public class MussasaurusModel extends GeoModel { + + private static final Map LOCATION_BY_VARIANT = + Util.make(Maps.newEnumMap(MussasaurusVariant.class), map -> { + map.put(MussasaurusVariant.MALE, Constants.rl("textures/entity/mussasaurus.png")); + map.put(MussasaurusVariant.FEMALE, Constants.rl("textures/entity/mussasaurus_female.png")); + }); + + // Model-local "currently applied" offsets; cleared before each entity render + private float[] appliedYaw = null; + private float[] appliedRoll = null; + + @Override + public ResourceLocation getModelResource(MussasaurusEntity animatable) { + return Constants.rl("geo/mussasaurus.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(MussasaurusEntity animatable) { + return LOCATION_BY_VARIANT.get(animatable.getVariant()); + } + + @Override + public ResourceLocation getAnimationResource(MussasaurusEntity animatable) { + return Constants.rl("animations/mussasaurus.animation.json"); + } + + @Override + public void setCustomAnimations(MussasaurusEntity entity, long id, AnimationState state) { + super.setCustomAnimations(entity, id, state); + + String[] tailBones = { "Tail1", "Tail2", "Tail3", "Tail4", "Tail5", "Tail6", "Tail7", "Tail8" }; + int n = tailBones.length; + + if (appliedYaw == null || appliedYaw.length != n) { + appliedYaw = new float[n]; + appliedRoll = new float[n]; + } + + // 1) Clear previous offsets (from the last entity rendered with this model instance) + for (int i = 0; i < n; i++) { + if (appliedYaw[i] == 0.0f && appliedRoll[i] == 0.0f) continue; + GeoBone bone = (GeoBone) getAnimationProcessor().getBone(tailBones[i]); + if (bone == null) continue; + if (appliedYaw[i] != 0.0f) bone.setRotY(bone.getRotY() - appliedYaw[i]); + if (appliedRoll[i] != 0.0f) bone.setRotZ(bone.getRotZ() - appliedRoll[i]); + appliedYaw[i] = 0.0f; + appliedRoll[i] = 0.0f; + } + + // 2) Interpolated sway for extra smoothness between ticks + float sway = entity.getTailSwayOffset(state.getPartialTick()); // [-1, 1] + + // Tuning + float maxYawDeg = 22.0f; // increased max sweep + float swayGain = 1.35f; // amplifies overall power + float rollFraction = 0.40f; // slightly stronger roll for heft + + float deg2rad = (float)Math.PI / 180f; + + // Direction: positive sway (left turn) -> tail swings right (negative yaw) + // Flip the sign here if the sway feels inverted + float baseYaw = sway * maxYawDeg * deg2rad; + float baseRoll = -baseYaw * rollFraction; + + float[] weights = { 1.00f, 0.78f, 0.58f, 0.42f, 0.30f, 0.22f, 0.16f, 0.10f }; + + for (int i = 0; i < n; i++) { + GeoBone bone = (GeoBone) getAnimationProcessor().getBone(tailBones[i]); + if (bone == null) continue; + + float w = weights[i]; + float yaw = baseYaw * w; + float roll = baseRoll * w; + + // OVERRIDE animations on Y/Z only: keep the model's predefined X bend intact + // Do NOT reset rotX here, so the upward bend stays + bone.setRotY(yaw); + bone.setRotZ(roll); + + appliedYaw[i] = yaw; + appliedRoll[i] = roll; + } + + GeoBone head = (GeoBone) getAnimationProcessor().getBone("Neck1"); + + if (head != null) { + var entityData = state.getData(DataTickets.ENTITY_MODEL_DATA); + float clampedYawDeg = Mth.clamp(entityData.netHeadYaw(), -20.0f, 20.0f); + head.setRotY(clampedYawDeg * Mth.DEG_TO_RAD); + } + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/MussasaurusRenderer.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/MussasaurusRenderer.java new file mode 100644 index 0000000..77f40f1 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/MussasaurusRenderer.java @@ -0,0 +1,26 @@ +package net.cmr.jurassicrevived.entity.client; + +import com.mojang.blaze3d.vertex.PoseStack; +import net.cmr.jurassicrevived.entity.custom.MussasaurusEntity; +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 MussasaurusRenderer extends GeoEntityRenderer { + private final float animalScale = 0.7F; + public MussasaurusRenderer(EntityRendererProvider.Context renderManager) { + super(renderManager, new MussasaurusModel()); + } + + @Override + public void scaleModelForRender(float widthScale, float heightScale, PoseStack poseStack, MussasaurusEntity animatable, BakedGeoModel model, boolean isReRender, float partialTick, int packedLight, int packedOverlay) { + poseStack.scale(animalScale, animalScale, animalScale); + if(animatable.isBaby()) { + float growthProgress = Mth.clamp((24000.0F + animatable.getSyncedAge()) / 24000.0F, 0.0F, 1.0F); + float scale = Mth.lerp(growthProgress, 0.2F, 1.0F); + poseStack.scale(scale, scale, scale); + } + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/MussasaurusVariant.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/MussasaurusVariant.java new file mode 100644 index 0000000..5258b2e --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/MussasaurusVariant.java @@ -0,0 +1,26 @@ +package net.cmr.jurassicrevived.entity.client; + +import java.util.Arrays; +import java.util.Comparator; + +public enum MussasaurusVariant { + MALE(0), + FEMALE(1); + + private static final MussasaurusVariant[] BY_ID = Arrays.stream(values()).sorted( + Comparator.comparingInt(MussasaurusVariant::getId)).toArray(MussasaurusVariant[]::new); + + private final int id; + + MussasaurusVariant(int id) { + this.id = id; + } + + public int getId() { + return id; + } + + public static MussasaurusVariant byId(int id) { + return BY_ID[id % BY_ID.length]; + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/SuchomimusModel.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/SuchomimusModel.java new file mode 100644 index 0000000..a7679e8 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/SuchomimusModel.java @@ -0,0 +1,112 @@ +package net.cmr.jurassicrevived.entity.client; + +import com.google.common.collect.Maps; +import net.cmr.jurassicrevived.Constants; +import net.cmr.jurassicrevived.entity.custom.SuchomimusEntity; +import net.minecraft.Util; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +/*? if <=1.20.1 {*/ +import software.bernie.geckolib.core.animation.AnimationState; + /*?} else {*/ +/*import software.bernie.geckolib.animation.AnimationState; + *//*?}*/ +import software.bernie.geckolib.cache.object.GeoBone; +import software.bernie.geckolib.constant.DataTickets; +import software.bernie.geckolib.model.GeoModel; + +import java.util.Map; + +public class SuchomimusModel extends GeoModel { + + private static final Map LOCATION_BY_VARIANT = + Util.make(Maps.newEnumMap(SuchomimusVariant.class), map -> { + map.put(SuchomimusVariant.MALE, Constants.rl("textures/entity/suchomimus.png")); + map.put(SuchomimusVariant.FEMALE, Constants.rl("textures/entity/suchomimus_female.png")); + }); + + // Model-local "currently applied" offsets; cleared before each entity render + private float[] appliedYaw = null; + private float[] appliedRoll = null; + + @Override + public ResourceLocation getModelResource(SuchomimusEntity animatable) { + return Constants.rl("geo/suchomimus.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(SuchomimusEntity animatable) { + return LOCATION_BY_VARIANT.get(animatable.getVariant()); + } + + @Override + public ResourceLocation getAnimationResource(SuchomimusEntity animatable) { + return Constants.rl("animations/suchomimus.animation.json"); + } + + @Override + public void setCustomAnimations(SuchomimusEntity entity, long id, AnimationState state) { + super.setCustomAnimations(entity, id, state); + + String[] tailBones = { "Tail 1", "Tail 2", "Tail 3", "Tail 4", "Tail 5", "Tail 6" }; + int n = tailBones.length; + + if (appliedYaw == null || appliedYaw.length != n) { + appliedYaw = new float[n]; + appliedRoll = new float[n]; + } + + // 1) Clear previous offsets (from the last entity rendered with this model instance) + for (int i = 0; i < n; i++) { + if (appliedYaw[i] == 0.0f && appliedRoll[i] == 0.0f) continue; + GeoBone bone = (GeoBone) getAnimationProcessor().getBone(tailBones[i]); + if (bone == null) continue; + if (appliedYaw[i] != 0.0f) bone.setRotY(bone.getRotY() - appliedYaw[i]); + if (appliedRoll[i] != 0.0f) bone.setRotZ(bone.getRotZ() - appliedRoll[i]); + appliedYaw[i] = 0.0f; + appliedRoll[i] = 0.0f; + } + + // 2) Interpolated sway for extra smoothness between ticks + float sway = entity.getTailSwayOffset(state.getPartialTick()); // [-1, 1] + + // Tuning + float maxYawDeg = 22.0f; // increased max sweep + float swayGain = 1.35f; // amplifies overall power + float rollFraction = 0.40f; // slightly stronger roll for heft + + float deg2rad = (float)Math.PI / 180f; + + // Direction: positive sway (left turn) -> tail swings right (negative yaw) + // Flip the sign here if the sway feels inverted + float baseYaw = sway * maxYawDeg * deg2rad; + float baseRoll = -baseYaw * rollFraction; + + float[] weights = { 1.00f, 0.78f, 0.58f, 0.42f, 0.30f, 0.22f }; + + for (int i = 0; i < n; i++) { + GeoBone bone = (GeoBone) getAnimationProcessor().getBone(tailBones[i]); + if (bone == null) continue; + + float w = weights[i]; + float yaw = baseYaw * w; + float roll = baseRoll * w; + + // OVERRIDE animations on Y/Z only: keep the model's predefined X bend intact + // Do NOT reset rotX here, so the upward bend stays + bone.setRotY(yaw); + bone.setRotZ(roll); + + appliedYaw[i] = yaw; + appliedRoll[i] = roll; + } + + GeoBone head = (GeoBone) getAnimationProcessor().getBone("Neck 1"); + + if (head != null) { + var entityData = state.getData(DataTickets.ENTITY_MODEL_DATA); + float clampedYawDeg = Mth.clamp(entityData.netHeadYaw(), -20.0f, 20.0f); + head.setRotY(clampedYawDeg * Mth.DEG_TO_RAD); + } + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/SuchomimusRenderer.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/SuchomimusRenderer.java new file mode 100644 index 0000000..935985b --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/SuchomimusRenderer.java @@ -0,0 +1,26 @@ +package net.cmr.jurassicrevived.entity.client; + +import com.mojang.blaze3d.vertex.PoseStack; +import net.cmr.jurassicrevived.entity.custom.SuchomimusEntity; +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 SuchomimusRenderer extends GeoEntityRenderer { + private final float animalScale = 1.5F; + public SuchomimusRenderer(EntityRendererProvider.Context renderManager) { + super(renderManager, new SuchomimusModel()); + } + + @Override + public void scaleModelForRender(float widthScale, float heightScale, PoseStack poseStack, SuchomimusEntity animatable, BakedGeoModel model, boolean isReRender, float partialTick, int packedLight, int packedOverlay) { + poseStack.scale(animalScale, animalScale, animalScale); + if(animatable.isBaby()) { + float growthProgress = Mth.clamp((24000.0F + animatable.getSyncedAge()) / 24000.0F, 0.0F, 1.0F); + float scale = Mth.lerp(growthProgress, 0.2F, 1.0F); + poseStack.scale(scale, scale, scale); + } + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/SuchomimusVariant.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/SuchomimusVariant.java new file mode 100644 index 0000000..bfa5a66 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/SuchomimusVariant.java @@ -0,0 +1,26 @@ +package net.cmr.jurassicrevived.entity.client; + +import java.util.Arrays; +import java.util.Comparator; + +public enum SuchomimusVariant { + MALE(0), + FEMALE(1); + + private static final SuchomimusVariant[] BY_ID = Arrays.stream(values()).sorted( + Comparator.comparingInt(SuchomimusVariant::getId)).toArray(SuchomimusVariant[]::new); + + private final int id; + + SuchomimusVariant(int id) { + this.id = id; + } + + public int getId() { + return id; + } + + public static SuchomimusVariant byId(int id) { + return BY_ID[id % BY_ID.length]; + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/ThescelosaurusModel.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ThescelosaurusModel.java new file mode 100644 index 0000000..7b043e2 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ThescelosaurusModel.java @@ -0,0 +1,112 @@ +package net.cmr.jurassicrevived.entity.client; + +import com.google.common.collect.Maps; +import net.cmr.jurassicrevived.Constants; +import net.cmr.jurassicrevived.entity.custom.ThescelosaurusEntity; +import net.minecraft.Util; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +/*? if <=1.20.1 {*/ +import software.bernie.geckolib.core.animation.AnimationState; + /*?} else {*/ +/*import software.bernie.geckolib.animation.AnimationState; + *//*?}*/ +import software.bernie.geckolib.cache.object.GeoBone; +import software.bernie.geckolib.constant.DataTickets; +import software.bernie.geckolib.model.GeoModel; + +import java.util.Map; + +public class ThescelosaurusModel extends GeoModel { + + private static final Map LOCATION_BY_VARIANT = + Util.make(Maps.newEnumMap(ThescelosaurusVariant.class), map -> { + map.put(ThescelosaurusVariant.MALE, Constants.rl("textures/entity/thescelosaurus.png")); + map.put(ThescelosaurusVariant.FEMALE, Constants.rl("textures/entity/thescelosaurus_female.png")); + }); + + // Model-local "currently applied" offsets; cleared before each entity render + private float[] appliedYaw = null; + private float[] appliedRoll = null; + + @Override + public ResourceLocation getModelResource(ThescelosaurusEntity animatable) { + return Constants.rl("geo/thescelosaurus.geo.json"); + } + + @Override + public ResourceLocation getTextureResource(ThescelosaurusEntity animatable) { + return LOCATION_BY_VARIANT.get(animatable.getVariant()); + } + + @Override + public ResourceLocation getAnimationResource(ThescelosaurusEntity animatable) { + return Constants.rl("animations/thescelosaurus.animation.json"); + } + + @Override + public void setCustomAnimations(ThescelosaurusEntity entity, long id, AnimationState state) { + super.setCustomAnimations(entity, id, state); + + String[] tailBones = { "Tail BASE", "Tail 2", "Tail 3", "Tail 4", "Tail 5", "Tail 6", "Tail 7" }; + int n = tailBones.length; + + if (appliedYaw == null || appliedYaw.length != n) { + appliedYaw = new float[n]; + appliedRoll = new float[n]; + } + + // 1) Clear previous offsets (from the last entity rendered with this model instance) + for (int i = 0; i < n; i++) { + if (appliedYaw[i] == 0.0f && appliedRoll[i] == 0.0f) continue; + GeoBone bone = (GeoBone) getAnimationProcessor().getBone(tailBones[i]); + if (bone == null) continue; + if (appliedYaw[i] != 0.0f) bone.setRotY(bone.getRotY() - appliedYaw[i]); + if (appliedRoll[i] != 0.0f) bone.setRotZ(bone.getRotZ() - appliedRoll[i]); + appliedYaw[i] = 0.0f; + appliedRoll[i] = 0.0f; + } + + // 2) Interpolated sway for extra smoothness between ticks + float sway = entity.getTailSwayOffset(state.getPartialTick()); // [-1, 1] + + // Tuning + float maxYawDeg = 22.0f; // increased max sweep + float swayGain = 1.35f; // amplifies overall power + float rollFraction = 0.40f; // slightly stronger roll for heft + + float deg2rad = (float)Math.PI / 180f; + + // Direction: positive sway (left turn) -> tail swings right (negative yaw) + // Flip the sign here if the sway feels inverted + float baseYaw = sway * maxYawDeg * deg2rad; + float baseRoll = -baseYaw * rollFraction; + + float[] weights = { 1.00f, 0.78f, 0.58f, 0.42f, 0.30f, 0.22f, 0.16f }; + + for (int i = 0; i < n; i++) { + GeoBone bone = (GeoBone) getAnimationProcessor().getBone(tailBones[i]); + if (bone == null) continue; + + float w = weights[i]; + float yaw = baseYaw * w; + float roll = baseRoll * w; + + // OVERRIDE animations on Y/Z only: keep the model's predefined X bend intact + // Do NOT reset rotX here, so the upward bend stays + bone.setRotY(yaw); + bone.setRotZ(roll); + + appliedYaw[i] = yaw; + appliedRoll[i] = roll; + } + + GeoBone head = (GeoBone) getAnimationProcessor().getBone("Body FRONT"); + + if (head != null) { + var entityData = state.getData(DataTickets.ENTITY_MODEL_DATA); + float clampedYawDeg = Mth.clamp(entityData.netHeadYaw(), -30.0f, 30.0f); + head.setRotY(clampedYawDeg * Mth.DEG_TO_RAD); + } + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/ThescelosaurusRenderer.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ThescelosaurusRenderer.java new file mode 100644 index 0000000..032f631 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ThescelosaurusRenderer.java @@ -0,0 +1,26 @@ +package net.cmr.jurassicrevived.entity.client; + +import com.mojang.blaze3d.vertex.PoseStack; +import net.cmr.jurassicrevived.entity.custom.ThescelosaurusEntity; +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 ThescelosaurusRenderer extends GeoEntityRenderer { + private final float animalScale = 0.7F; + public ThescelosaurusRenderer(EntityRendererProvider.Context renderManager) { + super(renderManager, new ThescelosaurusModel()); + } + + @Override + public void scaleModelForRender(float widthScale, float heightScale, PoseStack poseStack, ThescelosaurusEntity animatable, BakedGeoModel model, boolean isReRender, float partialTick, int packedLight, int packedOverlay) { + poseStack.scale(animalScale, animalScale, animalScale); + if(animatable.isBaby()) { + float growthProgress = Mth.clamp((24000.0F + animatable.getSyncedAge()) / 24000.0F, 0.0F, 1.0F); + float scale = Mth.lerp(growthProgress, 0.2F, 1.0F); + poseStack.scale(scale, scale, scale); + } + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/ThescelosaurusVariant.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ThescelosaurusVariant.java new file mode 100644 index 0000000..fa3fc84 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/ThescelosaurusVariant.java @@ -0,0 +1,26 @@ +package net.cmr.jurassicrevived.entity.client; + +import java.util.Arrays; +import java.util.Comparator; + +public enum ThescelosaurusVariant { + MALE(0), + FEMALE(1); + + private static final ThescelosaurusVariant[] BY_ID = Arrays.stream(values()).sorted( + Comparator.comparingInt(ThescelosaurusVariant::getId)).toArray(ThescelosaurusVariant[]::new); + + private final int id; + + ThescelosaurusVariant(int id) { + this.id = id; + } + + public int getId() { + return id; + } + + public static ThescelosaurusVariant byId(int id) { + return BY_ID[id % BY_ID.length]; + } +} diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/client/UtahraptorRenderer.java b/common/src/main/java/net/cmr/jurassicrevived/entity/client/UtahraptorRenderer.java index b25a097..530242d 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/client/UtahraptorRenderer.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/client/UtahraptorRenderer.java @@ -9,7 +9,7 @@ import software.bernie.geckolib.renderer.GeoEntityRenderer; public class UtahraptorRenderer extends GeoEntityRenderer { - private final float animalScale = 0.9F; + private final float animalScale = 1.0F; public UtahraptorRenderer(EntityRendererProvider.Context renderManager) { super(renderManager, new UtahraptorModel()); } diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AchillobatorEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AchillobatorEntity.java index 9c9f3b4..3b252c4 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AchillobatorEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AchillobatorEntity.java @@ -6,6 +6,7 @@ import net.cmr.jurassicrevived.entity.ai.DinoData; import net.cmr.jurassicrevived.entity.ai.DinoEntityBase; import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.client.AchillobatorVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -22,6 +23,7 @@ import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.attributes.DefaultAttributes; import net.minecraft.world.entity.animal.Animal; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.block.Block; @@ -71,6 +73,11 @@ public class AchillobatorEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.ACHILLOBATOR_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; @@ -98,13 +105,13 @@ public class AchillobatorEntity extends DinoEntityBase implements GeoEntity { public static AttributeSupplier.Builder createAttributes() { return Animal.createLivingAttributes() - .add(Attributes.MAX_HEALTH, 55D) + .add(Attributes.MAX_HEALTH, 30D) .add(Attributes.MOVEMENT_SPEED, 0.3D) .add(Attributes.ARMOR, 0D) .add(Attributes.FOLLOW_RANGE, 32D) - .add(Attributes.KNOCKBACK_RESISTANCE, 0D) - .add(Attributes.ATTACK_KNOCKBACK, 0D) - .add(Attributes.ATTACK_DAMAGE, 16D); + .add(Attributes.ATTACK_DAMAGE, 8D) + .add(Attributes.KNOCKBACK_RESISTANCE, 0.3D) + .add(Attributes.ATTACK_KNOCKBACK, 0D); } @Nullable diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AlbertosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AlbertosaurusEntity.java index d06e0ed..f5c6eaa 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AlbertosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AlbertosaurusEntity.java @@ -6,6 +6,7 @@ import net.cmr.jurassicrevived.entity.ai.DinoData; import net.cmr.jurassicrevived.entity.ai.DinoEntityBase; import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -72,6 +73,10 @@ public class AlbertosaurusEntity extends DinoEntityBase implements GeoEntity { IDinoData.ActivityPattern.CATHEMERAL ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.ALBERTOSAURUS_SPAWN_EGG.get()); + } @Override public boolean isCarnivore() { diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AllosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AllosaurusEntity.java index 481f848..9cab7ee 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AllosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AllosaurusEntity.java @@ -5,6 +5,7 @@ import net.cmr.jurassicrevived.entity.ModEntities; import net.cmr.jurassicrevived.entity.ai.*; import net.cmr.jurassicrevived.entity.client.AllosaurusVariant; import net.cmr.jurassicrevived.entity.client.AllosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -75,6 +76,11 @@ public class AllosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.ALLOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AlvarezsaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AlvarezsaurusEntity.java index 8bf8ae7..2b109cc 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AlvarezsaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AlvarezsaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlvarezsaurusVariant; import net.cmr.jurassicrevived.entity.client.AlvarezsaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class AlvarezsaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.ALVAREZSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AnkylosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AnkylosaurusEntity.java index 2867e92..6159dcd 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AnkylosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/AnkylosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AnkylosaurusVariant; import net.cmr.jurassicrevived.entity.client.AnkylosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -79,6 +80,11 @@ public class AnkylosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.ANKYLOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ApatosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ApatosaurusEntity.java index b8e2261..31101b3 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ApatosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ApatosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.ApatosaurusVariant; import net.cmr.jurassicrevived.entity.client.ApatosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -81,6 +82,11 @@ public class ApatosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.APATOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ArambourgianiaEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ArambourgianiaEntity.java index 6c9bd12..5ec9da3 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ArambourgianiaEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ArambourgianiaEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.ArambourgianiaVariant; import net.cmr.jurassicrevived.entity.client.ArambourgianiaVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class ArambourgianiaEntity extends DinoEntityBase implements GeoEntity, F ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.ARAMBOURGIANIA_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/BaryonyxEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/BaryonyxEntity.java index 3043120..9afef59 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/BaryonyxEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/BaryonyxEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.BaryonyxVariant; import net.cmr.jurassicrevived.entity.client.BaryonyxVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class BaryonyxEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.BARYONYX_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/BrachiosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/BrachiosaurusEntity.java index eb90186..ae4081c 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/BrachiosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/BrachiosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.BrachiosaurusVariant; import net.cmr.jurassicrevived.entity.client.BrachiosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -81,6 +82,11 @@ public class BrachiosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.BRACHIOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CarcharodontosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CarcharodontosaurusEntity.java index d474671..8cef66b 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CarcharodontosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CarcharodontosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.CarcharodontosaurusVariant; import net.cmr.jurassicrevived.entity.client.CarcharodontosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -83,6 +84,11 @@ public class CarcharodontosaurusEntity extends DinoEntityBase implements GeoEnti ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.CARCHARODONTOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CarnotaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CarnotaurusEntity.java index 41f8f8a..1a21e01 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CarnotaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CarnotaurusEntity.java @@ -5,6 +5,7 @@ import net.cmr.jurassicrevived.entity.ModEntities; import net.cmr.jurassicrevived.entity.ai.*; import net.cmr.jurassicrevived.entity.client.CarnotaurusVariant; import net.cmr.jurassicrevived.entity.client.CarnotaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class CarnotaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.CARNOTAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CearadactylusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CearadactylusEntity.java index 4b805ab..7c36c94 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CearadactylusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CearadactylusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.CearadactylusVariant; import net.cmr.jurassicrevived.entity.client.CearadactylusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class CearadactylusEntity extends DinoEntityBase implements GeoEntity, Fl ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.CEARADACTYLUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CeratosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CeratosaurusEntity.java index eaf49ae..3b9d6ef 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CeratosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CeratosaurusEntity.java @@ -5,6 +5,7 @@ import net.cmr.jurassicrevived.entity.ModEntities; import net.cmr.jurassicrevived.entity.ai.*; import net.cmr.jurassicrevived.entity.client.CeratosaurusVariant; import net.cmr.jurassicrevived.entity.client.CeratosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -76,6 +77,11 @@ public class CeratosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.CERATOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ChasmosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ChasmosaurusEntity.java index c5c1686..a43248d 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ChasmosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ChasmosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.ChasmosaurusVariant; import net.cmr.jurassicrevived.entity.client.ChasmosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -79,6 +80,11 @@ public class ChasmosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.CHASMOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ChickenosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ChickenosaurusEntity.java index 1663f59..0f75e02 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ChickenosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ChickenosaurusEntity.java @@ -81,6 +81,11 @@ public class ChickenosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.CHICKENOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ChilesaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ChilesaurusEntity.java new file mode 100644 index 0000000..f317c91 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ChilesaurusEntity.java @@ -0,0 +1,325 @@ +package net.cmr.jurassicrevived.entity.custom; + +import net.cmr.jurassicrevived.block.ModBlocks; +import net.cmr.jurassicrevived.entity.ModEntities; +import net.cmr.jurassicrevived.entity.ai.DinoData; +import net.cmr.jurassicrevived.entity.ai.DinoEntityBase; +import net.cmr.jurassicrevived.entity.ai.IDinoData; +import net.cmr.jurassicrevived.entity.client.ChilesaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; +import net.cmr.jurassicrevived.sound.ModSounds; +import net.minecraft.Util; +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.util.Mth; +import net.minecraft.world.DifficultyInstance; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.*; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.attributes.DefaultAttributes; +import net.minecraft.world.entity.animal.Animal; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.ServerLevelAccessor; +import net.minecraft.world.level.block.Block; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.animatable.GeoEntity; +/*? if <=1.20.1 {*/ +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animatable.instance.SingletonAnimatableInstanceCache; +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.animation.RawAnimation; +import software.bernie.geckolib.core.object.PlayState; +/*?} else {*/ +/*import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animatable.instance.SingletonAnimatableInstanceCache; +import software.bernie.geckolib.animation.*; +*//*?}*/ + +public class ChilesaurusEntity extends DinoEntityBase implements GeoEntity { + private AnimatableInstanceCache cache = new SingletonAnimatableInstanceCache(this); + + private static final EntityDataAccessor VARIANT = + SynchedEntityData.defineId(ChilesaurusEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor DATA_SYNCED_AGE = + SynchedEntityData.defineId(ChilesaurusEntity.class, EntityDataSerializers.INT); + + // Procedural tail sway state (client-side use for rendering) + private float tailSwayOffset; // Smoothed offset in range roughly [-1, 1] + private float tailSwayVelocity; // Internal velocity for spring-damper + private float tailSwayPrev; // Previous frame value for interpolation + + public ChilesaurusEntity(EntityType pEntityType, Level pLevel) { + super(pEntityType, pLevel); + + this.dinoData = new DinoData( + getAIConfig().maxHunger(), + getAIConfig().maxThirst(), + IDinoData.Mood.NEUTRAL, + IDinoData.Aggression.TERRITORIAL, + 0.75f, + IDinoData.DietaryClassification.HERBIVORE, + IDinoData.Type.TERRESTRIAL, + IDinoData.Group.ORNITHOPOD, + IDinoData.BirthType.EGG_LAYING, + IDinoData.ActivityPattern.CATHEMERAL + ); + } + + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.CHILESAURUS_SPAWN_EGG.get()); + } + + @Override + public boolean isCarnivore() { + return false; + } + + @Override + public boolean isMarine() { + return false; + } + + @Override + public boolean isAmphibious() { + return false; + } + + @Override + public Block getEggBlock() { + return ModBlocks.INCUBATED_CHILESAURUS_EGG.get(); + } + + @Override + public DinoAIConfig getAIConfig() { + return new DinoAIConfig(0.3D, 1.1D, 1.5D, 100, 100, 0.05f, 0.1f, 20); + } + + public static AttributeSupplier.Builder createAttributes() { + return Animal.createLivingAttributes() + .add(Attributes.MAX_HEALTH, 20D) + .add(Attributes.MOVEMENT_SPEED, 0.3D) + .add(Attributes.ARMOR, 0D) + .add(Attributes.FOLLOW_RANGE, 32D) + .add(Attributes.KNOCKBACK_RESISTANCE, 0D) + .add(Attributes.ATTACK_KNOCKBACK, 0D) + .add(Attributes.ATTACK_DAMAGE, 0D); + } + + + @Nullable + @Override + public AgeableMob getBreedOffspring(ServerLevel pLevel, AgeableMob pOtherParent) { + AgeableMob child = ModEntities.CHILESAURUS.get().create(pLevel); + if (child instanceof ChilesaurusEntity baby) { + ChilesaurusVariant randomVariant = Util.getRandom(ChilesaurusVariant.values(), this.random); + baby.setVariant(randomVariant); + } + return child; + } + + @Override + public boolean doHurtTarget(Entity target) { + boolean hit = super.doHurtTarget(target); + if (!level().isClientSide && hit && target instanceof LivingEntity) { + if (this.level() instanceof ServerLevel serverLevel) { + this.triggerAnim("attackController", "attack"); + } + } + return hit; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "Walk/Run/Idle", 5, state -> { + if (state.isMoving()) + return state.setAndContinue(ChilesaurusEntity.this.isSprinting() ? RawAnimation.begin().then("anim.chilesaurus.run", Animation.LoopType.LOOP) : RawAnimation.begin().then("anim.chilesaurus.walk", Animation.LoopType.LOOP)); + + return state.setAndContinue(RawAnimation.begin().then("anim.chilesaurus.idle", Animation.LoopType.LOOP)); + })); + + controllers.add(new AnimationController<>(this, "attackController", 5, state -> PlayState.STOP) + .triggerableAnim("attack", RawAnimation.begin().then("anim.chilesaurus.attack", Animation.LoopType.PLAY_ONCE))); + } + + private float getSignedTurnDelta() { + // Only consider the body (torso) rotation so head look does not affect tail sway + return Mth.wrapDegrees(this.yBodyRot - this.yBodyRotO); + } + + private int mouthAnimCooldown = 0; + + @Override + public void tick() { + super.tick(); + if (!level().isClientSide) { + this.entityData.set(DATA_SYNCED_AGE, this.getAge()); + var maxHealthAttr = getAttribute(Attributes.MAX_HEALTH); + if (maxHealthAttr != null) { + double baseAdult = DefaultAttributes.getSupplier((EntityType) this.getType()).getValue(Attributes.MAX_HEALTH); + double desired = this.isBaby() ? baseAdult * 0.10D : baseAdult; + if (maxHealthAttr.getBaseValue() != desired) { + double oldMax = maxHealthAttr.getBaseValue(); + double healthRatio = this.getHealth() / (float) oldMax; + maxHealthAttr.setBaseValue(desired); + this.setHealth((float) (desired * Mth.clamp(healthRatio, 0.0F, 1.0F))); + } + } + } + + if (!level().isClientSide) { + if (mouthAnimCooldown > 0) { + mouthAnimCooldown--; + } else { + this.playSound(ModSounds.CHILESAURUS_CALL.get(), 1.0F, 1.0F); + // 30s–60s in ticks + mouthAnimCooldown = this.random.nextInt(1200 - 600 + 1) + 600; + } + } + + if (level().isClientSide) { + // Capture previous for smooth interpolation between ticks + this.tailSwayPrev = this.tailSwayOffset; + updateProceduralTailSway(); + } + } + + private void updateProceduralTailSway() { + // Turn input derived from rotation deltas; works even when standing still and turning + float turnDegrees = getSignedTurnDelta(); + + // Deadzone to ignore tiny jitter so the tail can return to center cleanly + float deadzoneDeg = 0.6f; // smaller deadzone for more responsiveness + float turnInput = 0.0f; + if (Math.abs(turnDegrees) >= deadzoneDeg) { + // Higher sensitivity so small in-place turns still affect the model + turnInput = Mth.clamp(turnDegrees / 15.0f, -1.0f, 1.0f); + } + + // Target offset: keep intuitive sign (positive input -> positive sway) + float target = turnInput; + + // One-pole low-pass (no bounce). Larger alpha => snappier and less "stiff". + float alpha = 0.24f; // try 0.20–0.30 to taste + + tailSwayOffset += (target - tailSwayOffset) * alpha; + + // Snap tiny residuals to zero so it visibly settles + if (Math.abs(tailSwayOffset) < 0.003f) { + tailSwayOffset = 0.0f; + } + + // No oscillation velocity retained + tailSwayVelocity = 0.0f; + + tailSwayOffset = Mth.clamp(tailSwayOffset, -1.5f, 1.5f); + } + + // Expose to the model for bone rotation + public float getTailSwayOffset() { + return tailSwayOffset; + } + + // Interpolated sway for smooth rendering between ticks + public float getTailSwayOffset(float partialTick) { + return Mth.lerp(Mth.clamp(partialTick, 0.0f, 1.0f), tailSwayPrev, tailSwayOffset); + } + + /*? if <=1.20.1 {*/ + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(VARIANT, 0); + this.entityData.define(DATA_SYNCED_AGE, 0); + } + /*?} else {*/ + /*@Override + protected void defineSynchedData(SynchedEntityData.Builder pBuilder) { + super.defineSynchedData(pBuilder); + pBuilder.define(VARIANT, 0); + pBuilder.define(DATA_SYNCED_AGE, 0); + } + *//*?}*/ + + public int getSyncedAge() { + return this.entityData.get(DATA_SYNCED_AGE); + } + public int getTypeVariant() { + return this.entityData.get(VARIANT); + } + + public ChilesaurusVariant getVariant() { + return ChilesaurusVariant.byId(this.getTypeVariant() & 255); + } + + private void setVariant(ChilesaurusVariant variant) { + this.entityData.set(VARIANT, variant.getId() & 255); + } + + @Override + public boolean canMate(Animal other) { + if (!super.canMate(other)) return false; + if (!(other instanceof ChilesaurusEntity that)) return false; + return this.getVariant() != that.getVariant(); + } + @Override + public void addAdditionalSaveData(CompoundTag pCompound) { + super.addAdditionalSaveData(pCompound); + pCompound.putInt("Variant", this.getTypeVariant()); + } + + @Override + public void readAdditionalSaveData(CompoundTag pCompound) { + super.readAdditionalSaveData(pCompound); + this.entityData.set(VARIANT, pCompound.getInt("Variant")); + } + + /*? if <=1.20.1 {*/ + @Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor pLevel, DifficultyInstance pDifficulty, MobSpawnType pReason, @Nullable SpawnGroupData pSpawnData, @Nullable CompoundTag pDataTag) { + ChilesaurusVariant variant = Util.getRandom(ChilesaurusVariant.values(), this.random); + this.setVariant(variant); + return super.finalizeSpawn(pLevel, pDifficulty, pReason, pSpawnData, pDataTag); + } + /*?} else {*/ + /*@Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor level, DifficultyInstance difficulty, MobSpawnType spawnType, @Nullable SpawnGroupData spawnGroupData) { + ChilesaurusVariant variant = Util.getRandom(ChilesaurusVariant.values(), this.random); + this.setVariant(variant); + return super.finalizeSpawn(level, difficulty, spawnType, spawnGroupData); + } + *//*?}*/ + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return cache; + } + + @Override + protected @Nullable SoundEvent getHurtSound(DamageSource damageSource) { + return ModSounds.CHILESAURUS_HURT.get(); + } + + @Override + protected @Nullable SoundEvent getDeathSound() { + return ModSounds.CHILESAURUS_DEATH.get(); + } + + @Override + protected @Nullable SoundEvent getAmbientSound() { + return ModSounds.CHILESAURUS_CALL.get(); + } + + @Override + public double getFluidJumpThreshold() { + return this.getEyeHeight(); + } +} \ No newline at end of file diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CoelophysisEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CoelophysisEntity.java index cec362d..f41b0de 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CoelophysisEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CoelophysisEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.CoelophysisVariant; import net.cmr.jurassicrevived.entity.client.CoelophysisVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class CoelophysisEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.COELOPHYSIS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CoelurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CoelurusEntity.java index 497dd82..941662a 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CoelurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CoelurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.CoelurusVariant; import net.cmr.jurassicrevived.entity.client.CoelurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class CoelurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.COELURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CompsognathusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CompsognathusEntity.java index 19b3170..b08cf71 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CompsognathusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CompsognathusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.CompsognathusVariant; import net.cmr.jurassicrevived.entity.client.CompsognathusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -79,6 +80,11 @@ public class CompsognathusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.COMPSOGNATHUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ConcavenatorEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ConcavenatorEntity.java index 8bfae5a..78e547e 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ConcavenatorEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ConcavenatorEntity.java @@ -5,6 +5,7 @@ import net.cmr.jurassicrevived.entity.ModEntities; import net.cmr.jurassicrevived.entity.ai.*; import net.cmr.jurassicrevived.entity.client.ConcavenatorVariant; import net.cmr.jurassicrevived.entity.client.ConcavenatorVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -76,6 +77,11 @@ public class ConcavenatorEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.CONCAVENATOR_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CorythosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CorythosaurusEntity.java index b5b3145..757165f 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CorythosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/CorythosaurusEntity.java @@ -8,6 +8,7 @@ import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.CorythosaurusVariant; import net.cmr.jurassicrevived.entity.client.CorythosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class CorythosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.CORYTHOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DeinonychusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DeinonychusEntity.java index 4d6cdc7..976c1f4 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DeinonychusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DeinonychusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.DeinonychusVariant; import net.cmr.jurassicrevived.entity.client.DeinonychusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class DeinonychusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.DEINONYCHUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DilophosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DilophosaurusEntity.java index 5947e9a..e3d3ff5 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DilophosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DilophosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.DilophosaurusVariant; import net.cmr.jurassicrevived.entity.client.DilophosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class DilophosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.DILOPHOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DimorphodonEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DimorphodonEntity.java index 99b3b6a..f6211dc 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DimorphodonEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DimorphodonEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.DimorphodonVariant; import net.cmr.jurassicrevived.entity.client.DimorphodonVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class DimorphodonEntity extends DinoEntityBase implements GeoEntity, Flyi ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.DIMORPHODON_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DiplodocusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DiplodocusEntity.java index 1d4d845..e371841 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DiplodocusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DiplodocusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.DiplodocusVariant; import net.cmr.jurassicrevived.entity.client.DiplodocusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -81,6 +82,11 @@ public class DiplodocusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.DIPLODOCUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DistortusRexEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DistortusRexEntity.java index a7c08c3..a613396 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DistortusRexEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DistortusRexEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.DistortusRexVariant; import net.cmr.jurassicrevived.entity.client.DistortusRexVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -83,6 +84,11 @@ public class DistortusRexEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.DISTORTUS_REX_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DryosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DryosaurusEntity.java index c6eb2ab..1460306 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DryosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/DryosaurusEntity.java @@ -8,6 +8,7 @@ import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.DryosaurusVariant; import net.cmr.jurassicrevived.entity.client.DryosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class DryosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.DRYOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/EdmontosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/EdmontosaurusEntity.java index 0c6a7d1..9d748ee 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/EdmontosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/EdmontosaurusEntity.java @@ -8,6 +8,7 @@ import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.EdmontosaurusVariant; import net.cmr.jurassicrevived.entity.client.EdmontosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class EdmontosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.EDMONTOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/FDuckEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/FDuckEntity.java index 7015b9d..caae834 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/FDuckEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/FDuckEntity.java @@ -81,6 +81,11 @@ public class FDuckEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.FDUCK_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GallimimusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GallimimusEntity.java index 29c2cc2..29c194a 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GallimimusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GallimimusEntity.java @@ -8,6 +8,7 @@ import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.GallimimusVariant; import net.cmr.jurassicrevived.entity.client.GallimimusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class GallimimusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.GALLIMIMUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GeosternbergiaEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GeosternbergiaEntity.java index 362bdf8..5f42265 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GeosternbergiaEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GeosternbergiaEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.GeosternbergiaVariant; import net.cmr.jurassicrevived.entity.client.GeosternbergiaVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class GeosternbergiaEntity extends DinoEntityBase implements GeoEntity, F ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.GEOSTERNBERGIA_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GiganotosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GiganotosaurusEntity.java index de9f393..5978afb 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GiganotosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GiganotosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.GiganotosaurusVariant; import net.cmr.jurassicrevived.entity.client.GiganotosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -83,6 +84,11 @@ public class GiganotosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.GIGANOTOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GuanlongEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GuanlongEntity.java index 53b0a3d..aa23a4d 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GuanlongEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GuanlongEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.GuanlongVariant; import net.cmr.jurassicrevived.entity.client.GuanlongVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -81,6 +82,11 @@ public class GuanlongEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.GUANLONG_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GuidracoEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GuidracoEntity.java index 78d3d81..454361f 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GuidracoEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/GuidracoEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.GuidracoVariant; import net.cmr.jurassicrevived.entity.client.GuidracoVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class GuidracoEntity extends DinoEntityBase implements GeoEntity, FlyingA ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.GUIDRACO_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HadrosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HadrosaurusEntity.java index 4ae457b..49fa211 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HadrosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HadrosaurusEntity.java @@ -8,6 +8,7 @@ import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.HadrosaurusVariant; import net.cmr.jurassicrevived.entity.client.HadrosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class HadrosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.HADROSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HerrerasaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HerrerasaurusEntity.java index 3528087..8fd4609 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HerrerasaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HerrerasaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.HerrerasaurusVariant; import net.cmr.jurassicrevived.entity.client.HerrerasaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -81,6 +82,11 @@ public class HerrerasaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.HERRERASAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HypsilophodonEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HypsilophodonEntity.java index 6887c4c..e20c16c 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HypsilophodonEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/HypsilophodonEntity.java @@ -8,6 +8,7 @@ import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.HypsilophodonVariant; import net.cmr.jurassicrevived.entity.client.HypsilophodonVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class HypsilophodonEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.HYPSILOPHODON_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/IndominusRexEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/IndominusRexEntity.java index 5b17676..663fdd5 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/IndominusRexEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/IndominusRexEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.IndominusRexVariant; import net.cmr.jurassicrevived.entity.client.IndominusRexVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -82,6 +83,11 @@ public class IndominusRexEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.INDOMINUS_REX_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/IndoraptorEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/IndoraptorEntity.java index a97e9cf..b874a17 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/IndoraptorEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/IndoraptorEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.IndoraptorVariant; import net.cmr.jurassicrevived.entity.client.IndoraptorVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class IndoraptorEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.INDORAPTOR_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/InostranceviaEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/InostranceviaEntity.java index 6c57ee5..95f740f 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/InostranceviaEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/InostranceviaEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.InostranceviaVariant; import net.cmr.jurassicrevived.entity.client.InostranceviaVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class InostranceviaEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.INOSTRANCEVIA_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/LambeosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/LambeosaurusEntity.java index aefe57f..231c3ad 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/LambeosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/LambeosaurusEntity.java @@ -8,6 +8,7 @@ import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.LambeosaurusVariant; import net.cmr.jurassicrevived.entity.client.LambeosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class LambeosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.LAMBEOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/LudodactylusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/LudodactylusEntity.java index c71b4d2..2e6c312 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/LudodactylusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/LudodactylusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.LudodactylusVariant; import net.cmr.jurassicrevived.entity.client.LudodactylusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class LudodactylusEntity extends DinoEntityBase implements GeoEntity, Fly ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.LUDODACTYLUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MajungasaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MajungasaurusEntity.java index ea8869e..1710f0a 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MajungasaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MajungasaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.MajungasaurusVariant; import net.cmr.jurassicrevived.entity.client.MajungasaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -81,6 +82,11 @@ public class MajungasaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.MAJUNGASAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MamenchisaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MamenchisaurusEntity.java index 886cff6..07e6f6e 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MamenchisaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MamenchisaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.MamenchisaurusVariant; import net.cmr.jurassicrevived.entity.client.MamenchisaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -81,6 +82,11 @@ public class MamenchisaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.MAMENCHISAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MetriacanthosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MetriacanthosaurusEntity.java index 185ce01..e203ddb 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MetriacanthosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MetriacanthosaurusEntity.java @@ -5,6 +5,7 @@ import net.cmr.jurassicrevived.entity.ModEntities; import net.cmr.jurassicrevived.entity.ai.*; import net.cmr.jurassicrevived.entity.client.MetriacanthosaurusVariant; import net.cmr.jurassicrevived.entity.client.MetriacanthosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -76,6 +77,11 @@ public class MetriacanthosaurusEntity extends DinoEntityBase implements GeoEntit ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.METRIACANTHOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MoganopterusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MoganopterusEntity.java index d375039..bbb680a 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MoganopterusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MoganopterusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.MoganopterusVariant; import net.cmr.jurassicrevived.entity.client.MoganopterusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class MoganopterusEntity extends DinoEntityBase implements GeoEntity, Fly ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.MOGANOPTERUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MussasaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MussasaurusEntity.java new file mode 100644 index 0000000..ebd3832 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/MussasaurusEntity.java @@ -0,0 +1,329 @@ +package net.cmr.jurassicrevived.entity.custom; + +import net.cmr.jurassicrevived.block.ModBlocks; +import net.cmr.jurassicrevived.entity.ModEntities; +import net.cmr.jurassicrevived.entity.ai.DinoData; +import net.cmr.jurassicrevived.entity.ai.DinoEntityBase; +import net.cmr.jurassicrevived.entity.ai.IDinoData; +import net.cmr.jurassicrevived.entity.client.MussasaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; +import net.cmr.jurassicrevived.sound.ModSounds; +import net.minecraft.Util; +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.util.Mth; +import net.minecraft.world.DifficultyInstance; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.*; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.attributes.DefaultAttributes; +import net.minecraft.world.entity.animal.Animal; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.ServerLevelAccessor; +import net.minecraft.world.level.block.Block; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.animatable.GeoEntity; +/*? if <=1.20.1 {*/ +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animatable.instance.SingletonAnimatableInstanceCache; +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.animation.RawAnimation; +import software.bernie.geckolib.core.object.PlayState; +/*?} else {*/ +/*import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animatable.instance.SingletonAnimatableInstanceCache; +import software.bernie.geckolib.animation.*; +*//*?}*/ + +public class MussasaurusEntity extends DinoEntityBase implements GeoEntity { + private AnimatableInstanceCache cache = new SingletonAnimatableInstanceCache(this); + + private static final EntityDataAccessor VARIANT = + SynchedEntityData.defineId(MussasaurusEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor DATA_SYNCED_AGE = + SynchedEntityData.defineId(MussasaurusEntity.class, EntityDataSerializers.INT); + + // Procedural tail sway state (client-side use for rendering) + private float tailSwayOffset; // Smoothed offset in range roughly [-1, 1] + private float tailSwayVelocity; // Internal velocity for spring-damper + private float tailSwayPrev; // Previous frame value for interpolation + + public MussasaurusEntity(EntityType pEntityType, Level pLevel) { + super(pEntityType, pLevel); + + this.dinoData = new DinoData( + getAIConfig().maxHunger(), + getAIConfig().maxThirst(), + IDinoData.Mood.NEUTRAL, + IDinoData.Aggression.TERRITORIAL, + 0.75f, + IDinoData.DietaryClassification.HERBIVORE, + IDinoData.Type.TERRESTRIAL, + IDinoData.Group.CERAPOD, + IDinoData.BirthType.EGG_LAYING, + IDinoData.ActivityPattern.CATHEMERAL + ); + } + + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.MUSSASAURUS_SPAWN_EGG.get()); + } + + @Override + public boolean isCarnivore() { + return false; + } + + @Override + public boolean isMarine() { + return false; + } + + @Override + public boolean isAmphibious() { + return false; + } + + @Override + public Block getEggBlock() { + return ModBlocks.INCUBATED_MUSSASAURUS_EGG.get(); + } + + @Override + public DinoAIConfig getAIConfig() { + return new DinoAIConfig(0.3D, 1.1D, 1.5D, 100, 100, 0.05f, 0.1f, 20); + } + + public static AttributeSupplier.Builder createAttributes() { + return Animal.createLivingAttributes() + .add(Attributes.MAX_HEALTH, 34D) + .add(Attributes.MOVEMENT_SPEED, 0.3D) + .add(Attributes.ARMOR, 0D) + .add(Attributes.FOLLOW_RANGE, 32D) + .add(Attributes.KNOCKBACK_RESISTANCE, 0D) + .add(Attributes.ATTACK_KNOCKBACK, 0D) + .add(Attributes.ATTACK_DAMAGE, 6D); + } + + + @Nullable + @Override + public AgeableMob getBreedOffspring(ServerLevel pLevel, AgeableMob pOtherParent) { + AgeableMob child = ModEntities.MUSSASAURUS.get().create(pLevel); + if (child instanceof MussasaurusEntity baby) { + MussasaurusVariant randomVariant = Util.getRandom(MussasaurusVariant.values(), this.random); + baby.setVariant(randomVariant); + } + return child; + } + + @Override + public boolean doHurtTarget(Entity target) { + boolean hit = super.doHurtTarget(target); + if (!level().isClientSide && hit && target instanceof LivingEntity) { + if (this.level() instanceof ServerLevel serverLevel) { + this.triggerAnim("attackController", "attack"); + } + } + return hit; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "Walk/Run/Idle", 5, state -> { + if (state.isMoving()) + return state.setAndContinue(MussasaurusEntity.this.isSprinting() ? RawAnimation.begin().then("anim.mussasaurus.run", Animation.LoopType.LOOP) : RawAnimation.begin().then("anim.mussasaurus.walk", Animation.LoopType.LOOP)); + + return state.setAndContinue(RawAnimation.begin().then("anim.mussasaurus.idle", Animation.LoopType.LOOP)); + })); + + controllers.add(new AnimationController<>(this, "attackController", 5, state -> PlayState.STOP) + .triggerableAnim("attack", RawAnimation.begin().then("anim.mussasaurus.attack", Animation.LoopType.PLAY_ONCE))); + + controllers.add(new AnimationController<>(this, "mouthController", 5, state -> PlayState.STOP) + .triggerableAnim("mouth", RawAnimation.begin().then("anim.mussasaurus.mouth", Animation.LoopType.PLAY_ONCE))); + } + + private float getSignedTurnDelta() { + // Only consider the body (torso) rotation so head look does not affect tail sway + return Mth.wrapDegrees(this.yBodyRot - this.yBodyRotO); + } + + private int mouthAnimCooldown = 0; + + @Override + public void tick() { + super.tick(); + if (!level().isClientSide) { + this.entityData.set(DATA_SYNCED_AGE, this.getAge()); + var maxHealthAttr = getAttribute(Attributes.MAX_HEALTH); + if (maxHealthAttr != null) { + double baseAdult = DefaultAttributes.getSupplier((EntityType) this.getType()).getValue(Attributes.MAX_HEALTH); + double desired = this.isBaby() ? baseAdult * 0.10D : baseAdult; + if (maxHealthAttr.getBaseValue() != desired) { + double oldMax = maxHealthAttr.getBaseValue(); + double healthRatio = this.getHealth() / (float) oldMax; + maxHealthAttr.setBaseValue(desired); + this.setHealth((float) (desired * Mth.clamp(healthRatio, 0.0F, 1.0F))); + } + } + } + + if (!level().isClientSide) { + if (mouthAnimCooldown > 0) { + mouthAnimCooldown--; + } else { + this.triggerAnim("mouthController", "mouth"); + this.playSound(ModSounds.MUSSASAURUS_CALL.get(), 1.0F, 1.0F); + // 30s–60s in ticks + mouthAnimCooldown = this.random.nextInt(1200 - 600 + 1) + 600; + } + } + + if (level().isClientSide) { + // Capture previous for smooth interpolation between ticks + this.tailSwayPrev = this.tailSwayOffset; + updateProceduralTailSway(); + } + } + + private void updateProceduralTailSway() { + // Turn input derived from rotation deltas; works even when standing still and turning + float turnDegrees = getSignedTurnDelta(); + + // Deadzone to ignore tiny jitter so the tail can return to center cleanly + float deadzoneDeg = 0.6f; // smaller deadzone for more responsiveness + float turnInput = 0.0f; + if (Math.abs(turnDegrees) >= deadzoneDeg) { + // Higher sensitivity so small in-place turns still affect the model + turnInput = Mth.clamp(turnDegrees / 15.0f, -1.0f, 1.0f); + } + + // Target offset: keep intuitive sign (positive input -> positive sway) + float target = turnInput; + + // One-pole low-pass (no bounce). Larger alpha => snappier and less "stiff". + float alpha = 0.24f; // try 0.20–0.30 to taste + + tailSwayOffset += (target - tailSwayOffset) * alpha; + + // Snap tiny residuals to zero so it visibly settles + if (Math.abs(tailSwayOffset) < 0.003f) { + tailSwayOffset = 0.0f; + } + + // No oscillation velocity retained + tailSwayVelocity = 0.0f; + + tailSwayOffset = Mth.clamp(tailSwayOffset, -1.5f, 1.5f); + } + + // Expose to the model for bone rotation + public float getTailSwayOffset() { + return tailSwayOffset; + } + + // Interpolated sway for smooth rendering between ticks + public float getTailSwayOffset(float partialTick) { + return Mth.lerp(Mth.clamp(partialTick, 0.0f, 1.0f), tailSwayPrev, tailSwayOffset); + } + + /*? if <=1.20.1 {*/ + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(VARIANT, 0); + this.entityData.define(DATA_SYNCED_AGE, 0); + } + /*?} else {*/ + /*@Override + protected void defineSynchedData(SynchedEntityData.Builder pBuilder) { + super.defineSynchedData(pBuilder); + pBuilder.define(VARIANT, 0); + pBuilder.define(DATA_SYNCED_AGE, 0); + } + *//*?}*/ + + public int getSyncedAge() { + return this.entityData.get(DATA_SYNCED_AGE); + } + public int getTypeVariant() { + return this.entityData.get(VARIANT); + } + + public MussasaurusVariant getVariant() { + return MussasaurusVariant.byId(this.getTypeVariant() & 255); + } + + private void setVariant(MussasaurusVariant variant) { + this.entityData.set(VARIANT, variant.getId() & 255); + } + + @Override + public boolean canMate(Animal other) { + if (!super.canMate(other)) return false; + if (!(other instanceof MussasaurusEntity that)) return false; + return this.getVariant() != that.getVariant(); + } + @Override + public void addAdditionalSaveData(CompoundTag pCompound) { + super.addAdditionalSaveData(pCompound); + pCompound.putInt("Variant", this.getTypeVariant()); + } + + @Override + public void readAdditionalSaveData(CompoundTag pCompound) { + super.readAdditionalSaveData(pCompound); + this.entityData.set(VARIANT, pCompound.getInt("Variant")); + } + + /*? if <=1.20.1 {*/ + @Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor pLevel, DifficultyInstance pDifficulty, MobSpawnType pReason, @Nullable SpawnGroupData pSpawnData, @Nullable CompoundTag pDataTag) { + MussasaurusVariant variant = Util.getRandom(MussasaurusVariant.values(), this.random); + this.setVariant(variant); + return super.finalizeSpawn(pLevel, pDifficulty, pReason, pSpawnData, pDataTag); + } + /*?} else {*/ + /*@Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor level, DifficultyInstance difficulty, MobSpawnType spawnType, @Nullable SpawnGroupData spawnGroupData) { + MussasaurusVariant variant = Util.getRandom(MussasaurusVariant.values(), this.random); + this.setVariant(variant); + return super.finalizeSpawn(level, difficulty, spawnType, spawnGroupData); + } + *//*?}*/ + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return cache; + } + + @Override + protected @Nullable SoundEvent getHurtSound(DamageSource damageSource) { + return ModSounds.MUSSASAURUS_HURT.get(); + } + + @Override + protected @Nullable SoundEvent getDeathSound() { + return ModSounds.MUSSASAURUS_DEATH.get(); + } + + @Override + protected @Nullable SoundEvent getAmbientSound() { + return ModSounds.MUSSASAURUS_CALL.get(); + } + + @Override + public double getFluidJumpThreshold() { + return this.getEyeHeight(); + } +} \ No newline at end of file diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/NyctosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/NyctosaurusEntity.java index 79afd93..449b5d0 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/NyctosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/NyctosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.NyctosaurusVariant; import net.cmr.jurassicrevived.entity.client.NyctosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class NyctosaurusEntity extends DinoEntityBase implements GeoEntity, Flyi ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.NYCTOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OrnitholestesEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OrnitholestesEntity.java index e51880a..da35134 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OrnitholestesEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OrnitholestesEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.OrnitholestesVariant; import net.cmr.jurassicrevived.entity.client.OrnitholestesVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class OrnitholestesEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.ORNITHOLESTES_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OrnithomimusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OrnithomimusEntity.java index bfe862c..3a8d50c 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OrnithomimusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OrnithomimusEntity.java @@ -8,6 +8,7 @@ import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.OrnithomimusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class OrnithomimusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.ORNITHOMIMUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OuranosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OuranosaurusEntity.java index 935068a..4af5662 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OuranosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OuranosaurusEntity.java @@ -8,6 +8,7 @@ import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.OuranosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class OuranosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.OURANOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OviraptorEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OviraptorEntity.java index 4d7db9b..1df5cd2 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OviraptorEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/OviraptorEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.OviraptorVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -79,6 +80,11 @@ public class OviraptorEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.OVIRAPTOR_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PachycephalosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PachycephalosaurusEntity.java index 91e9de5..d191908 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PachycephalosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PachycephalosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.PachycephalosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -79,6 +80,11 @@ public class PachycephalosaurusEntity extends DinoEntityBase implements GeoEntit ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.PACHYCEPHALOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ParasaurolophusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ParasaurolophusEntity.java index 3ec6e34..a09c039 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ParasaurolophusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ParasaurolophusEntity.java @@ -8,6 +8,7 @@ import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.ParasaurolophusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class ParasaurolophusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.PARASAUROLOPHUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProceratosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProceratosaurusEntity.java index ea89058..4d8c999 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProceratosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProceratosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.ProceratosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class ProceratosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.PROCERATOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProcompsognathusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProcompsognathusEntity.java index 97e1fb0..657bb2f 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProcompsognathusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProcompsognathusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.ProcompsognathusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class ProcompsognathusEntity extends DinoEntityBase implements GeoEntity ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.PROCOMPSOGNATHUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProtoceratopsEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProtoceratopsEntity.java index 957aee4..fd59906 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProtoceratopsEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ProtoceratopsEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.ProtoceratopsVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -79,6 +80,11 @@ public class ProtoceratopsEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.PROTOCERATOPS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PteranodonEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PteranodonEntity.java index c39dabe..c37b43d 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PteranodonEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PteranodonEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.PteranodonVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class PteranodonEntity extends DinoEntityBase implements GeoEntity, Flyin ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.PTERANODON_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PterodaustroEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PterodaustroEntity.java index f0b2a56..57d1e34 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PterodaustroEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/PterodaustroEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.PterodaustroVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class PterodaustroEntity extends DinoEntityBase implements GeoEntity, Fly ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.PTERODAUSTRO_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/QuetzalcoatlusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/QuetzalcoatlusEntity.java index 24cfeb5..4ac8eca 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/QuetzalcoatlusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/QuetzalcoatlusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.QuetzalcoatlusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class QuetzalcoatlusEntity extends DinoEntityBase implements GeoEntity, F ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.QUETZALCOATLUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/RajasaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/RajasaurusEntity.java index 19269c7..ad4933d 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/RajasaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/RajasaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.RajasaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -81,6 +82,11 @@ public class RajasaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.RAJASAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/RugopsEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/RugopsEntity.java index 98cf718..584c6f5 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/RugopsEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/RugopsEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.RugopsVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -81,6 +82,11 @@ public class RugopsEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.RUGOPS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/SegisaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/SegisaurusEntity.java index 0590bb1..42f2738 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/SegisaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/SegisaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.SegisaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class SegisaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.SEGISAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ShantungosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ShantungosaurusEntity.java index 699142d..43bdd81 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ShantungosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ShantungosaurusEntity.java @@ -8,6 +8,7 @@ import net.cmr.jurassicrevived.entity.ai.IDinoData; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.ShantungosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -77,6 +78,11 @@ public class ShantungosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.SHANTUNGOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/SpinosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/SpinosaurusEntity.java index 3d5c068..0154c00 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/SpinosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/SpinosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.SpinosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -82,6 +83,11 @@ public class SpinosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.SPINOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/StegosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/StegosaurusEntity.java index a9dbcd2..dd2b18e 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/StegosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/StegosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.StegosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -79,6 +80,11 @@ public class StegosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.STEGOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/StyracosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/StyracosaurusEntity.java index 4cd9afe..5eea24b 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/StyracosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/StyracosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.StyracosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -79,6 +80,11 @@ public class StyracosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.STYRACOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/SuchomimusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/SuchomimusEntity.java new file mode 100644 index 0000000..ac8b98d --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/SuchomimusEntity.java @@ -0,0 +1,331 @@ +package net.cmr.jurassicrevived.entity.custom; + +import net.cmr.jurassicrevived.block.ModBlocks; +import net.cmr.jurassicrevived.entity.ModEntities; +import net.cmr.jurassicrevived.entity.ai.DinoData; +import net.cmr.jurassicrevived.entity.ai.DinoEntityBase; +import net.cmr.jurassicrevived.entity.ai.IDinoData; +import net.cmr.jurassicrevived.entity.client.SuchomimusVariant; +import net.cmr.jurassicrevived.item.ModItems; +import net.cmr.jurassicrevived.sound.ModSounds; +import net.minecraft.Util; +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.util.Mth; +import net.minecraft.world.DifficultyInstance; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.*; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.attributes.DefaultAttributes; +import net.minecraft.world.entity.animal.Animal; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.ServerLevelAccessor; +import net.minecraft.world.level.block.Block; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.animatable.GeoEntity; +/*? if <=1.20.1 {*/ +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animatable.instance.SingletonAnimatableInstanceCache; +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.animation.RawAnimation; +import software.bernie.geckolib.core.object.PlayState; +/*?} else {*/ +/*import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animatable.instance.SingletonAnimatableInstanceCache; +import software.bernie.geckolib.animation.*; +*//*?}*/ + +public class SuchomimusEntity extends DinoEntityBase implements GeoEntity { + private AnimatableInstanceCache cache = new SingletonAnimatableInstanceCache(this); + + private static final EntityDataAccessor VARIANT = + SynchedEntityData.defineId(SuchomimusEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor DATA_SYNCED_AGE = + SynchedEntityData.defineId(SuchomimusEntity.class, EntityDataSerializers.INT); + + // Procedural tail sway state (client-side use for rendering) + private float tailSwayOffset; // Smoothed offset in range roughly [-1, 1] + private float tailSwayVelocity; // Internal velocity for spring-damper + private float tailSwayPrev; // Previous frame value for interpolation + + public SuchomimusEntity(EntityType pEntityType, Level pLevel) { + super(pEntityType, pLevel); + + this.dinoData = new DinoData( + getAIConfig().maxHunger(), + getAIConfig().maxThirst(), + IDinoData.Mood.NEUTRAL, + IDinoData.Aggression.TERRITORIAL, + 0.75f, + IDinoData.DietaryClassification.PISCIVORE, + IDinoData.Type.AMPHIBIOUS, + IDinoData.Group.THEROPOD, + IDinoData.BirthType.EGG_LAYING, + IDinoData.ActivityPattern.CATHEMERAL + ); + } + + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.SUCHOMIMUS_SPAWN_EGG.get()); + } + + @Override + public boolean isCarnivore() { + return true; + } + + @Override + public boolean isMarine() { + return false; + } + + @Override + public boolean isAmphibious() { + return true; + } + + @Override + public Block getEggBlock() { + return ModBlocks.INCUBATED_SUCHOMIMUS_EGG.get(); + } + + @Override + public DinoAIConfig getAIConfig() { + return new DinoAIConfig(0.3D, 1.1D, 1.5D, 100, 100, 0.05f, 0.1f, 20); + } + + public static AttributeSupplier.Builder createAttributes() { + return Animal.createLivingAttributes() + .add(Attributes.MAX_HEALTH, 55D) + .add(Attributes.MOVEMENT_SPEED, 0.3D) + .add(Attributes.ARMOR, 0D) + .add(Attributes.FOLLOW_RANGE, 32D) + .add(Attributes.KNOCKBACK_RESISTANCE, 0D) + .add(Attributes.ATTACK_KNOCKBACK, 0D) + .add(Attributes.ATTACK_DAMAGE, 15D); + } + + + @Nullable + @Override + public AgeableMob getBreedOffspring(ServerLevel pLevel, AgeableMob pOtherParent) { + AgeableMob child = ModEntities.SUCHOMIMUS.get().create(pLevel); + if (child instanceof SuchomimusEntity baby) { + SuchomimusVariant randomVariant = Util.getRandom(SuchomimusVariant.values(), this.random); + baby.setVariant(randomVariant); + } + return child; + } + + @Override + public boolean doHurtTarget(Entity target) { + boolean hit = super.doHurtTarget(target); + if (!level().isClientSide && hit && target instanceof LivingEntity) { + if (this.level() instanceof ServerLevel serverLevel) { + this.triggerAnim("attackController", "attack"); + this.playSound(ModSounds.SUCHOMIMUS_ATTACK.get(), 1.0F, 1.0F); + } + } + return hit; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "Walk/Run/Idle", 5, state -> { + if (state.isMoving()) + return state.setAndContinue(SuchomimusEntity.this.isSprinting() ? RawAnimation.begin().then("anim.suchomimus.run", Animation.LoopType.LOOP) : RawAnimation.begin().then("anim.suchomimus.walk", Animation.LoopType.LOOP)); + + return state.setAndContinue(RawAnimation.begin().then("anim.suchomimus.idle", Animation.LoopType.LOOP)); + })); + + controllers.add(new AnimationController<>(this, "attackController", 5, state -> PlayState.STOP) + .triggerableAnim("attack", RawAnimation.begin().then("anim.suchomimus.attack", Animation.LoopType.PLAY_ONCE))); + + controllers.add(new AnimationController<>(this, "mouthController", 5, state -> PlayState.STOP) + .triggerableAnim("mouth", RawAnimation.begin().then("anim.suchomimus.mouth", Animation.LoopType.PLAY_ONCE))); + } + + private float getSignedTurnDelta() { + // Only consider the body (torso) rotation so head look does not affect tail sway + return Mth.wrapDegrees(this.yBodyRot - this.yBodyRotO); + } + + private int mouthAnimCooldown = 0; + + @Override + public void tick() { + super.tick(); + + if (!level().isClientSide) { + this.entityData.set(DATA_SYNCED_AGE, this.getAge()); + var maxHealthAttr = getAttribute(Attributes.MAX_HEALTH); + if (maxHealthAttr != null) { + double baseAdult = DefaultAttributes.getSupplier((EntityType) this.getType()).getValue(Attributes.MAX_HEALTH); + double desired = this.isBaby() ? baseAdult * 0.10D : baseAdult; + if (maxHealthAttr.getBaseValue() != desired) { + double oldMax = maxHealthAttr.getBaseValue(); + double healthRatio = this.getHealth() / (float) oldMax; + maxHealthAttr.setBaseValue(desired); + this.setHealth((float) (desired * Mth.clamp(healthRatio, 0.0F, 1.0F))); + } + } + } + + if (!level().isClientSide) { + if (mouthAnimCooldown > 0) { + mouthAnimCooldown--; + } else { + this.triggerAnim("mouthController", "mouth"); + this.playSound(ModSounds.SUCHOMIMUS_CALL.get(), 1.0F, 1.0F); + // 30s–60s in ticks + mouthAnimCooldown = this.random.nextInt(1200 - 600 + 1) + 600; + } + } + + if (level().isClientSide) { + // Capture previous for smooth interpolation between ticks + this.tailSwayPrev = this.tailSwayOffset; + updateProceduralTailSway(); + } + } + + private void updateProceduralTailSway() { + // Turn input derived from rotation deltas; works even when standing still and turning + float turnDegrees = getSignedTurnDelta(); + + // Deadzone to ignore tiny jitter so the tail can return to center cleanly + float deadzoneDeg = 0.6f; // smaller deadzone for more responsiveness + float turnInput = 0.0f; + if (Math.abs(turnDegrees) >= deadzoneDeg) { + // Higher sensitivity so small in-place turns still affect the model + turnInput = Mth.clamp(turnDegrees / 15.0f, -1.0f, 1.0f); + } + + // Target offset: keep intuitive sign (positive input -> positive sway) + float target = turnInput; + + // One-pole low-pass (no bounce). Larger alpha => snappier and less "stiff". + float alpha = 0.24f; // try 0.20–0.30 to taste + + tailSwayOffset += (target - tailSwayOffset) * alpha; + + // Snap tiny residuals to zero so it visibly settles + if (Math.abs(tailSwayOffset) < 0.003f) { + tailSwayOffset = 0.0f; + } + + // No oscillation velocity retained + tailSwayVelocity = 0.0f; + + tailSwayOffset = Mth.clamp(tailSwayOffset, -1.5f, 1.5f); + } + + // Expose to the model for bone rotation + public float getTailSwayOffset() { + return tailSwayOffset; + } + + // Interpolated sway for smooth rendering between ticks + public float getTailSwayOffset(float partialTick) { + return Mth.lerp(Mth.clamp(partialTick, 0.0f, 1.0f), tailSwayPrev, tailSwayOffset); + } + + /*? if <=1.20.1 {*/ + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(VARIANT, 0); + this.entityData.define(DATA_SYNCED_AGE, 0); + } + /*?} else {*/ + /*@Override + protected void defineSynchedData(SynchedEntityData.Builder pBuilder) { + super.defineSynchedData(pBuilder); + pBuilder.define(VARIANT, 0); + pBuilder.define(DATA_SYNCED_AGE, 0); + } + *//*?}*/ + + public int getSyncedAge() { + return this.entityData.get(DATA_SYNCED_AGE); + } + public int getTypeVariant() { + return this.entityData.get(VARIANT); + } + + public SuchomimusVariant getVariant() { + return SuchomimusVariant.byId(this.getTypeVariant() & 255); + } + + private void setVariant(SuchomimusVariant variant) { + this.entityData.set(VARIANT, variant.getId() & 255); + } + + @Override + public boolean canMate(Animal other) { + if (!super.canMate(other)) return false; + if (!(other instanceof SuchomimusEntity that)) return false; + return this.getVariant() != that.getVariant(); + } + @Override + public void addAdditionalSaveData(CompoundTag pCompound) { + super.addAdditionalSaveData(pCompound); + pCompound.putInt("Variant", this.getTypeVariant()); + } + + @Override + public void readAdditionalSaveData(CompoundTag pCompound) { + super.readAdditionalSaveData(pCompound); + this.entityData.set(VARIANT, pCompound.getInt("Variant")); + } + + /*? if <=1.20.1 {*/ + @Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor pLevel, DifficultyInstance pDifficulty, MobSpawnType pReason, @Nullable SpawnGroupData pSpawnData, @Nullable CompoundTag pDataTag) { + SuchomimusVariant variant = Util.getRandom(SuchomimusVariant.values(), this.random); + this.setVariant(variant); + return super.finalizeSpawn(pLevel, pDifficulty, pReason, pSpawnData, pDataTag); + } + /*?} else {*/ + /*@Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor level, DifficultyInstance difficulty, MobSpawnType spawnType, @Nullable SpawnGroupData spawnGroupData) { + SuchomimusVariant variant = Util.getRandom(SuchomimusVariant.values(), this.random); + this.setVariant(variant); + return super.finalizeSpawn(level, difficulty, spawnType, spawnGroupData); + } + *//*?}*/ + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return cache; + } + + @Override + protected @Nullable SoundEvent getHurtSound(DamageSource damageSource) { + return ModSounds.SUCHOMIMUS_HURT.get(); + } + + @Override + protected @Nullable SoundEvent getDeathSound() { + return ModSounds.SUCHOMIMUS_DEATH.get(); + } + + @Override + protected @Nullable SoundEvent getAmbientSound() { + return ModSounds.SUCHOMIMUS_CALL.get(); + } + + @Override + public double getFluidJumpThreshold() { + return this.getEyeHeight(); + } +} \ No newline at end of file diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TapejaraEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TapejaraEntity.java index cd84fa7..fa660c5 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TapejaraEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TapejaraEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.TapejaraVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class TapejaraEntity extends DinoEntityBase implements GeoEntity, FlyingA ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.TAPEJARA_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TherizinosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TherizinosaurusEntity.java index 76f2fe2..952b364 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TherizinosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TherizinosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.TherizinosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -79,6 +80,11 @@ public class TherizinosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.THERIZINOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ThescelosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ThescelosaurusEntity.java new file mode 100644 index 0000000..dcbe934 --- /dev/null +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ThescelosaurusEntity.java @@ -0,0 +1,325 @@ +package net.cmr.jurassicrevived.entity.custom; + +import net.cmr.jurassicrevived.block.ModBlocks; +import net.cmr.jurassicrevived.entity.ModEntities; +import net.cmr.jurassicrevived.entity.ai.DinoData; +import net.cmr.jurassicrevived.entity.ai.DinoEntityBase; +import net.cmr.jurassicrevived.entity.ai.IDinoData; +import net.cmr.jurassicrevived.entity.client.ThescelosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; +import net.cmr.jurassicrevived.sound.ModSounds; +import net.minecraft.Util; +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.util.Mth; +import net.minecraft.world.DifficultyInstance; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.*; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.ai.attributes.DefaultAttributes; +import net.minecraft.world.entity.animal.Animal; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.ServerLevelAccessor; +import net.minecraft.world.level.block.Block; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.animatable.GeoEntity; +/*? if <=1.20.1 {*/ +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animatable.instance.SingletonAnimatableInstanceCache; +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.animation.RawAnimation; +import software.bernie.geckolib.core.object.PlayState; +/*?} else {*/ +/*import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.animatable.instance.SingletonAnimatableInstanceCache; +import software.bernie.geckolib.animation.*; +*//*?}*/ + +public class ThescelosaurusEntity extends DinoEntityBase implements GeoEntity { + private AnimatableInstanceCache cache = new SingletonAnimatableInstanceCache(this); + + private static final EntityDataAccessor VARIANT = + SynchedEntityData.defineId(ThescelosaurusEntity.class, EntityDataSerializers.INT); + private static final EntityDataAccessor DATA_SYNCED_AGE = + SynchedEntityData.defineId(ThescelosaurusEntity.class, EntityDataSerializers.INT); + + // Procedural tail sway state (client-side use for rendering) + private float tailSwayOffset; // Smoothed offset in range roughly [-1, 1] + private float tailSwayVelocity; // Internal velocity for spring-damper + private float tailSwayPrev; // Previous frame value for interpolation + + public ThescelosaurusEntity(EntityType pEntityType, Level pLevel) { + super(pEntityType, pLevel); + + this.dinoData = new DinoData( + getAIConfig().maxHunger(), + getAIConfig().maxThirst(), + IDinoData.Mood.NEUTRAL, + IDinoData.Aggression.TERRITORIAL, + 0.75f, + IDinoData.DietaryClassification.HERBIVORE, + IDinoData.Type.TERRESTRIAL, + IDinoData.Group.ORNITHOPOD, + IDinoData.BirthType.EGG_LAYING, + IDinoData.ActivityPattern.CATHEMERAL + ); + } + + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.THESCELOSAURUS_SPAWN_EGG.get()); + } + + @Override + public boolean isCarnivore() { + return false; + } + + @Override + public boolean isMarine() { + return false; + } + + @Override + public boolean isAmphibious() { + return false; + } + + @Override + public Block getEggBlock() { + return ModBlocks.INCUBATED_THESCELOSAURUS_EGG.get(); + } + + @Override + public DinoAIConfig getAIConfig() { + return new DinoAIConfig(0.3D, 1.1D, 1.5D, 100, 100, 0.05f, 0.1f, 20); + } + + public static AttributeSupplier.Builder createAttributes() { + return Animal.createLivingAttributes() + .add(Attributes.MAX_HEALTH, 20D) + .add(Attributes.MOVEMENT_SPEED, 0.3D) + .add(Attributes.ARMOR, 0D) + .add(Attributes.FOLLOW_RANGE, 32D) + .add(Attributes.KNOCKBACK_RESISTANCE, 0D) + .add(Attributes.ATTACK_KNOCKBACK, 0D) + .add(Attributes.ATTACK_DAMAGE, 0D); + } + + + @Nullable + @Override + public AgeableMob getBreedOffspring(ServerLevel pLevel, AgeableMob pOtherParent) { + AgeableMob child = ModEntities.THESCELOSAURUS.get().create(pLevel); + if (child instanceof ThescelosaurusEntity baby) { + ThescelosaurusVariant randomVariant = Util.getRandom(ThescelosaurusVariant.values(), this.random); + baby.setVariant(randomVariant); + } + return child; + } + + @Override + public boolean doHurtTarget(Entity target) { + boolean hit = super.doHurtTarget(target); + if (!level().isClientSide && hit && target instanceof LivingEntity) { + if (this.level() instanceof ServerLevel serverLevel) { + this.triggerAnim("attackController", "attack"); + } + } + return hit; + } + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + controllers.add(new AnimationController<>(this, "Walk/Run/Idle", 5, state -> { + if (state.isMoving()) + return state.setAndContinue(ThescelosaurusEntity.this.isSprinting() ? RawAnimation.begin().then("anim.thescelosaurus.run", Animation.LoopType.LOOP) : RawAnimation.begin().then("anim.thescelosaurus.walk", Animation.LoopType.LOOP)); + + return state.setAndContinue(RawAnimation.begin().then("anim.thescelosaurus.idle", Animation.LoopType.LOOP)); + })); + + controllers.add(new AnimationController<>(this, "attackController", 5, state -> PlayState.STOP) + .triggerableAnim("attack", RawAnimation.begin().then("anim.thescelosaurus.attack", Animation.LoopType.PLAY_ONCE))); + } + + private float getSignedTurnDelta() { + // Only consider the body (torso) rotation so head look does not affect tail sway + return Mth.wrapDegrees(this.yBodyRot - this.yBodyRotO); + } + + private int mouthAnimCooldown = 0; + + @Override + public void tick() { + super.tick(); + if (!level().isClientSide) { + this.entityData.set(DATA_SYNCED_AGE, this.getAge()); + var maxHealthAttr = getAttribute(Attributes.MAX_HEALTH); + if (maxHealthAttr != null) { + double baseAdult = DefaultAttributes.getSupplier((EntityType) this.getType()).getValue(Attributes.MAX_HEALTH); + double desired = this.isBaby() ? baseAdult * 0.10D : baseAdult; + if (maxHealthAttr.getBaseValue() != desired) { + double oldMax = maxHealthAttr.getBaseValue(); + double healthRatio = this.getHealth() / (float) oldMax; + maxHealthAttr.setBaseValue(desired); + this.setHealth((float) (desired * Mth.clamp(healthRatio, 0.0F, 1.0F))); + } + } + } + + if (!level().isClientSide) { + if (mouthAnimCooldown > 0) { + mouthAnimCooldown--; + } else { + this.playSound(ModSounds.THESCELOSAURUS_CALL.get(), 1.0F, 1.0F); + // 30s–60s in ticks + mouthAnimCooldown = this.random.nextInt(1200 - 600 + 1) + 600; + } + } + + if (level().isClientSide) { + // Capture previous for smooth interpolation between ticks + this.tailSwayPrev = this.tailSwayOffset; + updateProceduralTailSway(); + } + } + + private void updateProceduralTailSway() { + // Turn input derived from rotation deltas; works even when standing still and turning + float turnDegrees = getSignedTurnDelta(); + + // Deadzone to ignore tiny jitter so the tail can return to center cleanly + float deadzoneDeg = 0.6f; // smaller deadzone for more responsiveness + float turnInput = 0.0f; + if (Math.abs(turnDegrees) >= deadzoneDeg) { + // Higher sensitivity so small in-place turns still affect the model + turnInput = Mth.clamp(turnDegrees / 15.0f, -1.0f, 1.0f); + } + + // Target offset: keep intuitive sign (positive input -> positive sway) + float target = turnInput; + + // One-pole low-pass (no bounce). Larger alpha => snappier and less "stiff". + float alpha = 0.24f; // try 0.20–0.30 to taste + + tailSwayOffset += (target - tailSwayOffset) * alpha; + + // Snap tiny residuals to zero so it visibly settles + if (Math.abs(tailSwayOffset) < 0.003f) { + tailSwayOffset = 0.0f; + } + + // No oscillation velocity retained + tailSwayVelocity = 0.0f; + + tailSwayOffset = Mth.clamp(tailSwayOffset, -1.5f, 1.5f); + } + + // Expose to the model for bone rotation + public float getTailSwayOffset() { + return tailSwayOffset; + } + + // Interpolated sway for smooth rendering between ticks + public float getTailSwayOffset(float partialTick) { + return Mth.lerp(Mth.clamp(partialTick, 0.0f, 1.0f), tailSwayPrev, tailSwayOffset); + } + + /*? if <=1.20.1 {*/ + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(VARIANT, 0); + this.entityData.define(DATA_SYNCED_AGE, 0); + } + /*?} else {*/ + /*@Override + protected void defineSynchedData(SynchedEntityData.Builder pBuilder) { + super.defineSynchedData(pBuilder); + pBuilder.define(VARIANT, 0); + pBuilder.define(DATA_SYNCED_AGE, 0); + } + *//*?}*/ + + public int getSyncedAge() { + return this.entityData.get(DATA_SYNCED_AGE); + } + public int getTypeVariant() { + return this.entityData.get(VARIANT); + } + + public ThescelosaurusVariant getVariant() { + return ThescelosaurusVariant.byId(this.getTypeVariant() & 255); + } + + private void setVariant(ThescelosaurusVariant variant) { + this.entityData.set(VARIANT, variant.getId() & 255); + } + + @Override + public boolean canMate(Animal other) { + if (!super.canMate(other)) return false; + if (!(other instanceof ThescelosaurusEntity that)) return false; + return this.getVariant() != that.getVariant(); + } + @Override + public void addAdditionalSaveData(CompoundTag pCompound) { + super.addAdditionalSaveData(pCompound); + pCompound.putInt("Variant", this.getTypeVariant()); + } + + @Override + public void readAdditionalSaveData(CompoundTag pCompound) { + super.readAdditionalSaveData(pCompound); + this.entityData.set(VARIANT, pCompound.getInt("Variant")); + } + + /*? if <=1.20.1 {*/ + @Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor pLevel, DifficultyInstance pDifficulty, MobSpawnType pReason, @Nullable SpawnGroupData pSpawnData, @Nullable CompoundTag pDataTag) { + ThescelosaurusVariant variant = Util.getRandom(ThescelosaurusVariant.values(), this.random); + this.setVariant(variant); + return super.finalizeSpawn(pLevel, pDifficulty, pReason, pSpawnData, pDataTag); + } + /*?} else {*/ + /*@Override + public SpawnGroupData finalizeSpawn(ServerLevelAccessor level, DifficultyInstance difficulty, MobSpawnType spawnType, @Nullable SpawnGroupData spawnGroupData) { + ThescelosaurusVariant variant = Util.getRandom(ThescelosaurusVariant.values(), this.random); + this.setVariant(variant); + return super.finalizeSpawn(level, difficulty, spawnType, spawnGroupData); + } + *//*?}*/ + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return cache; + } + + @Override + protected @Nullable SoundEvent getHurtSound(DamageSource damageSource) { + return ModSounds.THESCELOSAURUS_HURT.get(); + } + + @Override + protected @Nullable SoundEvent getDeathSound() { + return ModSounds.THESCELOSAURUS_DEATH.get(); + } + + @Override + protected @Nullable SoundEvent getAmbientSound() { + return ModSounds.THESCELOSAURUS_CALL.get(); + } + + @Override + public double getFluidJumpThreshold() { + return this.getEyeHeight(); + } +} \ No newline at end of file diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TitanosaurusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TitanosaurusEntity.java index af35b9e..e85778e 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TitanosaurusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TitanosaurusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.TitanosaurusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -81,6 +82,11 @@ public class TitanosaurusEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.TITANOSAURUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TriceratopsEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TriceratopsEntity.java index 9e334a0..527af15 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TriceratopsEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TriceratopsEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.TriceratopsVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -79,6 +80,11 @@ public class TriceratopsEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.TRICERATOPS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return false; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TroodonEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TroodonEntity.java index 9b25bfa..22be976 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TroodonEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TroodonEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.TroodonVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class TroodonEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.TROODON_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TropeognathusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TropeognathusEntity.java index f5facd2..cd4fc30 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TropeognathusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TropeognathusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.TropeognathusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class TropeognathusEntity extends DinoEntityBase implements GeoEntity, Fl ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.TROPEOGNATHUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TupuxuaraEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TupuxuaraEntity.java index add3db0..b8d692d 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TupuxuaraEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TupuxuaraEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.TupuxuaraVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class TupuxuaraEntity extends DinoEntityBase implements GeoEntity, Flying ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.TUPUXUARA_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TyrannosaurusRexEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TyrannosaurusRexEntity.java index 9f0111f..6883af0 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TyrannosaurusRexEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/TyrannosaurusRexEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.TyrannosaurusRexVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -83,6 +84,11 @@ public class TyrannosaurusRexEntity extends DinoEntityBase implements GeoEntity ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.TYRANNOSAURUS_REX_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/UtahraptorEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/UtahraptorEntity.java index 416f610..c34d302 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/UtahraptorEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/UtahraptorEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.AlbertosaurusVariant; import net.cmr.jurassicrevived.entity.client.UtahraptorVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -79,6 +80,11 @@ public class UtahraptorEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.UTAHRAPTOR_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/VelociraptorEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/VelociraptorEntity.java index 1193ae7..7de1746 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/VelociraptorEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/VelociraptorEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.VelociraptorVariant; import net.cmr.jurassicrevived.entity.client.VelociraptorVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.nbt.CompoundTag; @@ -80,6 +81,11 @@ public class VelociraptorEntity extends DinoEntityBase implements GeoEntity { ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.VELOCIRAPTOR_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ZhenyuanopterusEntity.java b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ZhenyuanopterusEntity.java index 0c1a4d3..24f2fd4 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ZhenyuanopterusEntity.java +++ b/common/src/main/java/net/cmr/jurassicrevived/entity/custom/ZhenyuanopterusEntity.java @@ -9,6 +9,7 @@ import net.cmr.jurassicrevived.entity.ai.SprintingMeleeAttackGoal; import net.cmr.jurassicrevived.entity.ai.SprintingPanicGoal; import net.cmr.jurassicrevived.entity.client.ZhenyuanopterusVariant; import net.cmr.jurassicrevived.entity.client.ZhenyuanopterusVariant; +import net.cmr.jurassicrevived.item.ModItems; import net.cmr.jurassicrevived.sound.ModSounds; import net.minecraft.Util; import net.minecraft.core.BlockPos; @@ -90,6 +91,11 @@ public class ZhenyuanopterusEntity extends DinoEntityBase implements GeoEntity, ); } + @Override + public ItemStack getPickResult() { + return new ItemStack(ModItems.ZHENYUANOPTERUS_SPAWN_EGG.get()); + } + @Override public boolean isCarnivore() { return true; diff --git a/common/src/main/java/net/cmr/jurassicrevived/item/ModCreativeTabs.java b/common/src/main/java/net/cmr/jurassicrevived/item/ModCreativeTabs.java index c16b375..f6ac50e 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/item/ModCreativeTabs.java +++ b/common/src/main/java/net/cmr/jurassicrevived/item/ModCreativeTabs.java @@ -138,6 +138,7 @@ public class ModCreativeTabs { output.accept(ModItems.CEARADACTYLUS_SKULL_FOSSIL.get()); output.accept(ModItems.CERATOSAURUS_SKULL_FOSSIL.get()); output.accept(ModItems.CHASMOSAURUS_SKULL_FOSSIL.get()); + output.accept(ModItems.CHILESAURUS_SKULL_FOSSIL.get()); output.accept(ModItems.COELOPHYSIS_SKULL_FOSSIL.get()); output.accept(ModItems.COELURUS_SKULL_FOSSIL.get()); output.accept(ModItems.COMPSOGNATHUS_SKULL_FOSSIL.get()); @@ -164,6 +165,7 @@ public class ModCreativeTabs { output.accept(ModItems.MAMENCHISAURUS_SKULL_FOSSIL.get()); output.accept(ModItems.METRIACANTHOSAURUS_SKULL_FOSSIL.get()); output.accept(ModItems.MOGANOPTERUS_SKULL_FOSSIL.get()); + output.accept(ModItems.MUSSASAURUS_SKULL_FOSSIL.get()); output.accept(ModItems.NYCTOSAURUS_SKULL_FOSSIL.get()); output.accept(ModItems.ORNITHOLESTES_SKULL_FOSSIL.get()); output.accept(ModItems.ORNITHOMIMUS_SKULL_FOSSIL.get()); @@ -184,8 +186,10 @@ public class ModCreativeTabs { output.accept(ModItems.SPINOSAURUS_SKULL_FOSSIL.get()); output.accept(ModItems.STEGOSAURUS_SKULL_FOSSIL.get()); output.accept(ModItems.STYRACOSAURUS_SKULL_FOSSIL.get()); + output.accept(ModItems.SUCHOMIMUS_SKULL_FOSSIL.get()); output.accept(ModItems.TAPEJARA_SKULL_FOSSIL.get()); output.accept(ModItems.THERIZINOSAURUS_SKULL_FOSSIL.get()); + output.accept(ModItems.THESCELOSAURUS_SKULL_FOSSIL.get()); output.accept(ModItems.TITANOSAURUS_SKULL_FOSSIL.get()); output.accept(ModItems.TRICERATOPS_SKULL_FOSSIL.get()); output.accept(ModItems.TROODON_SKULL_FOSSIL.get()); @@ -211,6 +215,7 @@ public class ModCreativeTabs { output.accept(ModItems.FRESH_CEARADACTYLUS_SKULL.get()); output.accept(ModItems.FRESH_CERATOSAURUS_SKULL.get()); output.accept(ModItems.FRESH_CHASMOSAURUS_SKULL.get()); + output.accept(ModItems.FRESH_CHILESAURUS_SKULL.get()); output.accept(ModItems.FRESH_COELOPHYSIS_SKULL.get()); output.accept(ModItems.FRESH_COELURUS_SKULL.get()); output.accept(ModItems.FRESH_COMPSOGNATHUS_SKULL.get()); @@ -240,6 +245,7 @@ public class ModCreativeTabs { output.accept(ModItems.FRESH_MAMENCHISAURUS_SKULL.get()); output.accept(ModItems.FRESH_METRIACANTHOSAURUS_SKULL.get()); output.accept(ModItems.FRESH_MOGANOPTERUS_SKULL.get()); + output.accept(ModItems.FRESH_MUSSASAURUS_SKULL.get()); output.accept(ModItems.FRESH_NYCTOSAURUS_SKULL.get()); output.accept(ModItems.FRESH_ORNITHOLESTES_SKULL.get()); output.accept(ModItems.FRESH_ORNITHOMIMUS_SKULL.get()); @@ -259,8 +265,10 @@ public class ModCreativeTabs { output.accept(ModItems.FRESH_SHANTUNGOSAURUS_SKULL.get()); output.accept(ModItems.FRESH_STEGOSAURUS_SKULL.get()); output.accept(ModItems.FRESH_STYRACOSAURUS_SKULL.get()); + output.accept(ModItems.FRESH_SUCHOMIMUS_SKULL.get()); output.accept(ModItems.FRESH_TAPEJARA_SKULL.get()); output.accept(ModItems.FRESH_THERIZINOSAURUS_SKULL.get()); + output.accept(ModItems.FRESH_THESCELOSAURUS_SKULL.get()); output.accept(ModItems.FRESH_TITANOSAURUS_SKULL.get()); output.accept(ModItems.FRESH_TRICERATOPS_SKULL.get()); output.accept(ModItems.FRESH_TROODON_SKULL.get()); @@ -286,6 +294,7 @@ public class ModCreativeTabs { output.accept(ModItems.CEARADACTYLUS_TISSUE.get()); output.accept(ModItems.CERATOSAURUS_TISSUE.get()); output.accept(ModItems.CHASMOSAURUS_TISSUE.get()); + output.accept(ModItems.CHILESAURUS_TISSUE.get()); output.accept(ModItems.COELOPHYSIS_TISSUE.get()); output.accept(ModItems.COELURUS_TISSUE.get()); output.accept(ModItems.COMPSOGNATHUS_TISSUE.get()); @@ -315,6 +324,7 @@ public class ModCreativeTabs { output.accept(ModItems.MAMENCHISAURUS_TISSUE.get()); output.accept(ModItems.METRIACANTHOSAURUS_TISSUE.get()); output.accept(ModItems.MOGANOPTERUS_TISSUE.get()); + output.accept(ModItems.MUSSASAURUS_TISSUE.get()); output.accept(ModItems.NYCTOSAURUS_TISSUE.get()); output.accept(ModItems.ORNITHOLESTES_TISSUE.get()); output.accept(ModItems.ORNITHOMIMUS_TISSUE.get()); @@ -335,8 +345,10 @@ public class ModCreativeTabs { output.accept(ModItems.SPINOSAURUS_TISSUE.get()); output.accept(ModItems.STEGOSAURUS_TISSUE.get()); output.accept(ModItems.STYRACOSAURUS_TISSUE.get()); + output.accept(ModItems.SUCHOMIMUS_TISSUE.get()); output.accept(ModItems.TAPEJARA_TISSUE.get()); output.accept(ModItems.THERIZINOSAURUS_TISSUE.get()); + output.accept(ModItems.THESCELOSAURUS_TISSUE.get()); output.accept(ModItems.TITANOSAURUS_TISSUE.get()); output.accept(ModItems.TRICERATOPS_TISSUE.get()); output.accept(ModItems.TROODON_TISSUE.get()); @@ -362,6 +374,7 @@ public class ModCreativeTabs { output.accept(ModItems.CEARADACTYLUS_DNA.get()); output.accept(ModItems.CERATOSAURUS_DNA.get()); output.accept(ModItems.CHASMOSAURUS_DNA.get()); + output.accept(ModItems.CHILESAURUS_DNA.get()); output.accept(ModItems.COELOPHYSIS_DNA.get()); output.accept(ModItems.COELURUS_DNA.get()); output.accept(ModItems.COMPSOGNATHUS_DNA.get()); @@ -391,6 +404,7 @@ public class ModCreativeTabs { output.accept(ModItems.MAMENCHISAURUS_DNA.get()); output.accept(ModItems.METRIACANTHOSAURUS_DNA.get()); output.accept(ModItems.MOGANOPTERUS_DNA.get()); + output.accept(ModItems.MUSSASAURUS_DNA.get()); output.accept(ModItems.NYCTOSAURUS_DNA.get()); output.accept(ModItems.ORNITHOLESTES_DNA.get()); output.accept(ModItems.ORNITHOMIMUS_DNA.get()); @@ -411,8 +425,10 @@ public class ModCreativeTabs { output.accept(ModItems.SPINOSAURUS_DNA.get()); output.accept(ModItems.STEGOSAURUS_DNA.get()); output.accept(ModItems.STYRACOSAURUS_DNA.get()); + output.accept(ModItems.SUCHOMIMUS_DNA.get()); output.accept(ModItems.TAPEJARA_DNA.get()); output.accept(ModItems.THERIZINOSAURUS_DNA.get()); + output.accept(ModItems.THESCELOSAURUS_DNA.get()); output.accept(ModItems.TITANOSAURUS_DNA.get()); output.accept(ModItems.TRICERATOPS_DNA.get()); output.accept(ModItems.TROODON_DNA.get()); @@ -438,6 +454,7 @@ public class ModCreativeTabs { output.accept(ModItems.CEARADACTYLUS_SYRINGE.get()); output.accept(ModItems.CERATOSAURUS_SYRINGE.get()); output.accept(ModItems.CHASMOSAURUS_SYRINGE.get()); + output.accept(ModItems.CHILESAURUS_SYRINGE.get()); output.accept(ModItems.COELOPHYSIS_SYRINGE.get()); output.accept(ModItems.COELURUS_SYRINGE.get()); output.accept(ModItems.COMPSOGNATHUS_SYRINGE.get()); @@ -467,6 +484,7 @@ public class ModCreativeTabs { output.accept(ModItems.MAMENCHISAURUS_SYRINGE.get()); output.accept(ModItems.METRIACANTHOSAURUS_SYRINGE.get()); output.accept(ModItems.MOGANOPTERUS_SYRINGE.get()); + output.accept(ModItems.MUSSASAURUS_SYRINGE.get()); output.accept(ModItems.NYCTOSAURUS_SYRINGE.get()); output.accept(ModItems.ORNITHOLESTES_SYRINGE.get()); output.accept(ModItems.ORNITHOMIMUS_SYRINGE.get()); @@ -487,8 +505,10 @@ public class ModCreativeTabs { output.accept(ModItems.SPINOSAURUS_SYRINGE.get()); output.accept(ModItems.STEGOSAURUS_SYRINGE.get()); output.accept(ModItems.STYRACOSAURUS_SYRINGE.get()); + output.accept(ModItems.SUCHOMIMUS_SYRINGE.get()); output.accept(ModItems.TAPEJARA_SYRINGE.get()); output.accept(ModItems.THERIZINOSAURUS_SYRINGE.get()); + output.accept(ModItems.THESCELOSAURUS_SYRINGE.get()); output.accept(ModItems.TITANOSAURUS_SYRINGE.get()); output.accept(ModItems.TRICERATOPS_SYRINGE.get()); output.accept(ModItems.TROODON_SYRINGE.get()); @@ -514,6 +534,7 @@ public class ModCreativeTabs { output.accept(ModBlocks.CEARADACTYLUS_EGG.get()); output.accept(ModBlocks.CERATOSAURUS_EGG.get()); output.accept(ModBlocks.CHASMOSAURUS_EGG.get()); + output.accept(ModBlocks.CHILESAURUS_EGG.get()); output.accept(ModBlocks.COELOPHYSIS_EGG.get()); output.accept(ModBlocks.COELURUS_EGG.get()); output.accept(ModBlocks.COMPSOGNATHUS_EGG.get()); @@ -543,6 +564,7 @@ public class ModCreativeTabs { output.accept(ModBlocks.MAMENCHISAURUS_EGG.get()); output.accept(ModBlocks.METRIACANTHOSAURUS_EGG.get()); output.accept(ModBlocks.MOGANOPTERUS_EGG.get()); + output.accept(ModBlocks.MUSSASAURUS_EGG.get()); output.accept(ModBlocks.NYCTOSAURUS_EGG.get()); output.accept(ModBlocks.ORNITHOLESTES_EGG.get()); output.accept(ModBlocks.ORNITHOMIMUS_EGG.get()); @@ -562,8 +584,10 @@ public class ModCreativeTabs { output.accept(ModBlocks.SPINOSAURUS_EGG.get()); output.accept(ModBlocks.STEGOSAURUS_EGG.get()); output.accept(ModBlocks.STYRACOSAURUS_EGG.get()); + output.accept(ModBlocks.SUCHOMIMUS_EGG.get()); output.accept(ModBlocks.TAPEJARA_EGG.get()); output.accept(ModBlocks.THERIZINOSAURUS_EGG.get()); + output.accept(ModBlocks.THESCELOSAURUS_EGG.get()); output.accept(ModBlocks.TITANOSAURUS_EGG.get()); output.accept(ModBlocks.TRICERATOPS_EGG.get()); output.accept(ModBlocks.TROODON_EGG.get()); @@ -595,6 +619,7 @@ public class ModCreativeTabs { output.accept(ModItems.CEARADACTYLUS_SPAWN_EGG.get()); output.accept(ModItems.CERATOSAURUS_SPAWN_EGG.get()); output.accept(ModItems.CHASMOSAURUS_SPAWN_EGG.get()); + output.accept(ModItems.CHILESAURUS_SPAWN_EGG.get()); output.accept(ModItems.COELOPHYSIS_SPAWN_EGG.get()); output.accept(ModItems.COELURUS_SPAWN_EGG.get()); output.accept(ModItems.COMPSOGNATHUS_SPAWN_EGG.get()); @@ -624,6 +649,7 @@ public class ModCreativeTabs { output.accept(ModItems.MAMENCHISAURUS_SPAWN_EGG.get()); output.accept(ModItems.METRIACANTHOSAURUS_SPAWN_EGG.get()); output.accept(ModItems.MOGANOPTERUS_SPAWN_EGG.get()); + output.accept(ModItems.MUSSASAURUS_SPAWN_EGG.get()); output.accept(ModItems.NYCTOSAURUS_SPAWN_EGG.get()); output.accept(ModItems.ORNITHOLESTES_SPAWN_EGG.get()); output.accept(ModItems.ORNITHOMIMUS_SPAWN_EGG.get()); @@ -644,8 +670,10 @@ public class ModCreativeTabs { output.accept(ModItems.SPINOSAURUS_SPAWN_EGG.get()); output.accept(ModItems.STEGOSAURUS_SPAWN_EGG.get()); output.accept(ModItems.STYRACOSAURUS_SPAWN_EGG.get()); + output.accept(ModItems.SUCHOMIMUS_SPAWN_EGG.get()); output.accept(ModItems.TAPEJARA_SPAWN_EGG.get()); output.accept(ModItems.THERIZINOSAURUS_SPAWN_EGG.get()); + output.accept(ModItems.THESCELOSAURUS_SPAWN_EGG.get()); output.accept(ModItems.TITANOSAURUS_SPAWN_EGG.get()); output.accept(ModItems.TRICERATOPS_SPAWN_EGG.get()); output.accept(ModItems.TROODON_SPAWN_EGG.get()); diff --git a/common/src/main/java/net/cmr/jurassicrevived/item/ModItems.java b/common/src/main/java/net/cmr/jurassicrevived/item/ModItems.java index f7785d7..89805cc 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/item/ModItems.java +++ b/common/src/main/java/net/cmr/jurassicrevived/item/ModItems.java @@ -181,6 +181,14 @@ public class ModItems { () -> new CustomGenderedSpawnEggItem(ModEntities.UTAHRAPTOR, 0xff474131, 0xffdad8db, new Item.Properties())); public static final RegistrySupplier ACHILLOBATOR_SPAWN_EGG = ITEMS.register("achillobator_spawn_egg", () -> new CustomGenderedSpawnEggItem(ModEntities.ACHILLOBATOR, 0xffcbb791, 0xff8e4338, new Item.Properties())); + public static final RegistrySupplier SUCHOMIMUS_SPAWN_EGG = ITEMS.register("suchomimus_spawn_egg", + () -> new CustomGenderedSpawnEggItem(ModEntities.SUCHOMIMUS, 0xff455565, 0xffccb674, new Item.Properties())); + public static final RegistrySupplier CHILESAURUS_SPAWN_EGG = ITEMS.register("chilesaurus_spawn_egg", + () -> new CustomGenderedSpawnEggItem(ModEntities.CHILESAURUS, 0xff4fa0ba, 0xff7e9148, new Item.Properties())); + public static final RegistrySupplier THESCELOSAURUS_SPAWN_EGG = ITEMS.register("thescelosaurus_spawn_egg", + () -> new CustomGenderedSpawnEggItem(ModEntities.THESCELOSAURUS, 0xff6d7a83, 0xffbac6d1, new Item.Properties())); + public static final RegistrySupplier MUSSASAURUS_SPAWN_EGG = ITEMS.register("mussasaurus_spawn_egg", + () -> new CustomGenderedSpawnEggItem(ModEntities.MUSSASAURUS, 0xff6c6724, 0xff222611, new Item.Properties())); public static final RegistrySupplier TEST_TUBE = ITEMS.register("test_tube", () -> new Item(new Item.Properties().stacksTo(16))); @@ -265,6 +273,10 @@ public class ModItems { public static final RegistrySupplier UTAHRAPTOR_SKULL_FOSSIL = ITEMS.register("utahraptor_skull_fossil", () -> new Item(new Item.Properties().stacksTo(16))); public static final RegistrySupplier ZHENYUANOPTERUS_SKULL_FOSSIL = ITEMS.register("zhenyuanopterus_skull_fossil", () -> new Item(new Item.Properties().stacksTo(16))); public static final RegistrySupplier ACHILLOBATOR_SKULL_FOSSIL = ITEMS.register("achillobator_skull_fossil", () -> new Item(new Item.Properties().stacksTo(16))); + public static final RegistrySupplier SUCHOMIMUS_SKULL_FOSSIL = ITEMS.register("suchomimus_skull_fossil", () -> new Item(new Item.Properties().stacksTo(16))); + public static final RegistrySupplier CHILESAURUS_SKULL_FOSSIL = ITEMS.register("chilesaurus_skull_fossil", () -> new Item(new Item.Properties().stacksTo(16))); + public static final RegistrySupplier THESCELOSAURUS_SKULL_FOSSIL = ITEMS.register("thescelosaurus_skull_fossil", () -> new Item(new Item.Properties().stacksTo(16))); + public static final RegistrySupplier MUSSASAURUS_SKULL_FOSSIL = ITEMS.register("mussasaurus_skull_fossil", () -> new Item(new Item.Properties().stacksTo(16))); public static final RegistrySupplier FRESH_VELOCIRAPTOR_SKULL = ITEMS.register("fresh_velociraptor_skull", () -> new Item(new Item.Properties().stacksTo(16))); @@ -341,6 +353,10 @@ public class ModItems { public static final RegistrySupplier FRESH_UTAHRAPTOR_SKULL = ITEMS.register("fresh_utahraptor_skull", () -> new Item(new Item.Properties().stacksTo(16))); public static final RegistrySupplier FRESH_ZHENYUANOPTERUS_SKULL = ITEMS.register("fresh_zhenyuanopterus_skull", () -> new Item(new Item.Properties().stacksTo(16))); public static final RegistrySupplier FRESH_ACHILLOBATOR_SKULL = ITEMS.register("fresh_achillobator_skull", () -> new Item(new Item.Properties().stacksTo(16))); + public static final RegistrySupplier FRESH_SUCHOMIMUS_SKULL = ITEMS.register("fresh_suchomimus_skull", () -> new Item(new Item.Properties().stacksTo(16))); + public static final RegistrySupplier FRESH_CHILESAURUS_SKULL = ITEMS.register("fresh_chilesaurus_skull", () -> new Item(new Item.Properties().stacksTo(16))); + public static final RegistrySupplier FRESH_THESCELOSAURUS_SKULL = ITEMS.register("fresh_thescelosaurus_skull", () -> new Item(new Item.Properties().stacksTo(16))); + public static final RegistrySupplier FRESH_MUSSASAURUS_SKULL = ITEMS.register("fresh_mussasaurus_skull", () -> new Item(new Item.Properties().stacksTo(16))); // Tissue group @@ -418,6 +434,10 @@ public class ModItems { public static final RegistrySupplier UTAHRAPTOR_TISSUE = ITEMS.register("utahraptor_tissue", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.EPIC))); public static final RegistrySupplier ZHENYUANOPTERUS_TISSUE = ITEMS.register("zhenyuanopterus_tissue", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.EPIC))); public static final RegistrySupplier ACHILLOBATOR_TISSUE = ITEMS.register("achillobator_tissue", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.EPIC))); + public static final RegistrySupplier SUCHOMIMUS_TISSUE = ITEMS.register("suchomimus_tissue", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.EPIC))); + public static final RegistrySupplier CHILESAURUS_TISSUE = ITEMS.register("chilesaurus_tissue", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.EPIC))); + public static final RegistrySupplier THESCELOSAURUS_TISSUE = ITEMS.register("thescelosaurus_tissue", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.EPIC))); + public static final RegistrySupplier MUSSASAURUS_TISSUE = ITEMS.register("mussasaurus_tissue", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.EPIC))); // DNA group @@ -495,6 +515,10 @@ public class ModItems { public static final RegistrySupplier UTAHRAPTOR_DNA = ITEMS.register("utahraptor_dna", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.RARE))); public static final RegistrySupplier ZHENYUANOPTERUS_DNA = ITEMS.register("zhenyuanopterus_dna", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.RARE))); public static final RegistrySupplier ACHILLOBATOR_DNA = ITEMS.register("achillobator_dna", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.RARE))); + public static final RegistrySupplier SUCHOMIMUS_DNA = ITEMS.register("suchomimus_dna", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.RARE))); + public static final RegistrySupplier CHILESAURUS_DNA = ITEMS.register("chilesaurus_dna", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.RARE))); + public static final RegistrySupplier THESCELOSAURUS_DNA = ITEMS.register("thescelosaurus_dna", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.RARE))); + public static final RegistrySupplier MUSSASAURUS_DNA = ITEMS.register("mussasaurus_dna", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.RARE))); // Syringe group @@ -572,6 +596,10 @@ public class ModItems { public static final RegistrySupplier UTAHRAPTOR_SYRINGE = ITEMS.register("utahraptor_syringe", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.UNCOMMON))); public static final RegistrySupplier ZHENYUANOPTERUS_SYRINGE = ITEMS.register("zhenyuanopterus_syringe", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.UNCOMMON))); public static final RegistrySupplier ACHILLOBATOR_SYRINGE = ITEMS.register("achillobator_syringe", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.UNCOMMON))); + public static final RegistrySupplier SUCHOMIMUS_SYRINGE = ITEMS.register("suchomimus_syringe", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.UNCOMMON))); + public static final RegistrySupplier CHILESAURUS_SYRINGE = ITEMS.register("chilesaurus_syringe", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.UNCOMMON))); + public static final RegistrySupplier THESCELOSAURUS_SYRINGE = ITEMS.register("thescelosaurus_syringe", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.UNCOMMON))); + public static final RegistrySupplier MUSSASAURUS_SYRINGE = ITEMS.register("mussasaurus_syringe", () -> new Item(new Item.Properties().stacksTo(8).rarity(Rarity.UNCOMMON))); public static void register() { diff --git a/common/src/main/java/net/cmr/jurassicrevived/item/custom/CustomGenderedSpawnEggItem.java b/common/src/main/java/net/cmr/jurassicrevived/item/custom/CustomGenderedSpawnEggItem.java index 45652f2..16842f5 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/item/custom/CustomGenderedSpawnEggItem.java +++ b/common/src/main/java/net/cmr/jurassicrevived/item/custom/CustomGenderedSpawnEggItem.java @@ -38,6 +38,7 @@ public class CustomGenderedSpawnEggItem extends SpawnEggItem { private static final String KEY_VARIANT = "Variant"; private static final String KEY_ENTITY_TAG = "EntityTag"; private static final int VARIANT_COUNT = 2; // 0=Male, 1=Female + private static final int SELECTION_MODE_COUNT = 3; // 0=Male, 1=Female, 2=Random private final Supplier> typeSupplier; @@ -67,16 +68,16 @@ public class CustomGenderedSpawnEggItem extends SpawnEggItem { if (data == null) return 0; CompoundTag tag = data.copyTag(); if (!tag.contains(KEY_SELECTED_VARIANT)) return 0; - return Math.floorMod(tag.getInt(KEY_SELECTED_VARIANT), VARIANT_COUNT); + return Math.floorMod(tag.getInt(KEY_SELECTED_VARIANT), SELECTION_MODE_COUNT); *///?} else { CompoundTag tag = stack.getTag(); if (tag == null || !tag.contains(KEY_SELECTED_VARIANT)) return 0; - return Math.floorMod(tag.getInt(KEY_SELECTED_VARIANT), VARIANT_COUNT); + return Math.floorMod(tag.getInt(KEY_SELECTED_VARIANT), SELECTION_MODE_COUNT); //?} } private static void setSelectedVariant(ItemStack stack, int variant) { - int v = Math.floorMod(variant, VARIANT_COUNT); + int v = Math.floorMod(variant, SELECTION_MODE_COUNT); //? if >1.20.1 { /*stack.update(DataComponents.CUSTOM_DATA, CustomData.EMPTY, existing -> { CompoundTag tag = existing.copyTag(); @@ -89,11 +90,12 @@ public class CustomGenderedSpawnEggItem extends SpawnEggItem { } private static void cycleVariant(ItemStack stack) { - setSelectedVariant(stack, (getSelectedVariant(stack) + 1) % VARIANT_COUNT); + setSelectedVariant(stack, (getSelectedVariant(stack) + 1) % SELECTION_MODE_COUNT); } - private void ensureEntityDataHasVariant(ItemStack stack) { - final int variant = getSelectedVariant(stack); + private void ensureEntityDataHasVariant(ItemStack stack, Level level) { + final int selectedVariant = getSelectedVariant(stack); + final int variant = selectedVariant == 2 ? level.random.nextInt(VARIANT_COUNT) : selectedVariant; //? if >1.20.1 { /*stack.update(DataComponents.ENTITY_DATA, CustomData.EMPTY, existing -> { CompoundTag tag = existing.copyTag(); @@ -122,7 +124,7 @@ public class CustomGenderedSpawnEggItem extends SpawnEggItem { return InteractionResultHolder.sidedSuccess(stack, level.isClientSide); } - ensureEntityDataHasVariant(stack); + ensureEntityDataHasVariant(stack, level); return super.use(level, player, hand); } @@ -141,7 +143,7 @@ public class CustomGenderedSpawnEggItem extends SpawnEggItem { } if (player == null || !player.isSecondaryUseActive()) { - ensureEntityDataHasVariant(context.getItemInHand()); + ensureEntityDataHasVariant(context.getItemInHand(), level); } return super.useOn(context); } @@ -162,7 +164,11 @@ public class CustomGenderedSpawnEggItem extends SpawnEggItem { private void addGenderTooltip(ItemStack stack, List tooltip) { int v = getSelectedVariant(stack); - String genderText = (v == 0) ? "Male" : "Female"; + String genderText = switch (v) { + case 0 -> "Male"; + case 1 -> "Female"; + default -> "Random"; + }; tooltip.add(Component.translatable("tooltip.jurassicrevived.gender", genderText)); tooltip.add(Component.translatable("tooltip.jurassicrevived.gender.hint", "Shift-Right-Click")); } @@ -170,9 +176,12 @@ public class CustomGenderedSpawnEggItem extends SpawnEggItem { @Override public Component getName(ItemStack stack) { Component base = super.getName(stack); - boolean male = getSelectedVariant(stack) == 0; - Component gender = Component.literal(male ? "Male" : "Female") - .withStyle(male ? ChatFormatting.AQUA : ChatFormatting.LIGHT_PURPLE); + int variant = getSelectedVariant(stack); + Component gender = switch (variant) { + case 0 -> Component.literal("Male").withStyle(ChatFormatting.AQUA); + case 1 -> Component.literal("Female").withStyle(ChatFormatting.LIGHT_PURPLE); + default -> Component.literal("Random").withStyle(ChatFormatting.YELLOW); + }; return base.copy().append(Component.literal(" (")).append(gender).append(Component.literal(")")); } diff --git a/common/src/main/java/net/cmr/jurassicrevived/sound/ModSounds.java b/common/src/main/java/net/cmr/jurassicrevived/sound/ModSounds.java index 7be933e..f78e69c 100755 --- a/common/src/main/java/net/cmr/jurassicrevived/sound/ModSounds.java +++ b/common/src/main/java/net/cmr/jurassicrevived/sound/ModSounds.java @@ -356,6 +356,23 @@ public class ModSounds { public static final Supplier ACHILLOBATOR_HURT = registerSoundEvent("achillobator_hurt"); public static final Supplier ACHILLOBATOR_DEATH = registerSoundEvent("achillobator_death"); + public static final Supplier SUCHOMIMUS_CALL = registerSoundEvent("suchomimus_call"); + public static final Supplier SUCHOMIMUS_ATTACK = registerSoundEvent("suchomimus_attack"); + public static final Supplier SUCHOMIMUS_HURT = registerSoundEvent("suchomimus_hurt"); + public static final Supplier SUCHOMIMUS_DEATH = registerSoundEvent("suchomimus_death"); + + public static final Supplier CHILESAURUS_CALL = registerSoundEvent("chilesaurus_call"); + public static final Supplier CHILESAURUS_HURT = registerSoundEvent("chilesaurus_hurt"); + public static final Supplier CHILESAURUS_DEATH = registerSoundEvent("chilesaurus_death"); + + public static final Supplier MUSSASAURUS_CALL = registerSoundEvent("mussasaurus_call"); + public static final Supplier MUSSASAURUS_HURT = registerSoundEvent("mussasaurus_hurt"); + public static final Supplier MUSSASAURUS_DEATH = registerSoundEvent("mussasaurus_death"); + + public static final Supplier THESCELOSAURUS_CALL = registerSoundEvent("thescelosaurus_call"); + public static final Supplier THESCELOSAURUS_HURT = registerSoundEvent("thescelosaurus_hurt"); + public static final Supplier THESCELOSAURUS_DEATH = registerSoundEvent("thescelosaurus_death"); + private static Supplier registerSoundEvent(String name) { ResourceLocation id = Constants.rl(name); diff --git a/common/src/main/java/net/cmr/jurassicrevived/util/ModTags.java b/common/src/main/java/net/cmr/jurassicrevived/util/ModTags.java index a2bc9f4..6b1ffe2 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/util/ModTags.java +++ b/common/src/main/java/net/cmr/jurassicrevived/util/ModTags.java @@ -4,6 +4,7 @@ import net.cmr.jurassicrevived.Constants; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.EntityType; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; @@ -11,6 +12,7 @@ public class ModTags { public static class Blocks { public static final TagKey AQUATIC_PLACEMENT_REPLACEABLES = createTag("aquatic_placement_replaceables"); public static final TagKey INCUBATED_EGGS = createTag("incubated_eggs"); + public static final TagKey PLANTS = createTag("plants"); private static TagKey createTag(String name) { //? if >1.20.1 { @@ -20,6 +22,24 @@ public class ModTags { //?} } } + public static class EntityTypes { + public static TagKey> dino(String namespace, String entityIdPath) { + return TagKey.create(Registries.ENTITY_TYPE, Constants.r2(namespace + ":" + entityIdPath)); + } + + public static TagKey> forgeDino(String entityIdPath) { + return dino("forge", entityIdPath); + } + + public static TagKey> neoforgeDino(String entityIdPath) { + return dino("neoforge", entityIdPath); + } + + public static TagKey> fabricDino(String entityIdPath) { + return dino("fabric", entityIdPath); + } + } + public static class Items { public static final TagKey TISSUES = createTag("tissues"); diff --git a/common/src/main/java/net/cmr/jurassicrevived/worldgen/ModSpawnDefinitions.java b/common/src/main/java/net/cmr/jurassicrevived/worldgen/ModSpawnDefinitions.java index 65b1916..b6969e5 100644 --- a/common/src/main/java/net/cmr/jurassicrevived/worldgen/ModSpawnDefinitions.java +++ b/common/src/main/java/net/cmr/jurassicrevived/worldgen/ModSpawnDefinitions.java @@ -14,77 +14,81 @@ public final class ModSpawnDefinitions { } public static final List NATURAL_SPAWNS = List.of( - spawn("albertosaurus", ModEntities.ALBERTOSAURUS, 9, 1, 2, BiomeTags.IS_TAIGA), - spawn("allosaurus", ModEntities.ALLOSAURUS, 8, 1, 2, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("alvarezsaurus", ModEntities.ALVAREZSAURUS, 21, 2, 4, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("ankylosaurus", ModEntities.ANKYLOSAURUS, 11, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), - spawn("apatosaurus", ModEntities.APATOSAURUS, 8, 1, 2, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("arambourgiania", ModEntities.ARAMBOURGIANIA, 4, 2, 3, BiomeTags.IS_MOUNTAIN), - spawn("baryonyx", ModEntities.BARYONYX, 5, 1, 2, BiomeTags.IS_OVERWORLD), - spawn("brachiosaurus", ModEntities.BRACHIOSAURUS, 4, 1, 2, BiomeTags.IS_FOREST, BiomeTags.IS_TAIGA, BiomeTags.IS_OVERWORLD), - spawn("carcharodontosaurus", ModEntities.CARCHARODONTOSAURUS, 4, 1, 2, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("carnotaurus", ModEntities.CARNOTAURUS, 8, 2, 3, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("cearadactylus", ModEntities.CEARADACTYLUS, 4, 2, 4, BiomeTags.IS_BEACH, BiomeTags.IS_MOUNTAIN), - spawn("ceratosaurus", ModEntities.CERATOSAURUS, 6, 1, 2, BiomeTags.IS_JUNGLE, BiomeTags.IS_OVERWORLD), - spawn("chasmosaurus", ModEntities.CHASMOSAURUS, 12, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_OVERWORLD), - spawn("coelophysis", ModEntities.COELOPHYSIS, 20, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_TAIGA), - spawn("coelurus", ModEntities.COELURUS, 21, 2, 4, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("compsognathus", ModEntities.COMPSOGNATHUS, 27, 3, 6, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("concavenator", ModEntities.CONCAVENATOR, 7, 2, 3, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("corythosaurus", ModEntities.CORYTHOSAURUS, 18, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("deinonychus", ModEntities.DEINONYCHUS, 10, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), - spawn("dilophosaurus", ModEntities.DILOPHOSAURUS, 17, 2, 3, BiomeTags.IS_JUNGLE), - spawn("dimorphodon", ModEntities.DIMORPHODON, 4, 2, 4, BiomeTags.IS_MOUNTAIN), - spawn("diplodocus", ModEntities.DIPLODOCUS, 6, 1, 2, BiomeTags.IS_FOREST, BiomeTags.IS_TAIGA), - spawn("dryosaurus", ModEntities.DRYOSAURUS, 24, 3, 6, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("edmontosaurus", ModEntities.EDMONTOSAURUS, 17, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_OVERWORLD), - spawn("gallimimus", ModEntities.GALLIMIMUS, 27, 3, 6, BiomeTags.IS_OVERWORLD), - spawn("geosternbergia", ModEntities.GEOSTERNBERGIA, 4, 2, 4, BiomeTags.IS_BEACH, BiomeTags.IS_MOUNTAIN), - spawn("giganotosaurus", ModEntities.GIGANOTOSAURUS, 2, 1, 2, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("guanlong", ModEntities.GUANLONG, 15, 2, 3, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("guidraco", ModEntities.GUIDRACO, 4, 2, 3, BiomeTags.IS_MOUNTAIN), - spawn("hadrosaurus", ModEntities.HADROSAURUS, 17, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("herrerasaurus", ModEntities.HERRERASAURUS, 18, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), - spawn("hypsilophodon", ModEntities.HYPSILOPHODON, 25, 3, 6, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("inostrancevia", ModEntities.INOSTRANCEVIA, 3, 2, 3, BiomeTags.IS_TAIGA), - spawn("lambeosaurus", ModEntities.LAMBEOSAURUS, 18, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("ludodactylus", ModEntities.LUDODACTYLUS, 4, 2, 4, BiomeTags.IS_JUNGLE, BiomeTags.IS_MOUNTAIN), - spawn("majungasaurus", ModEntities.MAJUNGASAURUS, 5, 1, 2, BiomeTags.IS_JUNGLE, BiomeTags.IS_OVERWORLD), - spawn("mamenchisaurus", ModEntities.MAMENCHISAURUS, 4, 1, 2, BiomeTags.IS_JUNGLE), - spawn("metriacanthosaurus", ModEntities.METRIACANTHOSAURUS, 7, 2, 3, BiomeTags.IS_JUNGLE, BiomeTags.IS_FOREST), - spawn("moganopterus", ModEntities.MOGANOPTERUS, 4, 2, 3, BiomeTags.IS_JUNGLE, BiomeTags.IS_MOUNTAIN), - spawn("nyctosaurus", ModEntities.NYCTOSAURUS, 4, 2, 3, BiomeTags.IS_BEACH, BiomeTags.IS_MOUNTAIN), - spawn("ornitholestes", ModEntities.ORNITHOLESTES, 20, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("ornithomimus", ModEntities.ORNITHOMIMUS, 20, 3, 6, BiomeTags.IS_OVERWORLD), - spawn("ouranosaurus", ModEntities.OURANOSAURUS, 17, 3, 5, BiomeTags.IS_OVERWORLD), - spawn("oviraptor", ModEntities.OVIRAPTOR, 25, 3, 5, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("pachycephalosaurus", ModEntities.PACHYCEPHALOSAURUS, 17, 2, 4, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("parasaurolophus", ModEntities.PARASAUROLOPHUS, 17, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("proceratosaurus", ModEntities.PROCERATOSAURUS, 18, 2, 4, BiomeTags.IS_FOREST, BiomeTags.IS_TAIGA), - spawn("procompsognathus", ModEntities.PROCOMPSOGNATHUS, 25, 3, 5, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("protoceratops", ModEntities.PROTOCERATOPS, 21, 3, 5, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("pteranodon", ModEntities.PTERANODON, 5, 2, 5, BiomeTags.IS_BEACH, BiomeTags.IS_MOUNTAIN), - spawn("pterodaustro", ModEntities.PTERODAUSTRO, 9, 2, 5, BiomeTags.IS_BEACH, BiomeTags.IS_OVERWORLD), + spawn("albertosaurus", ModEntities.ALBERTOSAURUS, 3, 1, 2, BiomeTags.IS_TAIGA), + spawn("allosaurus", ModEntities.ALLOSAURUS, 2, 1, 2, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("alvarezsaurus", ModEntities.ALVAREZSAURUS, 6, 2, 4, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("ankylosaurus", ModEntities.ANKYLOSAURUS, 4, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), + spawn("apatosaurus", ModEntities.APATOSAURUS, 3, 1, 2, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("arambourgiania", ModEntities.ARAMBOURGIANIA, 2, 2, 3, BiomeTags.IS_MOUNTAIN), + spawn("baryonyx", ModEntities.BARYONYX, 2, 1, 2, BiomeTags.IS_OVERWORLD), + spawn("suchomimus", ModEntities.SUCHOMIMUS, 2, 1, 2, BiomeTags.IS_OVERWORLD), + spawn("brachiosaurus", ModEntities.BRACHIOSAURUS, 2, 1, 2, BiomeTags.IS_FOREST, BiomeTags.IS_TAIGA, BiomeTags.IS_OVERWORLD), + spawn("carcharodontosaurus", ModEntities.CARCHARODONTOSAURUS, 2, 1, 2, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("carnotaurus", ModEntities.CARNOTAURUS, 3, 2, 3, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("cearadactylus", ModEntities.CEARADACTYLUS, 2, 2, 4, BiomeTags.IS_BEACH, BiomeTags.IS_MOUNTAIN), + spawn("ceratosaurus", ModEntities.CERATOSAURUS, 2, 1, 2, BiomeTags.IS_JUNGLE, BiomeTags.IS_OVERWORLD), + spawn("chasmosaurus", ModEntities.CHASMOSAURUS, 3, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_OVERWORLD), + spawn("coelophysis", ModEntities.COELOPHYSIS, 5, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_TAIGA), + spawn("coelurus", ModEntities.COELURUS, 6, 2, 4, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("compsognathus", ModEntities.COMPSOGNATHUS, 6, 3, 6, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("concavenator", ModEntities.CONCAVENATOR, 3, 2, 3, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("corythosaurus", ModEntities.CORYTHOSAURUS, 4, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("deinonychus", ModEntities.DEINONYCHUS, 3, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), + spawn("dilophosaurus", ModEntities.DILOPHOSAURUS, 5, 2, 3, BiomeTags.IS_JUNGLE), + spawn("dimorphodon", ModEntities.DIMORPHODON, 2, 2, 4, BiomeTags.IS_MOUNTAIN), + spawn("diplodocus", ModEntities.DIPLODOCUS, 3, 1, 2, BiomeTags.IS_FOREST, BiomeTags.IS_TAIGA), + spawn("dryosaurus", ModEntities.DRYOSAURUS, 6, 3, 6, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("thescelosaurus", ModEntities.THESCELOSAURUS, 6, 3, 6, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("chilesaurus", ModEntities.CHILESAURUS, 6, 3, 6, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("edmontosaurus", ModEntities.EDMONTOSAURUS, 4, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_OVERWORLD), + spawn("gallimimus", ModEntities.GALLIMIMUS, 6, 3, 6, BiomeTags.IS_OVERWORLD), + spawn("geosternbergia", ModEntities.GEOSTERNBERGIA, 2, 2, 4, BiomeTags.IS_BEACH, BiomeTags.IS_MOUNTAIN), + spawn("giganotosaurus", ModEntities.GIGANOTOSAURUS, 1, 1, 2, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("guanlong", ModEntities.GUANLONG, 4, 2, 3, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("guidraco", ModEntities.GUIDRACO, 2, 2, 3, BiomeTags.IS_MOUNTAIN), + spawn("hadrosaurus", ModEntities.HADROSAURUS, 4, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("herrerasaurus", ModEntities.HERRERASAURUS, 4, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), + spawn("hypsilophodon", ModEntities.HYPSILOPHODON, 6, 3, 6, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("inostrancevia", ModEntities.INOSTRANCEVIA, 2, 2, 3, BiomeTags.IS_TAIGA), + spawn("lambeosaurus", ModEntities.LAMBEOSAURUS, 4, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("ludodactylus", ModEntities.LUDODACTYLUS, 2, 2, 4, BiomeTags.IS_JUNGLE, BiomeTags.IS_MOUNTAIN), + spawn("majungasaurus", ModEntities.MAJUNGASAURUS, 3, 1, 2, BiomeTags.IS_JUNGLE, BiomeTags.IS_OVERWORLD), + spawn("mamenchisaurus", ModEntities.MAMENCHISAURUS, 2, 1, 2, BiomeTags.IS_JUNGLE), + spawn("metriacanthosaurus", ModEntities.METRIACANTHOSAURUS, 3, 2, 3, BiomeTags.IS_JUNGLE, BiomeTags.IS_FOREST), + spawn("moganopterus", ModEntities.MOGANOPTERUS, 2, 2, 3, BiomeTags.IS_JUNGLE, BiomeTags.IS_MOUNTAIN), + spawn("nyctosaurus", ModEntities.NYCTOSAURUS, 2, 2, 3, BiomeTags.IS_BEACH, BiomeTags.IS_MOUNTAIN), + spawn("ornitholestes", ModEntities.ORNITHOLESTES, 5, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("ornithomimus", ModEntities.ORNITHOMIMUS, 5, 3, 6, BiomeTags.IS_OVERWORLD), + spawn("ouranosaurus", ModEntities.OURANOSAURUS, 4, 3, 5, BiomeTags.IS_OVERWORLD), + spawn("oviraptor", ModEntities.OVIRAPTOR, 6, 3, 5, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("pachycephalosaurus", ModEntities.PACHYCEPHALOSAURUS, 4, 2, 4, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("parasaurolophus", ModEntities.PARASAUROLOPHUS, 4, 3, 5, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("proceratosaurus", ModEntities.PROCERATOSAURUS, 4, 2, 4, BiomeTags.IS_FOREST, BiomeTags.IS_TAIGA), + spawn("procompsognathus", ModEntities.PROCOMPSOGNATHUS, 5, 3, 5, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("protoceratops", ModEntities.PROTOCERATOPS, 5, 3, 5, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("mussasaurus", ModEntities.MUSSASAURUS, 5, 3, 5, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("pteranodon", ModEntities.PTERANODON, 3, 2, 5, BiomeTags.IS_BEACH, BiomeTags.IS_MOUNTAIN), + spawn("pterodaustro", ModEntities.PTERODAUSTRO, 3, 2, 5, BiomeTags.IS_BEACH, BiomeTags.IS_OVERWORLD), spawn("quetzalcoatlus", ModEntities.QUETZALCOATLUS, 2, 1, 2, BiomeTags.IS_MOUNTAIN), - spawn("rajasaurus", ModEntities.RAJASAURUS, 7, 2, 3, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("rugops", ModEntities.RUGOPS, 7, 2, 3, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), - spawn("segisaurus", ModEntities.SEGISAURUS, 27, 3, 6, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("shantungosaurus", ModEntities.SHANTUNGOSAURUS, 5, 2, 4, BiomeTags.IS_JUNGLE, BiomeTags.IS_FOREST), + spawn("rajasaurus", ModEntities.RAJASAURUS, 3, 2, 3, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("rugops", ModEntities.RUGOPS, 3, 2, 3, BiomeTags.IS_FOREST, BiomeTags.IS_OVERWORLD), + spawn("segisaurus", ModEntities.SEGISAURUS, 6, 3, 6, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("shantungosaurus", ModEntities.SHANTUNGOSAURUS, 2, 2, 4, BiomeTags.IS_JUNGLE, BiomeTags.IS_FOREST), spawn("spinosaurus", ModEntities.SPINOSAURUS, 2, 1, 2, BiomeTags.IS_OVERWORLD), - spawn("stegosaurus", ModEntities.STEGOSAURUS, 10, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_OVERWORLD), - spawn("styracosaurus", ModEntities.STYRACOSAURUS, 17, 2, 5, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), - spawn("tapejara", ModEntities.TAPEJARA, 4, 2, 5, BiomeTags.IS_JUNGLE, BiomeTags.IS_MOUNTAIN), - spawn("therizinosaurus", ModEntities.THERIZINOSAURUS, 5, 1, 2, BiomeTags.IS_JUNGLE, BiomeTags.IS_FOREST), - spawn("titanosaurus", ModEntities.TITANOSAURUS, 4, 1, 2, BiomeTags.IS_JUNGLE, BiomeTags.IS_OVERWORLD), - spawn("triceratops", ModEntities.TRICERATOPS, 15, 3, 5, BiomeTags.IS_TAIGA, BiomeTags.IS_OVERWORLD), - spawn("troodon", ModEntities.TROODON, 21, 3, 6, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), - spawn("tropeognathus", ModEntities.TROPEOGNATHUS, 4, 2, 4, BiomeTags.IS_MOUNTAIN), - spawn("tupuxuara", ModEntities.TUPUXUARA, 4, 2, 5, BiomeTags.IS_JUNGLE, BiomeTags.IS_MOUNTAIN), + spawn("stegosaurus", ModEntities.STEGOSAURUS, 3, 2, 4, BiomeTags.IS_TAIGA, BiomeTags.IS_OVERWORLD), + spawn("styracosaurus", ModEntities.STYRACOSAURUS, 4, 2, 5, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), + spawn("tapejara", ModEntities.TAPEJARA, 2, 2, 5, BiomeTags.IS_JUNGLE, BiomeTags.IS_MOUNTAIN), + spawn("therizinosaurus", ModEntities.THERIZINOSAURUS, 3, 1, 2, BiomeTags.IS_JUNGLE, BiomeTags.IS_FOREST), + spawn("titanosaurus", ModEntities.TITANOSAURUS, 2, 1, 2, BiomeTags.IS_JUNGLE, BiomeTags.IS_OVERWORLD), + spawn("triceratops", ModEntities.TRICERATOPS, 4, 3, 5, BiomeTags.IS_TAIGA, BiomeTags.IS_OVERWORLD), + spawn("troodon", ModEntities.TROODON, 5, 3, 6, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), + spawn("tropeognathus", ModEntities.TROPEOGNATHUS, 2, 2, 4, BiomeTags.IS_MOUNTAIN), + spawn("tupuxuara", ModEntities.TUPUXUARA, 2, 2, 5, BiomeTags.IS_JUNGLE, BiomeTags.IS_MOUNTAIN), spawn("tyrannosaurus_rex", ModEntities.TYRANNOSAURUS_REX, 3, 1, 2, BiomeTags.IS_TAIGA, BiomeTags.IS_OVERWORLD), - spawn("utahraptor", ModEntities.UTAHRAPTOR, 12, 1, 3, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), - spawn("velociraptor", ModEntities.VELOCIRAPTOR, 18, 2, 4, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), - spawn("zhenyuanopterus", ModEntities.ZHENYUANOPTERUS, 4, 2, 5, BiomeTags.IS_BEACH, BiomeTags.IS_MOUNTAIN), - spawn("achillobator", ModEntities.ACHILLOBATOR, 9, 1, 2, BiomeTags.IS_TAIGA) + spawn("utahraptor", ModEntities.UTAHRAPTOR, 4, 1, 3, BiomeTags.IS_TAIGA, BiomeTags.IS_FOREST), + spawn("velociraptor", ModEntities.VELOCIRAPTOR, 5, 2, 4, BiomeTags.IS_BADLANDS, BiomeTags.IS_OVERWORLD), + spawn("zhenyuanopterus", ModEntities.ZHENYUANOPTERUS, 2, 2, 5, BiomeTags.IS_BEACH, BiomeTags.IS_MOUNTAIN), + spawn("achillobator", ModEntities.ACHILLOBATOR, 3, 1, 2, BiomeTags.IS_TAIGA) ); @SafeVarargs diff --git a/common/src/main/resources/assets/jurassicrevived/animations/chilesaurus.animation.json b/common/src/main/resources/assets/jurassicrevived/animations/chilesaurus.animation.json new file mode 100644 index 0000000..7dd0db3 --- /dev/null +++ b/common/src/main/resources/assets/jurassicrevived/animations/chilesaurus.animation.json @@ -0,0 +1,3814 @@ +{ + "format_version": "1.8.0", + "animations": { + "anim.chilesaurus.idle": { + "loop": true, + "animation_length": 4, + "bones": { + "Body1": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 1.5", 0, 0] + }, + "position": { + "vector": [0, "math.sin(query.anim_time*180-50)* -0.25", 0] + } + }, + "Body2": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-75)* 2.5", 0, 0] + } + }, + "Neckpart1": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* 1.5", 0, 0] + } + }, + "Neckpart2": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-100)* 1.75", 0, 0] + } + }, + "Neckpart3": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-250)* -2", 0, 0] + } + }, + "Neckpart4": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-300)* 2", 0, 0] + } + }, + "Head": { + "rotation": { + "vector": ["7.5+math.sin(query.anim_time*180-300)* 4", 0, 0] + } + }, + "Rightupperarm": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* -5", 0, 0] + } + }, + "Rightlowerarm": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 5", 0, 0] + } + }, + "Leftupperarm": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* -5", 0, 0] + } + }, + "Leftlowerarm": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 5", 0, 0] + } + }, + "Tailpart1": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* 2.5", 0, 0] + } + }, + "Tailpart2": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-100)* 2.75", 0, 0] + } + }, + "Tailpart3": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-150)* 3", 0, 0] + } + }, + "Tailpart4": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-200)* 3", 0, 0] + } + }, + "Tailpart5": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-250)* 3", 0, 0] + } + }, + "Tailpart6": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-300)* 3", 0, 0] + } + }, + "Tail 7": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-300)* 3", 0, 0] + } + }, + "Body REAR": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 1.5", 0, 0] + }, + "position": { + "vector": [0, "math.sin(query.anim_time*180-50)* -0.25", 0] + } + }, + "Body MIDDLE": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-75)* 2.5", 0, 0] + } + }, + "Neck BASE": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* 1.5", 0, 0] + } + }, + "Neck 2": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-100)* 1.75", 0, 0] + } + }, + "Neck 3": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-250)* -2", 0, 0] + } + }, + "Head ": { + "rotation": { + "vector": ["7.5+math.sin(query.anim_time*180-300)* 4", 0, 0] + } + }, + "Tail BASE": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* 2.5", 0, 0] + } + }, + "Tail 2": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-100)* 2.75", 0, 0] + } + }, + "Tail 3": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-150)* 3", 0, 0] + } + }, + "Tail 4": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-200)* 3", 0, 0] + } + }, + "Tail 5": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-250)* 3", 0, 0] + } + }, + "Arm UPPER LEFT": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* -5", 0, 0] + } + }, + "Arm MIDDLE LEFT": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 5", 0, 0] + } + }, + "Arm UPPER RIGHT": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* -5", 0, 0] + } + }, + "Arm MIDDLE RIGHT": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 5", 0, 0] + } + } + } + }, + "anim.chilesaurus.walk": { + "loop": true, + "animation_length": 1.5, + "bones": { + "Body1": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body2": { + "rotation": { + "0.0": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neckpart1": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neckpart3": { + "rotation": { + "0.0": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neckpart5": { + "rotation": { + "0.0": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightupperarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightlowerarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.94, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-1.94, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftupperarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftlowerarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.94, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-1.94, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightthigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightshin": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightankle": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightfoot": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0.65289, 0.75745] + }, + "0.125": { + "vector": [0, 0.73134, 0.68201] + }, + "0.375": { + "vector": [0, 1.06078, -0.35318] + }, + "0.75": { + "vector": [0, 0.93968, 0.38419] + }, + "1.5": { + "vector": [0, 0.65289, 0.75745] + } + } + }, + "Leftthigh": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftshin": { + "rotation": { + "0.0": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftankle": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftfoot": { + "rotation": { + "0.0": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0.93968, 0.38419] + }, + "0.75": { + "vector": [0, 0.65289, 0.75745] + }, + "0.875": { + "vector": [0, 0.73134, 0.68201] + }, + "1.125": { + "vector": [0, 1.06078, -0.35318] + }, + "1.5": { + "vector": [0, 0.93968, 0.38419] + } + } + }, + "Tail 7": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body REAR": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body MIDDLE": { + "rotation": { + "0.0": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -0.7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0.1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, -0.7, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, -0.1, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck BASE": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 3": { + "rotation": { + "0.0": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head ": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail BASE": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg UPPER LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -2, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -1.37, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -3.7, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -2, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg MIDDLE LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg LOWER LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.34711, -1.24255] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -0.56866, -0.31799] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -0.73922, -0.35318] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0.93968, 0.38419] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, -1.9, 0.57] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -0.34711, -1.24255] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg UPPER RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -1.4, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, -2.63, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg MIDDLE RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg LOWER RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.43968, -0.71581] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -1.85, 0.02] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -0.84711, -0.24255] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, -0.46866, -0.61799] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, -0.83922, -0.35318] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0.43968, -0.71581] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "anim.chilesaurus.run": { + "loop": true, + "animation_length": 0.75, + "bones": { + "Neckpart1": { + "rotation": { + "0.0": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neckpart3": { + "rotation": { + "0.0": { + "post": { + "vector": [-8.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-8.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neckpart4": { + "rotation": { + "vector": [22.5, 0, 0] + } + }, + "Neckpart5": { + "rotation": { + "0.0": { + "post": { + "vector": [18.8, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [18.8, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "vector": [0, 0.23265, 0.44258] + } + }, + "Tailpart1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body1": { + "position": { + "0.0": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body2": { + "rotation": { + "0.0": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head": { + "rotation": { + "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, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightupperarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightlowerarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftupperarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftlowerarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftthigh": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftshin": { + "rotation": { + "0.0": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftankle": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftfoot": { + "rotation": { + "0.0": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0.93968, 0.38419] + }, + "0.375": { + "vector": [0, 0.65289, 0.75745] + }, + "0.4375": { + "vector": [0, 0.73134, 0.68201] + }, + "0.5625": { + "vector": [0, 1.06078, -0.35318] + }, + "0.75": { + "vector": [0, 0.93968, 0.38419] + } + } + }, + "Rightthigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightshin": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightankle": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightfoot": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0.65289, 0.75745] + }, + "0.0625": { + "vector": [0, 0.73134, 0.68201] + }, + "0.1875": { + "vector": [0, 1.06078, -0.35318] + }, + "0.375": { + "vector": [0, 0.93968, 0.38419] + }, + "0.75": { + "vector": [0, 0.65289, 0.75745] + } + } + }, + "Tail 7": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body REAR": { + "position": { + "0.0": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body MIDDLE": { + "rotation": { + "0.0": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [0, -0.7, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck BASE": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 2": { + "rotation": { + "0.0": { + "post": { + "vector": [-8.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-8.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head ": { + "rotation": { + "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, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail BASE": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg UPPER LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -1.2, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, -2.52, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg MIDDLE LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg LOWER LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.93968, 0.38419] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, -2.2, 0.57] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -0.34711, -0.24255] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [0, -0.96866, -0.31799] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, -0.93922, -0.35318] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0.93968, 0.38419] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg UPPER RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1.9, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, -2.81, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -1.9, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg MIDDLE RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg LOWER RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.34711, -1.24255] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [0, -1.26866, -0.31799] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, -0.93922, -0.35318] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0.13968, -0.01581] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, -1.6, 0.37] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -0.34711, -1.24255] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Arm UPPER LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Arm MIDDLE LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Arm UPPER RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Arm MIDDLE RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/animations/mussasaurus.animation.json b/common/src/main/resources/assets/jurassicrevived/animations/mussasaurus.animation.json new file mode 100644 index 0000000..0d06080 --- /dev/null +++ b/common/src/main/resources/assets/jurassicrevived/animations/mussasaurus.animation.json @@ -0,0 +1,3519 @@ +{ + "format_version": "1.8.0", + "animations": { + "anim.mussasaurus.mouth": { + "loop": "hold_on_last_frame", + "animation_length": 1.25, + "bones": { + "JawLOWER": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Snout4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "anim.mussasaurus.idle": { + "loop": true, + "animation_length": 4, + "bones": { + "Head": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.49972, -0.04919, -0.03902] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.72, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-1.72, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-7.49972, -0.04919, -0.03902] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail1": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail4": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail5": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail6": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "4.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "anim.mussasaurus.walk": { + "loop": true, + "animation_length": 2.5, + "bones": { + "RearLegUpperLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 2.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RearLegMiddleLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RearLegFootLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-4.46, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RearLegUpperRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 2.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, 0, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RearLegMiddleRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RearLegFootRight": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2917": { + "post": { + "vector": [-4.46, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Bodyhips": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "BodyMAIN": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.98, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-1.98, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Bodyshoulders": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegUpperLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1.5, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -0.56, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 1.25, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, -1.5, -0.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegMIDLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegFOOTLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.82, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-0.82, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegUpperRight": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 1.25, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, -1.5, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, -0.56, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegMIDRight": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegFOOTRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body1": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body2": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.98, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-1.98, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body3": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head1": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LFL1": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 1.25, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 1.7, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, -0.56, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LFL2": { + "rotation": { + "0.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LeftHand": { + "rotation": { + "0.0": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [14.18, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RFL1": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 1.5, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -0.56, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 1.25, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, 1.5, -0.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RFL2": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RightHand": { + "rotation": { + "0.0": { + "post": { + "vector": [14.18, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [14.18, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail1": { + "rotation": { + "vector": [0, "-math.sin(query.anim_time*144)* 5", "math.sin(query.anim_time*144)* 2.5"] + } + }, + "Tail2": { + "rotation": { + "vector": [0, "-math.sin(query.anim_time*144-50)* 5", 0] + } + }, + "Tail3": { + "rotation": { + "vector": [0, "-math.sin(query.anim_time*144-100)* 4", "math.sin(query.anim_time*144-50)* 2.5"] + } + }, + "Tail4": { + "rotation": { + "vector": [0, "-math.sin(query.anim_time*144-150)* 4", 0] + } + }, + "Tail5": { + "rotation": { + "vector": [0, "-math.sin(query.anim_time*144-200)* 4", "math.sin(query.anim_time*144-100)* 2.5"] + } + }, + "Tail6": { + "rotation": { + "vector": [0, "-math.sin(query.anim_time*144)* -4", 0] + } + }, + "Tail7": { + "rotation": { + "vector": [0, "-math.sin(query.anim_time*144)* -4", 0] + } + }, + "Tail8": { + "rotation": { + "vector": [0, "-math.sin(query.anim_time*144)* -4", 0] + } + }, + "LBL1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 2.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, 0.1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LBL2": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LBF2": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.2917": { + "post": { + "vector": [-4.46, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 1.1, 0] + }, + "2.5": { + "vector": [0, 1.1, 0] + } + } + }, + "RBL1": { + "rotation": { + "0.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 2.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RBL2": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RBF2": { + "rotation": { + "0.0": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0417": { + "post": { + "vector": [-4.46, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 1, 0] + }, + "2.5": { + "vector": [0, 1, 0] + } + } + } + } + }, + "anim.mussasaurus.run": { + "loop": true, + "animation_length": 0.8019, + "bones": { + "RearLegUpperLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 2.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [0, 0, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RearLegMiddleLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RearLegFootLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3341": { + "post": { + "vector": [-4.46, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RearLegUpperRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 2.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, 0, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RearLegMiddleRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RearLegFootRight": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.735": { + "post": { + "vector": [-4.46, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Bodyhips": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "BodyMAIN": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.98, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1604": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3608": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5613": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7216": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-1.98, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Bodyshoulders": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegUpperLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1.5, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, -0.56, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 1.25, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, -1.5, -0.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegMIDLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegFOOTLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.82, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5613": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7216": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-0.82, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegUpperRight": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 1.25, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [0, -1.5, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, -0.56, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegMIDRight": { + "rotation": { + "0.0": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FrontLegFOOTRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1604": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3207": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body1": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, -0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body2": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.37, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1069": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3074": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5078": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6949": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7885": { + "post": { + "vector": [-1.37, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body3": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.588": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7885": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.588": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7885": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head1": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.588": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7885": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LFL1": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 1.25, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [0, 1.7, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, -0.56, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, -1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LFL2": { + "rotation": { + "0.0": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LeftHand": { + "rotation": { + "0.0": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1604": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3207": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [14.18, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [40, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RFL1": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 1.5, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, -0.56, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 1.25, -0.25] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, 1.5, -0.5] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RFL2": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-30, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RightHand": { + "rotation": { + "0.0": { + "post": { + "vector": [14.18, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5613": { + "post": { + "vector": [20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7216": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [14.18, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail1": { + "rotation": { + "vector": [2.5, "-math.sin(query.anim_time*455)* 5", "math.sin(query.anim_time*455)* 2.5"] + } + }, + "Tail2": { + "rotation": { + "vector": [0, "-math.sin(query.anim_time*455-50)* 5", 0] + } + }, + "Tail3": { + "rotation": { + "vector": [2.5, "-math.sin(query.anim_time*455-100)* 4", "math.sin(query.anim_time*455-50)* 2.5"] + } + }, + "Tail5": { + "rotation": { + "vector": [2.5, "-math.sin(query.anim_time*455-100)* 4", "math.sin(query.anim_time*455-50)* 2.5"] + } + }, + "Tail6": { + "rotation": { + "vector": [0, "-math.sin(query.anim_time*455-150)* 4", 0] + } + }, + "Tail7": { + "rotation": { + "vector": [0, "-math.sin(query.anim_time*455-150)* 4", 0] + } + }, + "LBL1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.1, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 2.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, 0.1, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LBL2": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LBF2": { + "rotation": { + "0.0": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.735": { + "post": { + "vector": [-4.46, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 1.1, 0] + }, + "0.8018": { + "vector": [0, 1.1, 0] + } + } + }, + "RBL1": { + "rotation": { + "0.0": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 2.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [0, 0, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RBL2": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RBF2": { + "rotation": { + "0.0": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2005": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3341": { + "post": { + "vector": [-4.46, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4009": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6014": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8018": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 1, 0] + }, + "0.8018": { + "vector": [0, 1, 0] + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/animations/suchomimus.animation.json b/common/src/main/resources/assets/jurassicrevived/animations/suchomimus.animation.json new file mode 100644 index 0000000..fc0c0d5 --- /dev/null +++ b/common/src/main/resources/assets/jurassicrevived/animations/suchomimus.animation.json @@ -0,0 +1,7087 @@ +{ + "format_version": "1.8.0", + "animations": { + "anim.suchomimus.walk": { + "loop": true, + "animation_length": 2, + "bones": { + "Bodyhips": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [2.49762, -0.10901, 2.49762] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [1, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Bodywaist": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [2.49872, -0.02455, -1.00358] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Bodyshoulders": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RightThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-3.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.75": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 3, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RightCalf1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-3.01, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [-12.1, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [15.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RightCalf2": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [17, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FootRight": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [94.68, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -0.77998, -0.80102] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body1": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [2.49762, -0.10901, 2.49762] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [1, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-2.49971, -5, -0.00263] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.11, 4.45, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-2.49971, -5, -0.00263] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-2.11, 4.45, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.24, 3.13, 0.11] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-2.48051, 5.00633, 0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-2.48051, -5.00633, -0.17893] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-1.24, 3.13, 0.11] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail4": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.39, 1.49, 0.05] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-2.48051, 5.00633, 0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [-2.48051, -5.00633, -0.17893] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-0.39, 1.49, 0.05] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-2.5, -7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail6": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.39, -2.23, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-2.5, 7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [-2.5, -7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-0.39, -2.23, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body2": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [2.49872, -0.02455, -1.00358] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck_under2": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck1": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "UpperArmLEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LowerArmLEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "UpperArmRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LowerArmRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LeftThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-3.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 1.06, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 1.06, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LeftCalf1": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [15.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [-3.01, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-12.07, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LeftCalf2": { + "rotation": { + "0.0": { + "post": { + "vector": [17.45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [17, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [17.45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FootLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [0.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [94.68, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.33, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.71, -0.73] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, -0.77998, -0.80102] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -0.71, -0.73] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Right Thigh": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-3.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 1.06, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 1.06, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Right Calf 1": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [15.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [-3.01, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-12.07, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Right Calf 2": { + "rotation": { + "0.0": { + "post": { + "vector": [17.45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [17, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [17.45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot Right": { + "rotation": { + "0.0": { + "post": { + "vector": [0.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [94.68, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0.33, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.71, -0.73] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, -0.77998, -0.80102] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -0.71, -0.73] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body 1": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [2.49762, -0.10901, 2.49762] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [1, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-2.49971, -5, -0.00263] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 2": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.11, 4.45, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-2.49971, -5, -0.00263] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-2.11, 4.45, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 3": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.24, 3.13, 0.11] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-2.48051, 5.00633, 0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-2.48051, -5.00633, -0.17893] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-1.24, 3.13, 0.11] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 4": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.39, 1.49, 0.05] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-2.48051, 5.00633, 0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [-2.48051, -5.00633, -0.17893] + }, + "lerp_mode": "catmullrom" + }, + "1.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-0.39, 1.49, 0.05] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-2.5, -7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 6": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.39, -2.23, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [-2.5, 7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [-2.5, -7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-0.39, -2.23, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body 2": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [2.49872, -0.02455, -1.00358] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body 3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Upper Arm LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lower Arm LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Upper Arm Right": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lower Arm Right": { + "rotation": { + "0.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 1": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 3": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head": { + "rotation": { + "0.0": { + "post": { + "vector": [2.45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-0.05, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [4.97, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [2.45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.3, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0.3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0.6, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0.3, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Left Thigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-3.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.75": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 3, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Left Calf 1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-3.01, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0833": { + "post": { + "vector": [-12.1, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.4167": { + "post": { + "vector": [15.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Left Calf 2": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [17, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot Left": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.625": { + "post": { + "vector": [94.68, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -0.77998, -0.80102] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "anim.suchomimus.run": { + "loop": true, + "animation_length": 1.005, + "bones": { + "Bodyhips": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [2.49762, -0.10901, 2.49762] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "1.1307": { + "post": { + "vector": [1, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Bodywaist": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [2.49872, -0.02455, -1.00358] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Bodyshoulders": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RightThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [-3.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.3769": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [0, 3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RightCalf1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [-3.01, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5444": { + "post": { + "vector": [-12.1, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7119": { + "post": { + "vector": [15.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "RightCalf2": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [17, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8166": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FootRight": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8166": { + "post": { + "vector": [94.68, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [0, -0.77998, -0.80102] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body1": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [2.49762, -0.10901, 2.49762] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "1.1307": { + "post": { + "vector": [1, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-2.49971, -5, -0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.11, 4.45, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0628": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.3141": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5653": { + "post": { + "vector": [-2.49971, -5, -0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.8166": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-2.11, 4.45, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.24, 3.13, 0.11] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [-2.48051, 5.00633, 0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [-2.48051, -5.00633, -0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-1.24, 3.13, 0.11] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail4": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.39, 1.49, 0.05] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [-2.48051, 5.00633, 0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.4397": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [-2.48051, -5.00633, -0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.9422": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-0.39, 1.49, 0.05] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [-2.5, 7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [-2.5, -7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail6": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.39, -2.23, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3141": { + "post": { + "vector": [-2.5, 7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5653": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8166": { + "post": { + "vector": [-2.5, -7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-0.39, -2.23, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body2": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [2.49872, -0.02455, -1.00358] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck_under2": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck1": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "UpperArmLEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LowerArmLEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "UpperArmRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LowerArmRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LeftThigh": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [-3.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 1.06, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [0, 3, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 1.06, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LeftCalf1": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2094": { + "post": { + "vector": [15.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [-3.01, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-12.07, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LeftCalf2": { + "rotation": { + "0.0": { + "post": { + "vector": [17.45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [17, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3141": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [17.45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "FootLeft": { + "rotation": { + "0.0": { + "post": { + "vector": [0.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3141": { + "post": { + "vector": [94.68, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0.33, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.71, -0.73] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [0, -0.77998, -0.80102] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, -0.71, -0.73] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Right Thigh": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [-3.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 1.06, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [0, 3, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 1.06, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Right Calf 1": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.07, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2094": { + "post": { + "vector": [15.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [-3.01, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-12.07, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Right Calf 2": { + "rotation": { + "0.0": { + "post": { + "vector": [17.45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [17, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3141": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [17.45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot Right": { + "rotation": { + "0.0": { + "post": { + "vector": [0.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3141": { + "post": { + "vector": [94.68, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0.33, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.71, -0.73] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [0, -0.77998, -0.80102] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, -0.71, -0.73] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body 1": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [2.49762, -0.10901, 2.49762] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [2.49762, 0.10901, -2.49762] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [0, -0.5, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, -0.25, -0.5] + }, + "lerp_mode": "catmullrom" + }, + "1.1307": { + "post": { + "vector": [1, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-2.49971, -5, -0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 2": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.11, 4.45, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0628": { + "post": { + "vector": [-2.49971, 5, 0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.3141": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5653": { + "post": { + "vector": [-2.49971, -5, -0.00263] + }, + "lerp_mode": "catmullrom" + }, + "0.8166": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-2.11, 4.45, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 3": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.24, 3.13, 0.11] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [-2.48051, 5.00633, 0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [-2.48051, -5.00633, -0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-1.24, 3.13, 0.11] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 4": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.39, 1.49, 0.05] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [-2.48051, 5.00633, 0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.4397": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [-2.48051, -5.00633, -0.17893] + }, + "lerp_mode": "catmullrom" + }, + "0.9422": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-0.39, 1.49, 0.05] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [-2.5, 7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [-2.5, -7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 6": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.39, -2.23, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3141": { + "post": { + "vector": [-2.5, 7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5653": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8166": { + "post": { + "vector": [-2.5, -7.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-0.39, -2.23, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body 2": { + "rotation": { + "0.0": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [2.49872, -0.02455, -1.00358] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [2.49872, 0.02455, 1.00358] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body 3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0, -2.5] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [0, 0.24948, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Upper Arm LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lower Arm LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Upper Arm Right": { + "rotation": { + "0.0": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lower Arm Right": { + "rotation": { + "0.0": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-6.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 1": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1256": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8794": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 3": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head": { + "rotation": { + "0.0": { + "post": { + "vector": [2.45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [-0.05, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [4.97, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [2.45, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.2, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.2513": { + "post": { + "vector": [0, 0.3, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [0, 0.55, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0.2, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Left Thigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5025": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7538": { + "post": { + "vector": [-3.75, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.3769": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.691": { + "post": { + "vector": [0, 3, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Left Calf 1": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [-3.01, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5444": { + "post": { + "vector": [-12.1, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.7119": { + "post": { + "vector": [15.33, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Left Calf 2": { + "rotation": { + "0.0": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [17, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8166": { + "post": { + "vector": [-35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot Left": { + "rotation": { + "0.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6281": { + "post": { + "vector": [35, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.8166": { + "post": { + "vector": [94.68, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1884": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3769": { + "post": { + "vector": [0, -0.77998, -0.80102] + }, + "lerp_mode": "catmullrom" + }, + "1.005": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "anim.suchomimus.mouth": { + "animation_length": 1.25, + "bones": { + "Lowerjaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lower Jaw 1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "anim.suchomimus.idle": { + "loop": true, + "animation_length": 3, + "bones": { + "Bodyhips": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Bodywaist": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-0.19, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Bodyshoulders": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.65, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-0.65, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail1": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.85, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-1.85, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.31, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-2.31, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail4": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail5": { + "rotation": { + "0.0": { + "post": { + "vector": [2.87, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [2.87, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail6": { + "rotation": { + "0.0": { + "post": { + "vector": [3.8, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [3.8, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body2": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-0.19, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body3": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.65, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-0.65, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck4": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck3": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.31, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-2.31, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck2": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.85, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-1.85, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck1": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lowerjaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "UpperArmLEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LowerArmLEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "handleft": { + "rotation": { + "0.0": { + "post": { + "vector": [-8.85, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-8.85, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "UpperArmRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LowerArmRight": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "handright": { + "rotation": { + "0.0": { + "post": { + "vector": [-8.85, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-8.85, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body 1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 1": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 2": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.85, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-1.85, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 3": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.31, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-2.31, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 4": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 5": { + "rotation": { + "0.0": { + "post": { + "vector": [2.87, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [2.87, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 6": { + "rotation": { + "0.0": { + "post": { + "vector": [3.8, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [3.8, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body 2": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-0.19, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body 3": { + "rotation": { + "0.0": { + "post": { + "vector": [-0.65, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-0.65, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Upper Arm LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lower Arm LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "hand left": { + "rotation": { + "0.0": { + "post": { + "vector": [-8.85, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-8.85, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Upper Arm Right": { + "rotation": { + "0.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lower Arm Right": { + "rotation": { + "0.0": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "hand right": { + "rotation": { + "0.0": { + "post": { + "vector": [-8.85, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-3.24, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-8.85, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 1": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.25": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-1.25, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 2": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.85, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-1.85, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 3": { + "rotation": { + "0.0": { + "post": { + "vector": [-2.31, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "2.75": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [-2.31, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 4": { + "rotation": { + "0.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lower Jaw 1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "3.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "anim.suchomimus.attack": { + "loop": true, + "animation_length": 1.1667, + "bones": { + "Body1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail1": { + "rotation": { + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail2": { + "rotation": { + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail3": { + "rotation": { + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail4": { + "rotation": { + "0.25": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail5": { + "rotation": { + "0.25": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail6": { + "rotation": { + "0.25": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body2": { + "rotation": { + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body3": { + "rotation": { + "0.25": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lowerjaw": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [67.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck_under1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-12.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [0, 2.2, 2.9] + } + } + }, + "UpperArmLEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 25] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-45, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-105, 0, 32.5] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [-59.00306, -14.84745, 6.12936] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LowerArmLEFT": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [0, -2.5, 0] + } + } + }, + "handleft": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [-25, 32.5, 0] + }, + "1.1667": { + "vector": [-28.1605, -4.05369, -9.08444] + } + } + }, + "UpperArmRight": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-52.5, 0, -30] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-105.01814, -2.33651, -29.11052] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [-51.3652, 7.35601, -3.31902] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-38.8652, 7.35601, -3.31902] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "LowerArmRight": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [0, -2.5, 0] + } + } + }, + "handright": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [-25, -35, 0] + }, + "1.1667": { + "vector": [-1.07508, 4.03522, 9.59693] + } + } + }, + "Body 1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 1": { + "rotation": { + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 2": { + "rotation": { + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 3": { + "rotation": { + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 4": { + "rotation": { + "0.25": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 5": { + "rotation": { + "0.25": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 6": { + "rotation": { + "0.25": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [2.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body 2": { + "rotation": { + "0.125": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.625": { + "pre": { + "vector": [0, 0, 1] + }, + "post": { + "vector": [0, 0, 1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Upper Arm LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, -22.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-52.5, 0, -30] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-87.55174, -19.78361, -30.47712] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [-51.3652, 7.35601, -3.31902] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-38.8652, 7.35601, -3.31902] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lower Arm LEFT": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [0, -2.5, 0] + } + } + }, + "hand left": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [-25, -35, 0] + }, + "1.1667": { + "vector": [-1.07508, 4.03522, 9.59693] + } + } + }, + "Upper Arm Right": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, 0, 2.5] + }, + "lerp_mode": "catmullrom" + }, + "0.2917": { + "post": { + "vector": [-52.7963, 23.9907, 5.344] + }, + "lerp_mode": "catmullrom" + }, + "0.4583": { + "post": { + "vector": [-90.98614, 17.93719, -16.49162] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [-51.3652, 7.35601, -3.31902] + }, + "lerp_mode": "catmullrom" + }, + "0.9167": { + "post": { + "vector": [-38.8652, 7.35601, -3.31902] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lower Arm Right": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.375": { + "vector": [0, -2.5, 0] + } + } + }, + "hand right": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "pre": { + "vector": [0, 0, 0] + }, + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "vector": [-25, 32.5, 0] + }, + "0.5": { + "pre": { + "vector": [-5, 0, 0] + }, + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "vector": [-28.1605, -4.05369, -9.08444] + } + } + }, + "Neck 1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.25": { + "vector": [0, 1, 0] + }, + "0.75": { + "vector": [0, 0.3, 0] + } + } + }, + "Head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [14.17, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "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": [0, 1.57, -0.33] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -1.3, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Lower Jaw 1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [67.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/animations/thescelosaurus.animation.json b/common/src/main/resources/assets/jurassicrevived/animations/thescelosaurus.animation.json new file mode 100644 index 0000000..c7b8dd1 --- /dev/null +++ b/common/src/main/resources/assets/jurassicrevived/animations/thescelosaurus.animation.json @@ -0,0 +1,3753 @@ +{ + "format_version": "1.8.0", + "animations": { + "anim.thescelosaurus.idle": { + "loop": true, + "animation_length": 4, + "bones": { + "Body1": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 1.5", 0, 0] + }, + "position": { + "vector": [0, "math.sin(query.anim_time*180-50)* -0.25", 0] + } + }, + "Body2": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-75)* 2.5", 0, 0] + } + }, + "Neckpart1": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* 1.5", 0, 0] + } + }, + "Neckpart2": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-100)* 1.75", 0, 0] + } + }, + "Neckpart3": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-250)* -2", 0, 0] + } + }, + "Neckpart4": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-300)* 2", 0, 0] + } + }, + "Head": { + "rotation": { + "vector": ["7.5+math.sin(query.anim_time*180-300)* 4", 0, 0] + } + }, + "Rightupperarm": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* -5", 0, 0] + } + }, + "Rightlowerarm": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 5", 0, 0] + } + }, + "Leftupperarm": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* -5", 0, 0] + } + }, + "Leftlowerarm": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 5", 0, 0] + } + }, + "Tailpart1": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* 2.5", 0, 0] + } + }, + "Tailpart2": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-100)* 2.75", 0, 0] + } + }, + "Tailpart3": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-150)* 3", 0, 0] + } + }, + "Tailpart4": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-200)* 3", 0, 0] + } + }, + "Tailpart5": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-250)* 3", 0, 0] + } + }, + "Tailpart6": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-300)* 3", 0, 0] + } + }, + "Body REAR": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 1.5", 0, 0] + }, + "position": { + "vector": [0, "math.sin(query.anim_time*180-50)* -0.25", 0] + } + }, + "Body MIDDLE": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-75)* 2.5", 0, 0] + } + }, + "Neck BASE": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* 1.5", 0, 0] + } + }, + "Neck 2": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-100)* 1.75", 0, 0] + } + }, + "Neck 3": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-250)* -2", 0, 0] + } + }, + "Head ": { + "rotation": { + "vector": ["7.5+math.sin(query.anim_time*180-300)* 4", 0, 0] + } + }, + "Arm UPPER LEFT": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* -5", 0, 0] + } + }, + "Arm MIDDLE LEFT": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 5", 0, 0] + } + }, + "Arm UPPER RIGHT": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* -5", 0, 0] + } + }, + "Arm MIDDLE RIGHT": { + "rotation": { + "vector": ["math.sin(query.anim_time*180)* 5", 0, 0] + } + }, + "Tail BASE": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-50)* 2.5", 0, 0] + } + }, + "Tail 2": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-100)* 2.75", 0, 0] + } + }, + "Tail 3": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-150)* 3", 0, 0] + } + }, + "Tail 4": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-200)* 3", 0, 0] + } + }, + "Tail 5": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-250)* 3", 0, 0] + } + }, + "Tail 7": { + "rotation": { + "vector": ["math.sin(query.anim_time*180-300)* 3", 0, 0] + } + } + } + }, + "anim.thescelosaurus.walk": { + "loop": true, + "animation_length": 1.5, + "bones": { + "Body1": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body2": { + "rotation": { + "0.0": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neckpart1": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neckpart3": { + "rotation": { + "0.0": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neckpart5": { + "rotation": { + "0.0": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightupperarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightlowerarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.94, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-1.94, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftupperarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftlowerarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-1.94, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-1.94, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightthigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightshin": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightankle": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightfoot": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0.65289, 0.75745] + }, + "0.125": { + "vector": [0, 0.73134, 0.68201] + }, + "0.375": { + "vector": [0, 1.06078, -0.35318] + }, + "0.75": { + "vector": [0, 0.93968, 0.38419] + }, + "1.5": { + "vector": [0, 0.65289, 0.75745] + } + } + }, + "Leftthigh": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftshin": { + "rotation": { + "0.0": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftankle": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftfoot": { + "rotation": { + "0.0": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0.93968, 0.38419] + }, + "0.75": { + "vector": [0, 0.65289, 0.75745] + }, + "0.875": { + "vector": [0, 0.73134, 0.68201] + }, + "1.125": { + "vector": [0, 1.06078, -0.35318] + }, + "1.5": { + "vector": [0, 0.93968, 0.38419] + } + } + }, + "Body REAR": { + "rotation": { + "0.0": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body MIDDLE": { + "rotation": { + "0.0": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck BASE": { + "rotation": { + "0.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 3": { + "rotation": { + "0.0": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [1.3, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head ": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4167": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.1667": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail BASE": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.0": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.25": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 7": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg UPPER LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -2, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -1.37, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -3.7, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -2, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg MIDDLE LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg LOWER LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.34711, -1.24255] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -0.56866, -0.31799] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -0.73922, -0.35318] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0.93968, 0.38419] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, -1.9, 0.57] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -0.34711, -1.24255] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg UPPER RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -1.4, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, -2.63, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg MIDDLE RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg LOWER RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.43968, -0.71581] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -1.85, 0.02] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -0.84711, -0.24255] + }, + "lerp_mode": "catmullrom" + }, + "0.875": { + "post": { + "vector": [0, -0.46866, -0.61799] + }, + "lerp_mode": "catmullrom" + }, + "1.125": { + "post": { + "vector": [0, -0.83922, -0.35318] + }, + "lerp_mode": "catmullrom" + }, + "1.5": { + "post": { + "vector": [0, 0.43968, -0.71581] + }, + "lerp_mode": "catmullrom" + } + } + } + } + }, + "anim.thescelosaurus.run": { + "loop": true, + "animation_length": 0.75, + "bones": { + "Neckpart1": { + "rotation": { + "0.0": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [-20, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-15, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neckpart3": { + "rotation": { + "0.0": { + "post": { + "vector": [-8.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-8.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neckpart4": { + "rotation": { + "vector": [22.5, 0, 0] + } + }, + "Neckpart5": { + "rotation": { + "0.0": { + "post": { + "vector": [18.8, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [18.8, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "vector": [0, 0.23265, 0.44258] + } + }, + "Tailpart1": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tailpart6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body1": { + "position": { + "0.0": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body2": { + "rotation": { + "0.0": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head": { + "rotation": { + "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, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightupperarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightlowerarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftupperarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftlowerarm": { + "rotation": { + "0.0": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftthigh": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftshin": { + "rotation": { + "0.0": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftankle": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leftfoot": { + "rotation": { + "0.0": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0.93968, 0.38419] + }, + "0.375": { + "vector": [0, 0.65289, 0.75745] + }, + "0.4375": { + "vector": [0, 0.73134, 0.68201] + }, + "0.5625": { + "vector": [0, 1.06078, -0.35318] + }, + "0.75": { + "vector": [0, 0.93968, 0.38419] + } + } + }, + "Rightthigh": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -4.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightshin": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightankle": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Rightfoot": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "vector": [0, 0.65289, 0.75745] + }, + "0.0625": { + "vector": [0, 0.73134, 0.68201] + }, + "0.1875": { + "vector": [0, 1.06078, -0.35318] + }, + "0.375": { + "vector": [0, 0.93968, 0.38419] + }, + "0.75": { + "vector": [0, 0.65289, 0.75745] + } + } + }, + "Body REAR": { + "position": { + "0.0": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2, -1] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Body MIDDLE": { + "rotation": { + "0.0": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [3.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "vector": [0, -0.5, 0] + } + }, + "Neck BASE": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Neck 2": { + "rotation": { + "0.0": { + "post": { + "vector": [-8.7, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-10, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-8.7, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Head ": { + "rotation": { + "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, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5833": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Arm UPPER LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Arm MIDDLE LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Arm UPPER RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-7.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Arm MIDDLE RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [-25, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [-17.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-19.44, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail BASE": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 2": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 3": { + "rotation": { + "0.0": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 4": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 5": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 6": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.25": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.625": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 2.41, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Tail 7": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.3125": { + "post": { + "vector": [0, -5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.6875": { + "post": { + "vector": [0, 5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 4.26, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg UPPER LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -1.2, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, -2.52, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg MIDDLE LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg LOWER LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot LEFT": { + "rotation": { + "0.0": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, 0.93968, 0.38419] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, -2.2, 0.57] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -0.34711, -0.24255] + }, + "lerp_mode": "catmullrom" + }, + "0.4375": { + "post": { + "vector": [0, -0.96866, -0.31799] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, -0.93922, -0.35318] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0.93968, 0.38419] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg UPPER RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [10.47, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [37.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [-22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -1.9, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, -2.81, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, -3.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, 2.5, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -1.9, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg MIDDLE RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-4.53, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Leg LOWER RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [-42.19, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [-45, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, 0, 0] + }, + "lerp_mode": "catmullrom" + } + } + }, + "Foot RIGHT": { + "rotation": { + "0.0": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [27.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [-32.5, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [90, 0, 0] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [22.5, 0, 0] + }, + "lerp_mode": "catmullrom" + } + }, + "position": { + "0.0": { + "post": { + "vector": [0, -0.34711, -1.24255] + }, + "lerp_mode": "catmullrom" + }, + "0.0625": { + "post": { + "vector": [0, -1.26866, -0.31799] + }, + "lerp_mode": "catmullrom" + }, + "0.1875": { + "post": { + "vector": [0, -0.93922, -0.35318] + }, + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": { + "vector": [0, 0.13968, -0.01581] + }, + "lerp_mode": "catmullrom" + }, + "0.5625": { + "post": { + "vector": [0, -1.6, 0.37] + }, + "lerp_mode": "catmullrom" + }, + "0.75": { + "post": { + "vector": [0, -0.34711, -1.24255] + }, + "lerp_mode": "catmullrom" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/animations/tyrannosaurus_rex.animation.json b/common/src/main/resources/assets/jurassicrevived/animations/tyrannosaurus_rex.animation.json index 0cffff3..122630c 100755 --- a/common/src/main/resources/assets/jurassicrevived/animations/tyrannosaurus_rex.animation.json +++ b/common/src/main/resources/assets/jurassicrevived/animations/tyrannosaurus_rex.animation.json @@ -1453,19 +1453,19 @@ }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [27.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.5882": { + "0.5833": { "post": { "vector": [-3.75, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [-22.5, 0, 0] }, @@ -1479,25 +1479,25 @@ }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [0, 0.75, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [0, 2.88, 2.12] }, "lerp_mode": "catmullrom" }, - "0.5392": { + "0.5417": { "post": { "vector": [0, 6, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [0, -0.75, -3] }, @@ -1513,31 +1513,31 @@ }, "lerp_mode": "catmullrom" }, - "0.1471": { + "0.1667": { "post": { "vector": [-3.01, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [-2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.4248": { + "0.4167": { "post": { "vector": [-12.1, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.5556": { + "0.5417": { "post": { "vector": [15.33, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [-12.5, 0, 0] }, @@ -1553,37 +1553,37 @@ }, "lerp_mode": "catmullrom" }, - "0.1471": { + "0.1667": { "post": { "vector": [-1.25, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [10, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [29.95, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.4902": { + "0.5": { "post": { "vector": [17, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.6373": { + "0.625": { "post": { "vector": [10, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [17.5, 0, 0] }, @@ -1599,31 +1599,31 @@ }, "lerp_mode": "catmullrom" }, - "0.1471": { + "0.1667": { "post": { "vector": [12.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [-22.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.4902": { + "0.5": { "post": { "vector": [55, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.6373": { + "0.625": { "post": { "vector": [37.18, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [17.5, 0, 0] }, @@ -1637,19 +1637,19 @@ }, "lerp_mode": "catmullrom" }, - "0.1471": { + "0.1667": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [0, -0.63071, 0.18778] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [0, 0, 0] }, @@ -1662,7 +1662,7 @@ "0.0": { "vector": [0, 0, 0] }, - "0.098": { + "0.0833": { "pre": { "vector": [2.5, 0, 0] }, @@ -1671,25 +1671,25 @@ }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [-2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.4902": { + "0.5": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [-2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "vector": [0, 0, 0] } }, @@ -1700,25 +1700,25 @@ }, "lerp_mode": "catmullrom" }, - "0.1961": { + "0.2083": { "post": { "vector": [0, 1, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.5882": { + "0.5833": { "post": { "vector": [0, 1, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [0, 0, 0] }, @@ -1764,25 +1764,25 @@ }, "lerp_mode": "catmullrom" }, - "0.1961": { + "0.2083": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [4.88398, 0, -0.20029] }, "lerp_mode": "catmullrom" }, - "0.5882": { + "0.5833": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [4.88398, 0, -0.20029] }, @@ -1796,25 +1796,25 @@ }, "lerp_mode": "catmullrom" }, - "0.1961": { + "0.2083": { "post": { "vector": [0, 0.25, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.5882": { + "0.5833": { "post": { "vector": [0, 0.25, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [0, 0, 0] }, @@ -1830,25 +1830,25 @@ }, "lerp_mode": "catmullrom" }, - "0.1961": { + "0.2083": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [-4.99457, 0.02413, 0.22998] }, "lerp_mode": "catmullrom" }, - "0.5882": { + "0.5833": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [-4.99457, 0.02413, 0.22998] }, @@ -1862,25 +1862,25 @@ }, "lerp_mode": "catmullrom" }, - "0.1961": { + "0.2083": { "post": { "vector": [0, 0.25, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.5882": { + "0.5833": { "post": { "vector": [0, 0.25, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [0, 0, 0] }, @@ -1893,7 +1893,7 @@ "0.0": { "vector": [0, 0, 0] }, - "0.098": { + "0.0833": { "pre": { "vector": [-2.5, 0, 0] }, @@ -1902,25 +1902,25 @@ }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.4902": { + "0.5": { "post": { "vector": [-2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "vector": [0, 0, 0] } } @@ -1930,7 +1930,7 @@ "0.0": { "vector": [0, 0, 0] }, - "0.098": { + "0.0833": { "pre": { "vector": [-2.5, 0, 0] }, @@ -1939,25 +1939,25 @@ }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.4902": { + "0.5": { "post": { "vector": [-2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "vector": [0, 0, 0] } } @@ -1967,7 +1967,7 @@ "0.0": { "vector": [0, 0, 0] }, - "0.098": { + "0.0833": { "pre": { "vector": [-2.5, 0, 0] }, @@ -1976,25 +1976,25 @@ }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.4902": { + "0.5": { "post": { "vector": [-2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "vector": [0, 0, 0] } } @@ -2004,7 +2004,7 @@ "0.0": { "vector": [0, 0, 0] }, - "0.098": { + "0.0833": { "pre": { "vector": [-2.5, 0, 0] }, @@ -2013,25 +2013,25 @@ }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.4902": { + "0.5": { "post": { "vector": [-2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "vector": [0, 0, 0] } } @@ -2041,7 +2041,7 @@ "0.0": { "vector": [7.5, -0.00418, -0.00187] }, - "0.098": { + "0.0833": { "pre": { "vector": [7.5, -0.00258, 0.00011] }, @@ -2050,25 +2050,25 @@ }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [12.5, 0.0043, 0] }, "lerp_mode": "catmullrom" }, - "0.4902": { + "0.5": { "post": { "vector": [7.5, 0.00258, -0.00011] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [12.5, -0.00304, -0.0002] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "vector": [7.5, -0.00418, -0.00187] } } @@ -2081,31 +2081,31 @@ }, "lerp_mode": "catmullrom" }, - "0.098": { + "0.0833": { "post": { "vector": [-12.5, 0.0029, -0.00186] }, "lerp_mode": "catmullrom" }, - "0.2941": { + "0.2917": { "post": { "vector": [-15, -0.0048, 0.00362] }, "lerp_mode": "catmullrom" }, - "0.4902": { + "0.5": { "post": { "vector": [-17.5, -0.00422, 0.00297] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [-15, -0.0048, 0.00362] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [-12.5, 0.00751, -0.00134] }, @@ -2121,19 +2121,19 @@ }, "lerp_mode": "catmullrom" }, - "0.1961": { + "0.2083": { "post": { "vector": [-3.75, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [-22.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [27.5, 0, 0] }, @@ -2147,25 +2147,25 @@ }, "lerp_mode": "catmullrom" }, - "0.1471": { + "0.1667": { "post": { "vector": [0, 6, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [0, -0.75, -3] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [0, 0.75, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [0, 2.88, 2.12] }, @@ -2181,37 +2181,37 @@ }, "lerp_mode": "catmullrom" }, - "0.0327": { + "0.0417": { "post": { "vector": [-12.1, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.1634": { + "0.1667": { "post": { "vector": [15.33, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [-12.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.5392": { + "0.5417": { "post": { "vector": [-3.01, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [-2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [-12.07, 0, 0] }, @@ -2227,37 +2227,37 @@ }, "lerp_mode": "catmullrom" }, - "0.098": { + "0.0833": { "post": { "vector": [17, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.2451": { + "0.25": { "post": { "vector": [10, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [17.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.5392": { + "0.5417": { "post": { "vector": [-1.25, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [10, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [29.95, 0, 0] }, @@ -2273,37 +2273,37 @@ }, "lerp_mode": "catmullrom" }, - "0.098": { + "0.0833": { "post": { "vector": [55, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.2451": { + "0.25": { "post": { "vector": [37.18, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [17.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.5392": { + "0.5417": { "post": { "vector": [12.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [-22.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [15.18, 0, 0] }, @@ -2317,25 +2317,25 @@ }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.5392": { + "0.5417": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.6863": { + "0.6667": { "post": { "vector": [0, -0.63071, 0.18778] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [0, -0.58, 0.17] }, @@ -2351,25 +2351,25 @@ }, "lerp_mode": "catmullrom" }, - "0.1797": { + "0.1667": { "post": { "vector": [-5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.3922": { + "0.375": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.5719": { + "0.5833": { "post": { "vector": [-5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7843": { + "0.7917": { "post": { "vector": [0, 0, 0] }, @@ -2390,25 +2390,25 @@ }, "lerp_mode": "catmullrom" }, - "0.5682": { + "0.5833": { "post": { "vector": [-45, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.8523": { + "0.8333": { "post": { "vector": [-42.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [-22.5, 0, 0] }, - "3.4091": { + "3.4167": { "vector": [-22.5, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -2422,19 +2422,19 @@ "0.0": { "vector": [0, 0, 0] }, - "0.5682": { + "0.5833": { "vector": [0, 2.5, 0] }, - "1.1364": { + "1.125": { "vector": [0, -1, 0] }, - "3.4091": { + "3.4167": { "vector": [0, -1, 0] }, - "3.6932": { + "3.7083": { "vector": [0, 0.25, 0] }, - "3.9773": { + "3.9583": { "vector": [0, 0, 0] } } @@ -2447,25 +2447,25 @@ }, "lerp_mode": "catmullrom" }, - "0.5682": { + "0.5833": { "post": { "vector": [7.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.8523": { + "0.8333": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [-22.5, 0, 0] }, - "3.4091": { + "3.4167": { "vector": [-22.5, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -2484,25 +2484,25 @@ }, "lerp_mode": "catmullrom" }, - "0.5682": { + "0.5833": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.8523": { + "0.8333": { "post": { "vector": [15, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [22.5, 0, 0] }, - "3.4091": { + "3.4167": { "vector": [22.5, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -2521,25 +2521,25 @@ }, "lerp_mode": "catmullrom" }, - "0.5682": { + "0.5833": { "post": { "vector": [82.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.8523": { + "0.8333": { "post": { "vector": [55, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [22.5, 0, 0] }, - "3.4091": { + "3.4167": { "vector": [22.5, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -2556,19 +2556,19 @@ }, "lerp_mode": "catmullrom" }, - "0.5682": { + "0.5833": { "post": { "vector": [0, -0.78248, -0.58913] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [0, 0.29846, -0.40115] }, - "3.4091": { + "3.4167": { "vector": [0, 0.29846, -0.40115] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -2587,22 +2587,22 @@ }, "lerp_mode": "catmullrom" }, - "0.7102": { + "0.7083": { "post": { "vector": [-15, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "post": { "vector": [12.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.4091": { + "3.4167": { "vector": [12.5, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -2621,19 +2621,19 @@ }, "lerp_mode": "catmullrom" }, - "0.7102": { + "0.7083": { "post": { "vector": [-5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.089": { + "1.0833": { "post": { "vector": [-0.03623, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -2649,19 +2649,19 @@ }, "lerp_mode": "catmullrom" }, - "0.8523": { + "0.8333": { "post": { "vector": [-5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.2311": { + "1.25": { "post": { "vector": [-0.03623, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -2683,13 +2683,13 @@ }, "lerp_mode": "catmullrom" }, - "1.4205": { + "1.4167": { "post": { "vector": [-5.03623, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -2705,19 +2705,19 @@ }, "lerp_mode": "catmullrom" }, - "1.1837": { + "1.1667": { "post": { "vector": [-5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.5625": { + "1.5833": { "post": { "vector": [-0.03623, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -2733,19 +2733,19 @@ }, "lerp_mode": "catmullrom" }, - "1.3258": { + "1.3333": { "post": { "vector": [-5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.7045": { + "1.7083": { "post": { "vector": [-2.53623, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -2761,19 +2761,19 @@ }, "lerp_mode": "catmullrom" }, - "1.5152": { + "1.5": { "post": { "vector": [-5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.8939": { + "1.875": { "post": { "vector": [-2.53623, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -2789,25 +2789,25 @@ }, "lerp_mode": "catmullrom" }, - "0.7102": { + "0.7083": { "post": { "vector": [12.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1837": { + "1.1667": { "post": { "vector": [-43.64153, 6.44251, 15.57614] }, "lerp_mode": "catmullrom" }, - "3.5511": { + "3.5417": { "post": { "vector": [-43.64153, 6.44251, 15.57614] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -2823,25 +2823,25 @@ }, "lerp_mode": "catmullrom" }, - "0.7102": { + "0.7083": { "post": { "vector": [12.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1837": { + "1.1667": { "post": { "vector": [-43.64153, -6.44251, -15.57614] }, "lerp_mode": "catmullrom" }, - "3.5511": { + "3.5417": { "post": { "vector": [-43.64153, -6.44251, -15.57614] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -2857,16 +2857,16 @@ }, "lerp_mode": "catmullrom" }, - "0.6155": { + "0.625": { "post": { "vector": [-5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [5, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -2885,61 +2885,61 @@ }, "lerp_mode": "catmullrom" }, - "0.4261": { + "0.4167": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "0.7576": { + "0.75": { "post": { "vector": [19.55, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "post": { "vector": [-37.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.6098": { + "1.625": { "post": { "vector": [-36.83224, -9.84314, -7.74302] }, "lerp_mode": "catmullrom" }, - "2.036": { + "2.0417": { "post": { "vector": [-36.83224, 9.84314, 7.74302] }, "lerp_mode": "catmullrom" }, - "2.4621": { + "2.4583": { "post": { "vector": [-36.83224, -9.84314, -7.74302] }, "lerp_mode": "catmullrom" }, - "2.8883": { + "2.875": { "post": { "vector": [-36.83224, 9.84314, 7.74302] }, "lerp_mode": "catmullrom" }, - "3.4091": { + "3.4167": { "post": { "vector": [-37.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.6932": { + "3.7083": { "post": { "vector": [-1.25, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -2953,31 +2953,31 @@ }, "lerp_mode": "catmullrom" }, - "0.7576": { + "0.75": { "post": { "vector": [0, 0.57264, -1.04288] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "post": { "vector": [0, -1.45865, 1.36833] }, "lerp_mode": "catmullrom" }, - "3.4091": { + "3.4167": { "post": { "vector": [0, -1.45865, 1.36833] }, "lerp_mode": "catmullrom" }, - "3.6932": { + "3.7083": { "post": { "vector": [0, -0.14531, -0.13126] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -2987,7 +2987,7 @@ }, "LowerJaw": { "rotation": { - "0.5682": { + "0.5833": { "pre": { "vector": [0, 0, 0] }, @@ -2996,19 +2996,19 @@ }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "post": { "vector": [45, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.4091": { + "3.4167": { "post": { "vector": [45, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -3024,13 +3024,13 @@ }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [0, 0, -8.75] }, - "3.4091": { + "3.4167": { "vector": [0, 0, -8.75] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3049,7 +3049,7 @@ }, "lerp_mode": "catmullrom" }, - "0.5682": { + "0.5833": { "post": { "vector": [-27.5, 0, 0] }, @@ -3061,13 +3061,13 @@ }, "lerp_mode": "catmullrom" }, - "3.5511": { + "3.5417": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -3083,13 +3083,13 @@ }, "lerp_mode": "catmullrom" }, - "0.4735": { + "0.4583": { "post": { "vector": [-50.94942, 28.79314, -49.54342] }, "lerp_mode": "catmullrom" }, - "0.947": { + "0.9583": { "post": { "vector": [0, 0, 0] }, @@ -3103,13 +3103,13 @@ }, "lerp_mode": "catmullrom" }, - "0.4735": { + "0.4583": { "post": { "vector": [0.25, 0.75, 0.25] }, "lerp_mode": "catmullrom" }, - "0.947": { + "0.9583": { "post": { "vector": [0, 0, 0] }, @@ -3125,7 +3125,7 @@ }, "lerp_mode": "catmullrom" }, - "0.5682": { + "0.5833": { "post": { "vector": [-27.5, 0, 0] }, @@ -3137,13 +3137,13 @@ }, "lerp_mode": "catmullrom" }, - "3.5511": { + "3.5417": { "post": { "vector": [0, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -3159,13 +3159,13 @@ }, "lerp_mode": "catmullrom" }, - "0.4735": { + "0.4583": { "post": { "vector": [50.94942, -28.79314, 49.54342] }, "lerp_mode": "catmullrom" }, - "0.947": { + "0.9583": { "post": { "vector": [0, 0, 0] }, @@ -3179,13 +3179,13 @@ }, "lerp_mode": "catmullrom" }, - "0.4735": { + "0.4583": { "post": { "vector": [-0.25, 0.75, 0.25] }, "lerp_mode": "catmullrom" }, - "0.947": { + "0.9583": { "post": { "vector": [0, 0, 0] }, @@ -3201,16 +3201,16 @@ }, "lerp_mode": "catmullrom" }, - "0.6155": { + "0.625": { "post": { "vector": [2.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [2.5, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3229,16 +3229,16 @@ }, "lerp_mode": "catmullrom" }, - "0.6155": { + "0.625": { "post": { "vector": [5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [-7.5, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3257,16 +3257,16 @@ }, "lerp_mode": "catmullrom" }, - "0.6155": { + "0.625": { "post": { "vector": [7.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [-2.5, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3285,13 +3285,13 @@ }, "lerp_mode": "catmullrom" }, - "0.6155": { + "0.625": { "post": { "vector": [7.5, 0, 0] }, "lerp_mode": "catmullrom" }, - "3.9773": { + "3.9583": { "post": { "vector": [0, 0, 0] }, @@ -3307,10 +3307,10 @@ }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [0, 0.24992, 0.0062] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3329,13 +3329,13 @@ }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [20, 0, 0] }, - "3.4091": { + "3.4167": { "vector": [20, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3352,16 +3352,16 @@ }, "lerp_mode": "catmullrom" }, - "0.5682": { + "0.5833": { "vector": [0, 1.25, 0] }, - "1.1364": { + "1.125": { "vector": [0, 1, 0] }, - "3.4091": { + "3.4167": { "vector": [0, 1, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3380,13 +3380,13 @@ }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [-15, 0, 0] }, - "3.4091": { + "3.4167": { "vector": [-15, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3403,13 +3403,13 @@ }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [0, 0, 0] }, - "3.4091": { + "3.4167": { "vector": [0, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3428,13 +3428,13 @@ }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [32.5, 0, 0] }, - "3.4091": { + "3.4167": { "vector": [32.5, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3451,13 +3451,13 @@ }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [0, 0, 0] }, - "3.4091": { + "3.4167": { "vector": [0, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3476,13 +3476,13 @@ }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [-37.5, 0, 0] }, - "3.4091": { + "3.4167": { "vector": [-37.5, 0, 0] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3499,13 +3499,13 @@ }, "lerp_mode": "catmullrom" }, - "1.1364": { + "1.125": { "vector": [0, 0, 0.2] }, - "3.4091": { + "3.4167": { "vector": [0, 0, 0.2] }, - "3.9773": { + "3.9583": { "pre": { "vector": [0, 0, 0] }, @@ -3518,7 +3518,7 @@ } }, "sound_effects": { - "0.142": { + "0.125": { "effect": "trex_scream2.mp3" } } @@ -3610,16 +3610,6 @@ "lerp_mode": "catmullrom" } } - }, - "Teeth": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "1.25": { - "vector": [-50, 0, 0] - } - } } } }, @@ -3874,6 +3864,5 @@ } } } - }, - "geckolib_format_version": 2 + } } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/geo/chilesaurus.geo.json b/common/src/main/resources/assets/jurassicrevived/geo/chilesaurus.geo.json new file mode 100644 index 0000000..bc82e4c --- /dev/null +++ b/common/src/main/resources/assets/jurassicrevived/geo/chilesaurus.geo.json @@ -0,0 +1,281 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.chilesaurus", + "texture_width": 128, + "texture_height": 128, + "visible_bounds_width": 7, + "visible_bounds_height": 3.5, + "visible_bounds_offset": [0, 1.25, 0] + }, + "bones": [ + { + "name": "root", + "pivot": [0, 24, 0] + }, + { + "name": "Body REAR", + "parent": "root", + "pivot": [0, 18.5, 0], + "rotation": [-7.83, 0, 0], + "cubes": [ + {"origin": [-4.5, 13.5, -1.5], "size": [9, 10, 10], "uv": [0, 0]} + ] + }, + { + "name": "Body MIDDLE", + "parent": "Body REAR", + "pivot": [0, 17.7, -8.9], + "rotation": [5.22, 0, 0], + "cubes": [ + {"origin": [-4, 13.4, -7.3], "size": [8, 9, 9], "uv": [0, 23]} + ] + }, + { + "name": "Body FRONT", + "parent": "Body MIDDLE", + "pivot": [0, 16.9, -8], + "rotation": [5.22, 0, 0], + "cubes": [ + {"origin": [-3.5, 14.1, -13], "size": [7, 8, 7], "uv": [68, 60]} + ] + }, + { + "name": "Neck BASE", + "parent": "Body FRONT", + "pivot": [0, 19.3, -14.5], + "rotation": [-23.48, 0, 0], + "cubes": [ + {"origin": [-3, 16.3, -15.9], "size": [6, 6, 6], "uv": [0, 43]} + ] + }, + { + "name": "Neck 2", + "parent": "Neck BASE", + "pivot": [0, 21, -18.8], + "rotation": [-13.04, 0, 0], + "cubes": [ + {"origin": [-2.5, 17.5, -20.9], "size": [5, 5, 7], "uv": [0, 60]} + ] + }, + { + "name": "Neck 3", + "parent": "Neck 2", + "pivot": [0, 21.8, -22.9], + "rotation": [-8.22, 0, 0], + "cubes": [ + {"origin": [-2, 18.4, -26.9], "size": [4, 4, 8], "uv": [0, 78]} + ] + }, + { + "name": "Head ", + "parent": "Neck 3", + "pivot": [0, 20.8, -25], + "rotation": [46.35, 0, 0], + "cubes": [ + {"origin": [-2.5, 18.3, -31], "size": [5, 5, 6], "uv": [0, 97]} + ] + }, + { + "name": "Nose", + "parent": "Head ", + "pivot": [0, 19.9, -32.7], + "rotation": [18.26, 0, 0], + "cubes": [ + {"origin": [-2, 17.9, -32.7], "size": [4, 4, 4], "uv": [0, 113]} + ] + }, + { + "name": "BEAKIE", + "parent": "Nose", + "pivot": [0, 21.5, -31.8], + "rotation": [20.87, 0, 0], + "cubes": [ + {"origin": [-1.5, 18.5, -33.8], "size": [3, 3, 2], "uv": [21, 116]} + ] + }, + { + "name": "Arm UPPER LEFT", + "parent": "Body FRONT", + "pivot": [-2.7, 17.5, -11], + "rotation": [13, -13, 0], + "cubes": [ + {"origin": [-4.7, 13.5, -12], "size": [2, 4, 2], "uv": [100, 0]} + ] + }, + { + "name": "Arm MIDDLE LEFT", + "parent": "Arm UPPER LEFT", + "pivot": [-3.69, 14.4, -10.6], + "rotation": [-57.39, 0, 0], + "cubes": [ + {"origin": [-4.69, 9.4, -11.6], "size": [2, 5, 2], "uv": [100, 10]} + ] + }, + { + "name": "Arm HAND LEFT", + "parent": "Arm MIDDLE LEFT", + "pivot": [-3.69, 10.1, -11.2], + "rotation": [60, 0, 0], + "cubes": [ + {"origin": [-4.69, 7.1, -12.2], "size": [2, 3, 1], "uv": [100, 25]} + ] + }, + { + "name": "Arm UPPER RIGHT", + "parent": "Body FRONT", + "pivot": [2.7, 17.5, -11], + "rotation": [13, 13, 0], + "cubes": [ + {"origin": [2.7, 13.5, -12], "size": [2, 4, 2], "uv": [100, 0]} + ] + }, + { + "name": "Arm MIDDLE RIGHT", + "parent": "Arm UPPER RIGHT", + "pivot": [3.69, 14.4, -10.6], + "rotation": [-57.39, 0, 0], + "cubes": [ + {"origin": [2.69, 9.4, -11.6], "size": [2, 5, 2], "uv": [100, 10]} + ] + }, + { + "name": "Arm HAND RIGHT", + "parent": "Arm MIDDLE RIGHT", + "pivot": [3.69, 10.1, -11.2], + "rotation": [60, 0, 0], + "cubes": [ + {"origin": [2.69, 7.1, -12.2], "size": [2, 3, 1], "uv": [100, 25]} + ] + }, + { + "name": "Tail BASE", + "parent": "Body REAR", + "pivot": [0, 19.5, 7.4], + "rotation": [5.22, 0, 0], + "cubes": [ + {"origin": [-3.5, 16, 7.4], "size": [7, 7, 7], "uv": [41, 0]} + ] + }, + { + "name": "Tail 2", + "parent": "Tail BASE", + "pivot": [0, 19.7, 13.9], + "rotation": [-2.61, 0, 0], + "cubes": [ + {"origin": [-3, 16.7, 13.9], "size": [6, 6, 7], "uv": [35, 20]} + ] + }, + { + "name": "Tail 3", + "parent": "Tail 2", + "pivot": [0, 19.9, 20.5], + "rotation": [-2.61, 0, 0], + "cubes": [ + {"origin": [-2.5, 17.4, 20.5], "size": [5, 5, 7], "uv": [35, 42]} + ] + }, + { + "name": "Tail 4", + "parent": "Tail 3", + "pivot": [0, 20.1, 26.7], + "cubes": [ + {"origin": [-2, 18.1, 26.7], "size": [4, 4, 7], "uv": [35, 59]} + ] + }, + { + "name": "Tail 5", + "parent": "Tail 4", + "pivot": [0, 20.3, 32.6], + "rotation": [-2.61, 0, 0], + "cubes": [ + {"origin": [-1.5, 18.8, 32.6], "size": [3, 3, 8], "uv": [35, 80]} + ] + }, + { + "name": "Tail 6", + "parent": "Tail 5", + "pivot": [0, 20.6, 39.6], + "rotation": [-2.61, 0, 0], + "cubes": [ + {"origin": [-1, 19.6, 39.6], "size": [2, 2, 8], "uv": [35, 97]} + ] + }, + { + "name": "Leg UPPER LEFT", + "parent": "root", + "pivot": [-3, 18.1, 2.6], + "rotation": [-31.3, 0, 0], + "cubes": [ + {"origin": [-7, 10.1, 2.6], "size": [4, 10, 5], "uv": [70, 0]} + ] + }, + { + "name": "Leg MIDDLE LEFT", + "parent": "Leg UPPER LEFT", + "pivot": [-5, 11.6, 4.2], + "rotation": [-28.7, 0, 0], + "cubes": [ + {"origin": [-6.5, 10.1, 4.2], "size": [3, 3, 7], "uv": [70, 20]} + ] + }, + { + "name": "Leg LOWER LEFT", + "parent": "Leg MIDDLE LEFT", + "pivot": [-5, 12, 10.2], + "rotation": [-54.78, 0, 0], + "cubes": [ + {"origin": [-6, 11, 10.2], "size": [2, 2, 6], "uv": [70, 36]} + ] + }, + { + "name": "Foot LEFT", + "parent": "Leg LOWER LEFT", + "pivot": [-5, 12.8, 15.1], + "rotation": [25, 0, 0], + "cubes": [ + {"origin": [-6.5, 8.8, 15.1], "size": [3, 4, 2], "uv": [70, 50]} + ] + }, + { + "name": "Leg UPPER RIGHT", + "parent": "root", + "pivot": [3, 18.1, 2.6], + "rotation": [-31.3, 0, 0], + "cubes": [ + {"origin": [3, 10.1, 2.6], "size": [4, 10, 5], "uv": [70, 0], "mirror": true} + ] + }, + { + "name": "Leg MIDDLE RIGHT", + "parent": "Leg UPPER RIGHT", + "pivot": [5, 11.6, 4.2], + "rotation": [-28.7, 0, 0], + "cubes": [ + {"origin": [3.5, 10.1, 4.2], "size": [3, 3, 7], "uv": [70, 20], "mirror": true} + ] + }, + { + "name": "Leg LOWER RIGHT", + "parent": "Leg MIDDLE RIGHT", + "pivot": [5, 12.1, 10.1], + "rotation": [-54.78, 0, 0], + "cubes": [ + {"origin": [4, 11.1, 10.1], "size": [2, 2, 6], "uv": [70, 36], "mirror": true} + ] + }, + { + "name": "Foot RIGHT", + "parent": "Leg LOWER RIGHT", + "pivot": [5, 12.9, 15], + "rotation": [25, 0, 0], + "cubes": [ + {"origin": [3.5, 8.9, 15], "size": [3, 4, 2], "uv": [70, 50], "mirror": true} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/geo/mussasaurus.geo.json b/common/src/main/resources/assets/jurassicrevived/geo/mussasaurus.geo.json new file mode 100644 index 0000000..516b377 --- /dev/null +++ b/common/src/main/resources/assets/jurassicrevived/geo/mussasaurus.geo.json @@ -0,0 +1,474 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.mussasaurus", + "texture_width": 256, + "texture_height": 128, + "visible_bounds_width": 10, + "visible_bounds_height": 3.5, + "visible_bounds_offset": [0, 1.25, 0] + }, + "bones": [ + { + "name": "Body1", + "pivot": [0, 20, 0], + "rotation": [-3.96, 0, 0], + "cubes": [ + {"origin": [-6, 12.5, -5], "size": [12, 15, 10], "uv": [0, 0]} + ] + }, + { + "name": "Body2", + "parent": "Body1", + "pivot": [0, 20.2, -4], + "rotation": [8.64, 0, 0], + "cubes": [ + {"origin": [-5, 13.2, -15], "size": [10, 14, 11], "uv": [0, 30]} + ] + }, + { + "name": "Body3", + "parent": "Body2", + "pivot": [0, 20.3, -14.2], + "rotation": [6.12, 0, 0], + "cubes": [ + {"origin": [-4.5, 13.8, -20.2], "size": [9, 13, 6], "uv": [0, 65]} + ] + }, + { + "name": "Neck1", + "parent": "Body3", + "pivot": [0, 18.6, -17.2], + "rotation": [-44.35, 0, 0], + "cubes": [ + {"origin": [-4, 14.6, -25.2], "size": [8, 8, 8], "uv": [0, 90]} + ] + }, + { + "name": "Neck2", + "parent": "Neck1", + "pivot": [0, 18.2, -23.6], + "rotation": [-12.31, 0, 0], + "cubes": [ + {"origin": [-3.5, 14.7, -27.6], "size": [7, 7, 4], "uv": [0, 114]} + ] + }, + { + "name": "Neck3", + "parent": "Neck2", + "pivot": [0, 18, -26.9], + "rotation": [-7.27, 0, 0], + "cubes": [ + {"origin": [-3, 15, -29.9], "size": [6, 6, 3], "inflate": -0.01, "uv": [30, 114]} + ] + }, + { + "name": "Neck4", + "parent": "Neck3", + "pivot": [0, 18.02, -29.4], + "rotation": [6.77, 0, 0], + "cubes": [ + {"origin": [-3, 15.02, -32.4], "size": [6, 6, 3], "uv": [56, 114]} + ] + }, + { + "name": "Neck5", + "parent": "Neck4", + "pivot": [0, 18.02, -31.9], + "rotation": [6.41, 0, 0], + "cubes": [ + {"origin": [-3, 15.02, -33.9], "size": [6, 6, 2], "inflate": -0.01, "uv": [79, 114]} + ] + }, + { + "name": "Neck6", + "parent": "Neck5", + "pivot": [0, 18.02, -33.5], + "rotation": [6.05, 0, 0], + "cubes": [ + {"origin": [-3, 15.02, -35.5], "size": [6, 6, 2], "uv": [101, 114]} + ] + }, + { + "name": "Neck7", + "parent": "Neck6", + "pivot": [0, 18.04, -35.1], + "rotation": [6.41, 0, 0], + "cubes": [ + {"origin": [-3, 15.04, -37.1], "size": [6, 6, 2], "inflate": -0.01, "uv": [79, 100]} + ] + }, + { + "name": "Neck8", + "parent": "Neck7", + "pivot": [0, 18.06, -36.7], + "rotation": [6.05, 0, 0], + "cubes": [ + {"origin": [-3, 15.06, -38.7], "size": [6, 6, 2], "uv": [101, 97]} + ] + }, + { + "name": "Neck9", + "parent": "Neck8", + "pivot": [0, 18.08, -38.3], + "rotation": [6.41, 0, 0], + "cubes": [ + {"origin": [-3, 15.08, -40.3], "size": [6, 6, 2], "inflate": -0.01, "uv": [79, 100]} + ] + }, + { + "name": "Neck10", + "parent": "Neck9", + "pivot": [0, 18.08, -39.9], + "rotation": [6.05, 0, 0], + "cubes": [ + {"origin": [-3, 15.08, -41.9], "size": [6, 6, 2], "uv": [78, 86]} + ] + }, + { + "name": "Neck11", + "parent": "Neck10", + "pivot": [0, 18.12, -41.5], + "rotation": [7.85, 0, 0], + "cubes": [ + {"origin": [-3, 15.12, -43.5], "size": [6, 6, 2], "inflate": -0.01, "uv": [101, 81]} + ] + }, + { + "name": "Head1", + "parent": "Neck11", + "pivot": [0, 18.27, -42.5], + "rotation": [7.85, 0, 0], + "cubes": [ + {"origin": [-3.5, 15.27, -46.5], "size": [7, 6, 4], "uv": [101, 58]} + ] + }, + { + "name": "Head2", + "parent": "Head1", + "pivot": [0, 16.87, -46.1], + "cubes": [ + {"origin": [-3, 16.37, -52.1], "size": [6, 2, 6], "uv": [101, 44]} + ] + }, + { + "name": "Snout1", + "parent": "Head1", + "pivot": [0, 19.77, -44.9], + "rotation": [5.04, 0, 0], + "cubes": [ + {"origin": [-2.5, 18.27, -47.9], "size": [5, 3, 2], "uv": [81, 75]} + ] + }, + { + "name": "Snout2", + "parent": "Snout1", + "pivot": [0, 19.85, -47.42], + "rotation": [18.36, 0, 0], + "cubes": [ + {"origin": [-2.5, 18.35, -50.42], "size": [5, 3, 3], "uv": [120, 72]} + ] + }, + { + "name": "Snout3", + "parent": "Snout2", + "pivot": [0, 19.58, -50.66], + "rotation": [25.2, 0, 0], + "cubes": [ + {"origin": [-2.5, 19.08, -51.66], "size": [5, 2, 2], "uv": [107, 35]} + ] + }, + { + "name": "Snout4", + "parent": "Head1", + "pivot": [0, 16.02, -46], + "rotation": [1.8, 0, 0], + "cubes": [ + {"origin": [-2.5, 15.52, -49], "size": [5, 1, 3], "uv": [82, 67]} + ] + }, + { + "name": "Snout6", + "parent": "Snout4", + "pivot": [0, 16.02, -48.9], + "rotation": [-3.96, 0, 0], + "cubes": [ + {"origin": [-2, 15.52, -51.9], "size": [4, 1, 3], "uv": [82, 60]} + ] + }, + { + "name": "Crest1", + "parent": "Head1", + "pivot": [0, 23.27, -46.4], + "cubes": [ + {"origin": [0, 20.27, -46.4], "size": [0, 3, 4], "uv": [200, 100]} + ] + }, + { + "name": "Crest2", + "parent": "Neck8", + "pivot": [0, 22.56, -43.7], + "rotation": [5.04, 0, 0], + "cubes": [ + {"origin": [0, 19.56, -43.7], "size": [0, 3, 6], "uv": [200, 108]} + ] + }, + { + "name": "Crest3", + "parent": "Neck5", + "pivot": [0, 22.82, -37.4], + "rotation": [0.36, 0, 0], + "cubes": [ + {"origin": [0, 19.82, -37.4], "size": [0, 3, 6], "uv": [200, 70]} + ] + }, + { + "name": "LFL1", + "parent": "Body3", + "pivot": [4.5, 19.1, -17.5], + "rotation": [16.91, 0, 0], + "cubes": [ + {"origin": [3, 9.1, -19.5], "size": [3, 10, 4], "uv": [210, 0]} + ] + }, + { + "name": "LFL2", + "parent": "LFL1", + "pivot": [4.5, 10, -17], + "rotation": [-33.91, 0, 0], + "cubes": [ + {"origin": [3.5, 1, -18.5], "size": [2, 9, 3], "uv": [210, 22]} + ] + }, + { + "name": "LeftHand", + "parent": "LFL2", + "pivot": [4.5, 0.9, -16.5], + "rotation": [5.22, 0, 0], + "cubes": [ + {"origin": [3, -0.1, -19.5], "size": [3, 2, 4], "uv": [210, 40]} + ] + }, + { + "name": "RFL1", + "parent": "Body3", + "pivot": [-4.5, 19.1, -17.5], + "rotation": [16.91, 0, 0], + "cubes": [ + {"origin": [-6, 9.1, -19.5], "size": [3, 10, 4], "uv": [230, 0]} + ] + }, + { + "name": "RFL2", + "parent": "RFL1", + "pivot": [-4.5, 10, -17], + "rotation": [-33.91, 0, 0], + "cubes": [ + {"origin": [-5.5, 1, -18.5], "size": [2, 9, 3], "uv": [240, 22]} + ] + }, + { + "name": "RightHand", + "parent": "RFL2", + "pivot": [-4.5, 0.9, -16.5], + "rotation": [5.22, 0, 0], + "cubes": [ + {"origin": [-6, -0.1, -19.5], "size": [3, 2, 4], "uv": [240, 40]} + ] + }, + { + "name": "Crest4", + "parent": "Body3", + "pivot": [0, 29.6, -20.5], + "cubes": [ + {"origin": [0, 26.6, -20.5], "size": [0, 3, 6], "uv": [220, 100]} + ] + }, + { + "name": "Crest5", + "parent": "Body2", + "pivot": [0, 30.1, -15], + "cubes": [ + {"origin": [0, 27.1, -15], "size": [0, 3, 11], "uv": [220, 70]} + ] + }, + { + "name": "Tail1", + "parent": "Body1", + "pivot": [0, 21.8, 3.6], + "rotation": [7.92, 0, 0], + "cubes": [ + {"origin": [-4.5, 14.8, 3.6], "size": [9, 12, 6], "uv": [55, 0]} + ] + }, + { + "name": "Tail2", + "parent": "Tail1", + "pivot": [0, 22, 8.6], + "rotation": [-2.16, 0, 0], + "cubes": [ + {"origin": [-4, 16.5, 8.6], "size": [8, 10, 7], "uv": [55, 25]} + ] + }, + { + "name": "Tail3", + "parent": "Tail2", + "pivot": [0, 22.2, 14.1], + "rotation": [-2.16, 0, 0], + "cubes": [ + {"origin": [-3.5, 18.2, 14.1], "size": [7, 8, 7], "uv": [51, 48]} + ] + }, + { + "name": "Tail4", + "parent": "Tail3", + "pivot": [0, 22.4, 19.6], + "rotation": [-2.88, 0, 0], + "cubes": [ + {"origin": [-3, 18.9, 19.6], "size": [6, 7, 8], "uv": [122, 111]} + ] + }, + { + "name": "Tail5", + "parent": "Tail4", + "pivot": [0, 22.6, 26.8], + "rotation": [-4.32, 0, 0], + "cubes": [ + {"origin": [-2.4, 19.6, 26.8], "size": [5, 6, 9], "uv": [51, 71]} + ] + }, + { + "name": "Tail6", + "parent": "Tail5", + "pivot": [0, 22.8, 34.8], + "rotation": [0.36, 0, 0], + "cubes": [ + {"origin": [-2, 20.3, 34.8], "size": [4, 5, 9], "uv": [51, 89]} + ] + }, + { + "name": "Tail7", + "parent": "Tail6", + "pivot": [0, 23, 43.6], + "rotation": [0.36, 0, 0], + "cubes": [ + {"origin": [-1.5, 21, 43.6], "size": [3, 4, 10], "uv": [94, 0]} + ] + }, + { + "name": "Tail8", + "parent": "Tail7", + "pivot": [0, 23.2, 53.6], + "rotation": [1.8, 0, 0], + "cubes": [ + {"origin": [-1, 21.7, 53.6], "size": [2, 3, 11], "uv": [94, 18]} + ] + }, + { + "name": "Crest9", + "parent": "Tail7", + "pivot": [0, 27.5, 43.7], + "cubes": [ + {"origin": [0, 24.5, 43.7], "size": [0, 3, 10], "uv": [200, 54]} + ] + }, + { + "name": "Crest8", + "parent": "Tail6", + "pivot": [0, 27.5, 36.3], + "cubes": [ + {"origin": [0, 24.5, 36.3], "size": [0, 3, 7], "uv": [200, 88]} + ] + }, + { + "name": "Crest7", + "parent": "Tail5", + "pivot": [0, 27.6, 26.8], + "cubes": [ + {"origin": [0, 24.6, 26.8], "size": [0, 3, 9], "uv": [220, 87]} + ] + }, + { + "name": "Crest6", + "parent": "Body1", + "pivot": [0, 29.9, -5], + "cubes": [ + {"origin": [0, 26.9, -5], "size": [0, 3, 10], "uv": [220, 108]} + ] + }, + { + "name": "LBL1", + "pivot": [6, 24.8, 0.6], + "rotation": [-10.44, 0, 0], + "cubes": [ + {"origin": [3.5, 12.8, -2.9], "size": [5, 12, 7], "uv": [140, 0]} + ] + }, + { + "name": "LBL2", + "parent": "LBL1", + "pivot": [6, 14.2, -0.2], + "rotation": [31.85, 0, 0], + "cubes": [ + {"origin": [4.5, 3.2, -2.7], "size": [3, 11, 5], "uv": [140, 40]} + ] + }, + { + "name": "LBF1", + "parent": "LBL2", + "pivot": [6, 4.6, 0.7], + "rotation": [-39.94, 0, 0], + "cubes": [ + {"origin": [5, -0.4, -1.3], "size": [2, 5, 4], "uv": [140, 60]} + ] + }, + { + "name": "LBF2", + "parent": "LBF1", + "pivot": [6, 0.8, 2.4], + "rotation": [18.26, 0, 0], + "cubes": [ + {"origin": [4, -1.2, -3.6], "size": [4, 2, 6], "uv": [140, 80]} + ] + }, + { + "name": "RBL1", + "pivot": [-6, 24.8, 0.6], + "rotation": [-10.44, 0, 0], + "cubes": [ + {"origin": [-8.5, 12.8, -2.9], "size": [5, 12, 7], "uv": [180, 0]} + ] + }, + { + "name": "RBL2", + "parent": "RBL1", + "pivot": [-6, 14.2, -0.2], + "rotation": [31.85, 0, 0], + "cubes": [ + {"origin": [-7.5, 3.2, -2.7], "size": [3, 11, 5], "uv": [180, 40]} + ] + }, + { + "name": "RBF1", + "parent": "RBL2", + "pivot": [-6, 4.6, 0.7], + "rotation": [-39.94, 0, 0], + "cubes": [ + {"origin": [-7, -0.4, -1.3], "size": [2, 5, 4], "uv": [180, 60]} + ] + }, + { + "name": "RBF2", + "parent": "RBF1", + "pivot": [-6, 0.8, 2.4], + "rotation": [18.26, 0, 0], + "cubes": [ + {"origin": [-8, -1.2, -3.6], "size": [4, 2, 6], "uv": [180, 80]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/geo/suchomimus.geo.json b/common/src/main/resources/assets/jurassicrevived/geo/suchomimus.geo.json new file mode 100644 index 0000000..aeec2f3 --- /dev/null +++ b/common/src/main/resources/assets/jurassicrevived/geo/suchomimus.geo.json @@ -0,0 +1,453 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.suchomimus", + "texture_width": 256, + "texture_height": 256, + "visible_bounds_width": 11, + "visible_bounds_height": 3.5, + "visible_bounds_offset": [0, 1.25, 0] + }, + "bones": [ + { + "name": "Right Thigh", + "pivot": [9.5, 27.4, 7], + "rotation": [66.7, 0, 0], + "cubes": [ + {"origin": [4.5, 19.4, -6], "size": [5, 9, 13], "uv": [52, 138]} + ] + }, + { + "name": "Right Calf 1", + "parent": "Right Thigh", + "pivot": [7, 26.8, -5.2], + "rotation": [-37.19, 0, 0], + "cubes": [ + {"origin": [5, 15.8, -6.2], "size": [4, 11, 5], "uv": [54, 166]} + ] + }, + { + "name": "Right Calf 2", + "parent": "Right Calf 1", + "pivot": [7, 17.3, -2.7], + "rotation": [-55.31, 0, 0], + "cubes": [ + {"origin": [5.5, 8.3, -3.7], "size": [3, 9, 3], "uv": [0, 190]} + ] + }, + { + "name": "Foot Right", + "parent": "Right Calf 2", + "pivot": [7, 10, -1.7], + "rotation": [25.57, 0, 0], + "cubes": [ + {"origin": [4.5, 8, -7.7], "size": [5, 2, 7], "uv": [50, 209]} + ] + }, + { + "name": "Body 1", + "pivot": [0, 25.2, 7], + "rotation": [-9.72, 0, 0], + "cubes": [ + {"origin": [-6.5, 13.9, 4], "size": [13, 16, 10], "uv": [16, 1]} + ] + }, + { + "name": "Tail 1", + "parent": "Body 1", + "pivot": [0, 29.7, 14.5], + "rotation": [-1.56, 0, 0], + "cubes": [ + {"origin": [-4.5, 17.7, 13.5], "size": [10, 12, 10], "uv": [118, 35]} + ] + }, + { + "name": "Tail 2", + "parent": "Tail 1", + "pivot": [0, 27.9, 24], + "rotation": [-0.11, 0, 0], + "cubes": [ + {"origin": [-4, 19.9, 23], "size": [8, 9, 9], "uv": [118, 63]} + ] + }, + { + "name": "Tail 3", + "parent": "Tail 2", + "pivot": [0, 27.2, 32.5], + "rotation": [2.38, 0, 0], + "cubes": [ + {"origin": [-3.5, 21.2, 31.5], "size": [7, 7, 10], "uv": [118, 86]} + ] + }, + { + "name": "Tail 4", + "parent": "Tail 3", + "pivot": [0, 26.6, 41], + "rotation": [3.23, 0, 0], + "cubes": [ + {"origin": [-2.5, 21.6, 40], "size": [5, 6, 11], "uv": [118, 109]} + ] + }, + { + "name": "Tail 5", + "parent": "Tail 4", + "pivot": [0, 25.1, 48.8], + "rotation": [4.86, 0, 0], + "cubes": [ + {"origin": [-2, 22.6, 49.8], "size": [4, 4, 12], "uv": [118, 128]} + ] + }, + { + "name": "Tail 6", + "parent": "Tail 5", + "pivot": [-1.5, 25.9, 60.8], + "rotation": [5.22, 0, 0], + "cubes": [ + {"origin": [-1.5, 22.9, 60.8], "size": [3, 3, 14], "uv": [118, 152]} + ] + }, + { + "name": "Body 2", + "parent": "Body 1", + "pivot": [0, 25.3, 6], + "rotation": [7.33, 0, 0], + "cubes": [ + {"origin": [-5.5, 14.8, -5.41], "size": [11, 15, 10], "uv": [67, 1]} + ] + }, + { + "name": "Body 3", + "parent": "Body 2", + "pivot": [0, 29.39, -5.2], + "rotation": [12.61, 0, 0], + "cubes": [ + {"origin": [-4.5, 16.49, -14.2], "size": [9, 13, 9], "uv": [114, 2]} + ] + }, + { + "name": "Upper Arm LEFT", + "parent": "Body 3", + "pivot": [5.2, 20.39, -12.2], + "rotation": [19.53, 12.45, 0], + "cubes": [ + {"origin": [4.2, 15.39, -13.2], "size": [2, 5, 2], "uv": [12, 59]} + ] + }, + { + "name": "Lower Arm LEFT", + "parent": "Upper Arm LEFT", + "pivot": [5.1, 15.59, -11], + "rotation": [-46.41, 0, 0], + "cubes": [ + {"origin": [4.1, 10.39, -13.1], "size": [2, 5, 2], "uv": [12, 69]} + ] + }, + { + "name": "hand left", + "parent": "Lower Arm LEFT", + "pivot": [5.6, 10.79, -12], + "rotation": [138.26, -60, -125.22], + "cubes": [ + {"origin": [4.6, 7.79, -12], "size": [2, 3, 1], "uv": [55, 53]} + ] + }, + { + "name": "claw l 2", + "parent": "hand left", + "pivot": [5.6, 9.79, -11], + "rotation": [15.25, 0, 0], + "cubes": [ + {"origin": [5.1, 5.79, -12.5], "size": [1, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "claw l 1", + "parent": "hand left", + "pivot": [5.6, 9.79, -11], + "rotation": [15.24, 2.44, -23.07], + "cubes": [ + {"origin": [5.1, 5.79, -12.2], "size": [1, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "claw l 3", + "parent": "hand left", + "pivot": [5.6, 9.89, -11], + "rotation": [15.25, 2.62, 23.48], + "cubes": [ + {"origin": [5.1, 5.89, -12.2], "size": [1, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "Spines Left Arm", + "parent": "Lower Arm LEFT", + "pivot": [5.1, 15.89, -11.3], + "cubes": [ + {"origin": [5.1, 9.89, -11.3], "size": [0, 6, 2], "uv": [202, 202]} + ] + }, + { + "name": "Upper Arm Right", + "parent": "Body 3", + "pivot": [-5.2, 20.39, -12.2], + "rotation": [19.53, -12.45, 0], + "cubes": [ + {"origin": [-6.2, 15.39, -13.2], "size": [2, 5, 2], "uv": [0, 57]} + ] + }, + { + "name": "Lower Arm Right", + "parent": "Upper Arm Right", + "pivot": [-5.1, 15.59, -11], + "rotation": [-46.41, 0, 0], + "cubes": [ + {"origin": [-6.1, 10.39, -13.1], "size": [2, 5, 2], "uv": [0, 68]} + ] + }, + { + "name": "hand right", + "parent": "Lower Arm Right", + "pivot": [-5.6, 10.79, -12], + "rotation": [138.26, 60, 125.22], + "cubes": [ + {"origin": [-6.6, 7.79, -12], "size": [2, 3, 1], "uv": [55, 53]} + ] + }, + { + "name": "claw r 2", + "parent": "hand right", + "pivot": [-5.6, 9.79, -11], + "rotation": [15.25, 0, 0], + "cubes": [ + {"origin": [-6.1, 5.79, -12.5], "size": [1, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "claw r 1", + "parent": "hand right", + "pivot": [-5.6, 9.79, -11], + "rotation": [15.25, 2.62, 23.48], + "cubes": [ + {"origin": [-6.1, 5.79, -12.2], "size": [1, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "claw r 3", + "parent": "hand right", + "pivot": [-5.6, 9.89, -11], + "rotation": [15.24, 2.44, -23.07], + "cubes": [ + {"origin": [-6.1, 5.89, -12.2], "size": [1, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "Spines Right Arm", + "parent": "Lower Arm Right", + "pivot": [-5.1, 15.89, -11.3], + "cubes": [ + {"origin": [-5.1, 9.89, -11.3], "size": [0, 6, 2], "uv": [202, 202]} + ] + }, + { + "name": "Neck 1", + "parent": "Body 3", + "pivot": [0, 27.99, -8.99], + "rotation": [-21.99, 0, 0], + "cubes": [ + {"origin": [-3, 20.49, -18.99], "size": [6, 7, 7], "inflate": -0.01, "uv": [218, 1]} + ] + }, + { + "name": "Neck 2", + "parent": "Neck 1", + "pivot": [0, 27.89, -17.99], + "rotation": [-5.83, 0, 0], + "cubes": [ + {"origin": [-3, 20.39, -21.99], "size": [6, 7, 4], "uv": [218, 21]} + ] + }, + { + "name": "Neck 3", + "parent": "Neck 2", + "pivot": [0, 27.39, -21.99], + "rotation": [14.66, 0, 0], + "cubes": [ + {"origin": [-3, 20.39, -25.99], "size": [6, 7, 4], "inflate": -0.01, "uv": [218, 39]} + ] + }, + { + "name": "Neck 4", + "parent": "Neck 3", + "pivot": [0, 27.39, -25.99], + "rotation": [15, 0, 0], + "cubes": [ + {"origin": [-3, 20.39, -29.99], "size": [6, 7, 4], "uv": [218, 58]} + ] + }, + { + "name": "Neck 5", + "parent": "Neck 4", + "pivot": [0, 27.39, -29.99], + "rotation": [9.7, 0, 0], + "cubes": [ + {"origin": [-3, 20.39, -33.99], "size": [6, 7, 4], "inflate": -0.01, "uv": [218, 78]} + ] + }, + { + "name": "Head", + "parent": "Neck 5", + "pivot": [0, 25.89, -28.19], + "rotation": [-14.5, 0, 0], + "cubes": [ + {"origin": [-3.5, 18.89, -36.19], "size": [7, 7, 6], "uv": [0, 101]} + ] + }, + { + "name": "Upper Jaw 1", + "parent": "Head", + "pivot": [0, 20.99, -36.19], + "cubes": [ + {"origin": [-3, 20.99, -43.19], "size": [6, 4, 7], "uv": [30, 101]} + ] + }, + { + "name": "Upper Jaw 2", + "parent": "Upper Jaw 1", + "pivot": [0, 20.99, -43.19], + "cubes": [ + {"origin": [-2.5, 20.99, -49.19], "size": [5, 4, 6], "uv": [58, 101]} + ] + }, + { + "name": "Upper Jaw 3", + "parent": "Upper Jaw 1", + "pivot": [0, 25.79, -37.19], + "rotation": [3.6, 0, 0], + "cubes": [ + {"origin": [-2, 23.79, -49.19], "size": [4, 2, 13], "uv": [24, 82]} + ] + }, + { + "name": "Crest", + "parent": "Upper Jaw 3", + "pivot": [0, 25.79, -42.19], + "rotation": [14.7, 0, 0], + "cubes": [ + {"origin": [-0.5, 22.49, -42.19], "size": [1, 3, 6], "uv": [14, 81]} + ] + }, + { + "name": "Lower Jaw 1", + "parent": "Head", + "pivot": [0, 20.99, -34.99], + "cubes": [ + {"origin": [-2, 18.99, -48.99], "size": [4, 2, 13], "uv": [25, 118]} + ] + }, + { + "name": "Teeth 2", + "parent": "Head", + "pivot": [0, 20.99, -43.19], + "cubes": [ + {"origin": [-2.5, 19.99, -49.19], "size": [5, 1, 13], "uv": [70, 112]} + ] + }, + { + "name": "Neck Feathers 1", + "parent": "Neck 5", + "pivot": [0, 27.39, -31.49], + "cubes": [ + {"origin": [0, 27.39, -32.99], "size": [0, 1, 3], "uv": [114, 202]} + ] + }, + { + "name": "Throat 2", + "parent": "Neck 4", + "pivot": [0, 23.37, -27.82], + "rotation": [-17.58, 0, 0], + "cubes": [ + {"origin": [-2.5, 18.37, -32.32], "size": [5, 5, 9], "inflate": -0.01, "uv": [180, 48]} + ] + }, + { + "name": "Neck Feathers 2", + "parent": "Neck 4", + "pivot": [0, 27.39, -28.99], + "cubes": [ + {"origin": [0, 27.39, -29.99], "size": [0, 1, 2], "uv": [100, 202]} + ] + }, + { + "name": "Neck Feathers 3", + "parent": "Neck 4", + "pivot": [0, 27.39, -26.99], + "cubes": [ + {"origin": [0, 27.39, -27.99], "size": [0, 1, 2], "uv": [100, 202]} + ] + }, + { + "name": "Neck Feathers 4", + "parent": "Neck 3", + "pivot": [0, 27.39, -24.99], + "cubes": [ + {"origin": [0, 27.39, -25.99], "size": [0, 1, 2], "uv": [100, 202]} + ] + }, + { + "name": "Neck Feathers 5", + "parent": "Neck 3", + "pivot": [0, 27.39, -22.99], + "cubes": [ + {"origin": [0, 27.39, -23.99], "size": [0, 1, 2], "uv": [100, 202]} + ] + }, + { + "name": "Throat 1", + "parent": "Neck 1", + "pivot": [0, 26.99, -8.39], + "rotation": [-1.63, 0, 0], + "cubes": [ + {"origin": [-2.5, 17.99, -21.89], "size": [5, 5, 12], "uv": [180, 31]} + ] + }, + { + "name": "Left Thigh", + "pivot": [-9.5, 27.4, 7], + "rotation": [66.7, 0, 0], + "cubes": [ + {"origin": [-9.5, 19.4, -6], "size": [5, 9, 13], "uv": [0, 138]} + ] + }, + { + "name": "Left Calf 1", + "parent": "Left Thigh", + "pivot": [-7, 26.8, -5.2], + "rotation": [-37.19, 0, 0], + "cubes": [ + {"origin": [-9, 15.8, -6.2], "size": [4, 11, 5], "uv": [0, 166]} + ] + }, + { + "name": "Left Calf 2", + "parent": "Left Calf 1", + "pivot": [-7, 17.3, -2.7], + "rotation": [-55.31, 0, 0], + "cubes": [ + {"origin": [-8.5, 8.3, -3.7], "size": [3, 9, 3], "uv": [0, 190]} + ] + }, + { + "name": "Foot Left", + "parent": "Left Calf 2", + "pivot": [-7, 10, -1.7], + "rotation": [25.57, 0, 0], + "cubes": [ + {"origin": [-9.5, 8, -7.7], "size": [5, 2, 7], "uv": [0, 209]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/geo/thescelosaurus.geo.json b/common/src/main/resources/assets/jurassicrevived/geo/thescelosaurus.geo.json new file mode 100644 index 0000000..8788f42 --- /dev/null +++ b/common/src/main/resources/assets/jurassicrevived/geo/thescelosaurus.geo.json @@ -0,0 +1,302 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.thescelosaurus", + "texture_width": 128, + "texture_height": 128, + "visible_bounds_width": 8, + "visible_bounds_height": 3.5, + "visible_bounds_offset": [0, 1.25, 0] + }, + "bones": [ + { + "name": "Body REAR", + "pivot": [0, 16.7, 1.1], + "rotation": [-7.11, 0, 0], + "cubes": [ + {"origin": [-4.5, 11.7, -0.4], "size": [9, 10, 8], "uv": [0, 0]} + ] + }, + { + "name": "Body MIDDLE", + "parent": "Body REAR", + "pivot": [0, 16.1, -6.8], + "rotation": [5.22, 0, 0], + "cubes": [ + {"origin": [-4, 11.8, -5.2], "size": [8, 9, 6], "uv": [0, 23]} + ] + }, + { + "name": "Body FRONT", + "parent": "Body MIDDLE", + "pivot": [0, 15.4, -4.6], + "rotation": [5.22, 0, 0], + "cubes": [ + {"origin": [-3.5, 12.6, -9.6], "size": [7, 8, 5], "uv": [68, 60]} + ] + }, + { + "name": "Neck BASE", + "parent": "Body FRONT", + "pivot": [0, 16.6, -8.3], + "rotation": [-20.87, 0, 0], + "cubes": [ + {"origin": [-3, 13.6, -12.7], "size": [6, 6, 6], "uv": [0, 43]} + ] + }, + { + "name": "Neck 2", + "parent": "Neck BASE", + "pivot": [0, 18.4, -14.6], + "rotation": [-15.65, 0, 0], + "cubes": [ + {"origin": [-2.5, 14.9, -16.7], "size": [5, 5, 7], "uv": [0, 60]} + ] + }, + { + "name": "Neck 3", + "parent": "Neck 2", + "pivot": [0.5, 19.3, -17.7], + "rotation": [-20.87, 0, 0], + "cubes": [ + {"origin": [-2, 15.9, -21.7], "size": [4, 4, 7], "uv": [0, 78]} + ] + }, + { + "name": "Head ", + "parent": "Neck 3", + "pivot": [0, 18.6, -19.7], + "rotation": [57.09, 0, 0], + "cubes": [ + {"origin": [-2.5, 16.1, -25.7], "size": [5, 5, 6], "uv": [0, 97]} + ] + }, + { + "name": "Snout 1", + "parent": "Head ", + "pivot": [0, 18.1, -29], + "rotation": [7.83, 0, 0], + "cubes": [ + {"origin": [-2, 15.7, -29], "size": [4, 4, 4], "uv": [99, 0]} + ] + }, + { + "name": "Beak", + "parent": "Snout 1", + "pivot": [0, 19.3, -28.2], + "rotation": [24.22, 0, 0], + "cubes": [ + {"origin": [-1.5, 16.3, -30.2], "size": [3, 3, 2], "uv": [67, 84]} + ] + }, + { + "name": "Snout 2", + "parent": "Snout 1", + "pivot": [0, 17.6, -28.7], + "rotation": [6.83, 0, 0], + "cubes": [ + {"origin": [-1.5, 17.7, -28.6], "size": [3, 2, 4], "uv": [99, 37]} + ] + }, + { + "name": "Neck Under", + "parent": "Neck 3", + "pivot": [0, 20.2, -20.8], + "rotation": [28.23, 0, 0], + "cubes": [ + {"origin": [-1.5, 14.5, -23], "size": [3, 3, 4], "uv": [22, 78]} + ] + }, + { + "name": "Arm UPPER LEFT", + "parent": "Body FRONT", + "pivot": [2.7, 14.7, -8.3], + "rotation": [37.43, 13, 0], + "cubes": [ + {"origin": [2.7, 10.7, -9.3], "size": [2, 4, 2], "uv": [117, 0]} + ] + }, + { + "name": "Arm MIDDLE LEFT", + "parent": "Arm UPPER LEFT", + "pivot": [3.69, 11.6, -7.9], + "rotation": [-73.39, 0, 0], + "cubes": [ + {"origin": [2.69, 6.6, -8.9], "size": [2, 5, 2], "uv": [100, 10]} + ] + }, + { + "name": "Arm HAND LEFT", + "parent": "Arm MIDDLE LEFT", + "pivot": [3.69, 7.3, -8.5], + "rotation": [60, 0, 0], + "cubes": [ + {"origin": [2.69, 4.3, -9.5], "size": [2, 3, 1], "uv": [100, 25]} + ] + }, + { + "name": "Arm UPPER RIGHT", + "parent": "Body FRONT", + "pivot": [-2.7, 14.7, -8.3], + "rotation": [37.43, -13, 0], + "cubes": [ + {"origin": [-4.7, 10.7, -9.3], "size": [2, 4, 2], "uv": [118, 13]} + ] + }, + { + "name": "Arm MIDDLE RIGHT", + "parent": "Arm UPPER RIGHT", + "pivot": [-3.69, 11.6, -7.9], + "rotation": [-73.39, 0, 0], + "cubes": [ + {"origin": [-4.69, 6.6, -8.9], "size": [2, 5, 2], "uv": [100, 10]} + ] + }, + { + "name": "Arm HAND RIGHT", + "parent": "Arm MIDDLE RIGHT", + "pivot": [-3.69, 7.3, -8.5], + "rotation": [60, 0, 0], + "cubes": [ + {"origin": [-4.69, 4.3, -9.5], "size": [2, 3, 1], "uv": [100, 25]} + ] + }, + { + "name": "Tail BASE", + "parent": "Body REAR", + "pivot": [0, 20.9, 6.6], + "rotation": [7.78, 0, 0], + "cubes": [ + {"origin": [-3.5, 13.4, 6.6], "size": [7, 8, 7], "uv": [41, 0]} + ] + }, + { + "name": "Tail 2", + "parent": "Tail BASE", + "pivot": [0, 21.1, 13.4], + "rotation": [-2.39, 0, 0], + "cubes": [ + {"origin": [-3, 14.1, 13.4], "size": [6, 7, 7], "uv": [35, 20]} + ] + }, + { + "name": "Tail 3", + "parent": "Tail 2", + "pivot": [0, 20.3, 20], + "rotation": [-1.39, 0, 0], + "cubes": [ + {"origin": [-2.5, 14.8, 20], "size": [5, 6, 7], "uv": [35, 42]} + ] + }, + { + "name": "Tail 4", + "parent": "Tail 3", + "pivot": [0, 20, 26.2], + "rotation": [-2, 0, 0], + "cubes": [ + {"origin": [-2, 15.5, 26.2], "size": [4, 5, 7], "uv": [35, 59]} + ] + }, + { + "name": "Tail 5", + "parent": "Tail 4", + "pivot": [0, 18.7, 32.1], + "rotation": [-1.39, 0, 0], + "cubes": [ + {"origin": [-1.5, 16.2, 32.1], "size": [3, 4, 8], "uv": [35, 80]} + ] + }, + { + "name": "Tail 6", + "parent": "Tail 5", + "pivot": [0, 18.9, 38.8], + "rotation": [-2.39, 0, 0], + "cubes": [ + {"origin": [-1, 16.9, 38.8], "size": [2, 3, 8], "uv": [35, 97]} + ] + }, + { + "name": "Tail 7", + "parent": "Tail 6", + "pivot": [0, 19.1, 46.5], + "rotation": [-2.39, 0, 0], + "cubes": [ + {"origin": [-0.5, 17.6, 46.5], "size": [1, 2, 8], "uv": [35, 108]} + ] + }, + { + "name": "Leg UPPER LEFT", + "pivot": [2, 18.1, 2.1], + "rotation": [-22.3, 0, 0], + "cubes": [ + {"origin": [2, 10.1, 2.1], "size": [4, 10, 5], "uv": [70, 0]} + ] + }, + { + "name": "Leg MIDDLE LEFT", + "parent": "Leg UPPER LEFT", + "pivot": [4, 11.4, 3], + "rotation": [-32.7, 0, 0], + "cubes": [ + {"origin": [2.5, 9.9, 3], "size": [3, 3, 7], "uv": [70, 20]} + ] + }, + { + "name": "Leg LOWER LEFT", + "parent": "Leg MIDDLE LEFT", + "pivot": [4, 11.9, 9.1], + "rotation": [-54.78, 0, 0], + "cubes": [ + {"origin": [3, 10.9, 9.1], "size": [2, 2, 6], "uv": [70, 36]} + ] + }, + { + "name": "Foot LEFT", + "parent": "Leg LOWER LEFT", + "pivot": [4, 12.7, 14], + "rotation": [20, 0, 0], + "cubes": [ + {"origin": [2.5, 8.7, 14], "size": [3, 4, 2], "uv": [70, 50]} + ] + }, + { + "name": "Leg UPPER RIGHT", + "pivot": [-2, 18.1, 2.1], + "rotation": [-22.3, 0, 0], + "cubes": [ + {"origin": [-6, 10.1, 2.1], "size": [4, 10, 5], "uv": [70, 0]} + ] + }, + { + "name": "Leg MIDDLE RIGHT", + "parent": "Leg UPPER RIGHT", + "pivot": [-4, 11.4, 3], + "rotation": [-32.7, 0, 0], + "cubes": [ + {"origin": [-5.5, 9.9, 3], "size": [3, 3, 7], "uv": [70, 20]} + ] + }, + { + "name": "Leg LOWER RIGHT", + "parent": "Leg MIDDLE RIGHT", + "pivot": [-4, 11.9, 9.1], + "rotation": [-54.78, 0, 0], + "cubes": [ + {"origin": [-5, 10.9, 9.1], "size": [2, 2, 6], "uv": [70, 36]} + ] + }, + { + "name": "Foot RIGHT", + "parent": "Leg LOWER RIGHT", + "pivot": [-4, 12.7, 14], + "rotation": [20, 0, 0], + "cubes": [ + {"origin": [-5.5, 8.7, 14], "size": [3, 4, 2], "uv": [70, 50]} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/lang/en_us.json b/common/src/main/resources/assets/jurassicrevived/lang/en_us.json index 645a1a5..5ec9a64 100755 --- a/common/src/main/resources/assets/jurassicrevived/lang/en_us.json +++ b/common/src/main/resources/assets/jurassicrevived/lang/en_us.json @@ -81,6 +81,10 @@ "item.jurassicrevived.tupuxuara_spawn_egg": "Tupuxuara Spawn Egg", "item.jurassicrevived.zhenyuanopterus_spawn_egg": "Zhenyuanopterus Spawn Egg", "item.jurassicrevived.achillobator_spawn_egg": "Achillobator Spawn Egg", + "item.jurassicrevived.suchomimus_spawn_egg": "Suchomimus Spawn Egg", + "item.jurassicrevived.chilesaurus_spawn_egg": "Chilesaurus Spawn Egg", + "item.jurassicrevived.thescelosaurus_spawn_egg": "Thescelosaurus Spawn Egg", + "item.jurassicrevived.mussasaurus_spawn_egg": "Mussasaurus Spawn Egg", "entity.jurassicrevived.apatosaurus": "Apatosaurus", "entity.jurassicrevived.albertosaurus": "Albertosaurus", @@ -158,6 +162,10 @@ "entity.jurassicrevived.tupuxuara": "Tupuxuara", "entity.jurassicrevived.zhenyuanopterus": "Zhenyuanopterus", "entity.jurassicrevived.achillobator": "Achillobator", + "entity.jurassicrevived.suchomimus": "Suchomimus", + "entity.jurassicrevived.chilesaurus": "Chilesaurus", + "entity.jurassicrevived.thescelosaurus": "Thescelosaurus", + "entity.jurassicrevived.mussasaurus": "Mussasaurus", "block.jurassicrevived.cat_plushie": "Cat Plushie", "block.jurassicrevived.trash_can": "Trash Can", @@ -305,6 +313,10 @@ "item.jurassicrevived.utahraptor_skull_fossil": "Utahraptor Skull Fossil", "item.jurassicrevived.zhenyuanopterus_skull_fossil": "Zhenyuanopterus Skull Fossil", "item.jurassicrevived.achillobator_skull_fossil": "Achillobator Skull Fossil", + "item.jurassicrevived.suchomimus_skull_fossil": "Suchomimus Skull Fossil", + "item.jurassicrevived.chilesaurus_skull_fossil": "Chilesaurus Skull Fossil", + "item.jurassicrevived.thescelosaurus_skull_fossil": "Thescelosaurus Skull Fossil", + "item.jurassicrevived.mussasaurus_skull_fossil": "Mussasaurus Skull Fossil", "item.jurassicrevived.fresh_velociraptor_skull": "Fresh Velociraptor Skull", "item.jurassicrevived.fresh_tyrannosaurus_rex_skull": "Fresh Tyrannosaurus Rex Skull", @@ -380,6 +392,10 @@ "item.jurassicrevived.fresh_utahraptor_skull": "Fresh Utahraptor Skull", "item.jurassicrevived.fresh_zhenyuanopterus_skull": "Fresh Zhenyuanopterus Skull", "item.jurassicrevived.fresh_achillobator_skull": "Fresh Achillobator Skull", + "item.jurassicrevived.fresh_suchomimus_skull": "Fresh Suchomimus Skull", + "item.jurassicrevived.fresh_chilesaurus_skull": "Fresh Chilesaurus Skull", + "item.jurassicrevived.fresh_thescelosaurus_skull": "Fresh Mussasaurus Skull", + "item.jurassicrevived.fresh_mussasaurus_skull": "Fresh Mussasaurus Skull", "item.jurassicrevived.test_tube": "Test Tube", "item.jurassicrevived.syringe": "Syringe", @@ -470,6 +486,10 @@ "item.jurassicrevived.utahraptor_tissue": "Utahraptor Tissue", "item.jurassicrevived.zhenyuanopterus_tissue": "Zhenyuanopterus Tissue", "item.jurassicrevived.achillobator_tissue": "Achillobator Tissue", + "item.jurassicrevived.suchomimus_tissue": "Suchomimus Tissue", + "item.jurassicrevived.chilesaurus_tissue": "Chilesaurus Tissue", + "item.jurassicrevived.thescelosaurus_tissue": "Thescelosaurus Tissue", + "item.jurassicrevived.mussasaurus_tissue": "Mussasaurus Tissue", "item.jurassicrevived.velociraptor_dna": "Velociraptor DNA", "item.jurassicrevived.tyrannosaurus_rex_dna": "Tyrannosaurus Rex DNA", @@ -545,6 +565,10 @@ "item.jurassicrevived.utahraptor_dna": "Utahraptor DNA", "item.jurassicrevived.zhenyuanopterus_dna": "Zhenyuanopterus DNA", "item.jurassicrevived.achillobator_dna": "Achillobator DNA", + "item.jurassicrevived.suchomimus_dna": "Suchomimus DNA", + "item.jurassicrevived.chilesaurus_dna": "Chilesaurus DNA", + "item.jurassicrevived.thescelosaurus_dna": "Thescelosaurus DNA", + "item.jurassicrevived.mussasaurus_dna": "Mussasaurus DNA", "item.jurassicrevived.velociraptor_syringe": "Velociraptor Syringe", "item.jurassicrevived.tyrannosaurus_rex_syringe": "Tyrannosaurus Rex Syringe", @@ -620,6 +644,10 @@ "item.jurassicrevived.utahraptor_syringe": "Utahraptor Syringe", "item.jurassicrevived.zhenyuanopterus_syringe": "Zhenyuanopterus Syringe", "item.jurassicrevived.achillobator_syringe": "Achillobator Syringe", + "item.jurassicrevived.suchomimus_syringe": "Suchomimus Syringe", + "item.jurassicrevived.chilesaurus_syringe": "Chilesaurus Syringe", + "item.jurassicrevived.thescelosaurus_syringe": "Thescelosaurus Syringe", + "item.jurassicrevived.mussasaurus_syringe": "Mussasaurus Syringe", "block.jurassicrevived.velociraptor_egg": "Velociraptor Egg", "block.jurassicrevived.tyrannosaurus_rex_egg": "Tyrannosaurus Rex Egg", @@ -695,6 +723,10 @@ "block.jurassicrevived.utahraptor_egg": "Utahraptor Egg", "block.jurassicrevived.zhenyuanopterus_egg": "Zhenyuanopterus Egg", "block.jurassicrevived.achillobator_egg": "Achillobator Egg", + "block.jurassicrevived.suchomimus_egg": "Suchomimus Egg", + "block.jurassicrevived.chilesaurus_egg": "Chilesaurus Egg", + "block.jurassicrevived.thescelosaurus_egg": "Thescelosaurus Egg", + "block.jurassicrevived.mussasaurus_egg": "Mussasaurus Egg", "block.jurassicrevived.incubated_velociraptor_egg": "§aIncubated Velociraptor Egg", "block.jurassicrevived.incubated_tyrannosaurus_rex_egg": "§aIncubated Tyrannosaurus Rex Egg", @@ -770,6 +802,10 @@ "block.jurassicrevived.incubated_utahraptor_egg": "§aIncubated Utahraptor Egg", "block.jurassicrevived.incubated_zhenyuanopterus_egg": "§aIncubated Zhenyuanopterus Egg", "block.jurassicrevived.incubated_achillobator_egg": "§aIncubated Achillobator Egg", + "block.jurassicrevived.incubated_suchomimus_egg": "§aIncubated Suchomimus Egg", + "block.jurassicrevived.incubated_chilesaurus_egg": "§aIncubated Chilesaurus Egg", + "block.jurassicrevived.incubated_thescelosaurus_egg": "§aIncubated Thescelosaurus Egg", + "block.jurassicrevived.incubated_mussasaurus_egg": "§aIncubated Mussasaurus Egg", "tooltip.jurassicrevived.gender": "Gender: %s", "tooltip.jurassicrevived.gender.hint": "Hint: %s to change", @@ -1000,9 +1036,6 @@ "sounds.jurassicrevived.styracosaurus_call": "Styracosaurus Call", "sounds.jurassicrevived.styracosaurus_hurt": "Styracosaurus Hurt", "sounds.jurassicrevived.styracosaurus_death": "Styracosaurus Death", - "sounds.jurassicrevived.suchomimus_call": "Suchomimus Call", - "sounds.jurassicrevived.suchomimus_hurt": "Suchomimus Hurt", - "sounds.jurassicrevived.suchomimus_death": "Suchomimus Death", "sounds.jurassicrevived.tapejara_call": "Tapejara Call", "sounds.jurassicrevived.tapejara_hurt": "Tapejara Hurt", "sounds.jurassicrevived.tapejara_death": "Tapejara Death", @@ -1046,6 +1079,19 @@ "sounds.jurassicrevived.achillobator_attack": "Achillobator Attack", "sounds.jurassicrevived.achillobator_hurt": "Achillobator Hurt", "sounds.jurassicrevived.achillobator_death": "Achillobator Death", + "sounds.jurassicrevived.suchomimus_call": "Suchomimus Call", + "sounds.jurassicrevived.suchomimus_attack": "Suchomimus Attack", + "sounds.jurassicrevived.suchomimus_hurt": "Suchomimus Hurt", + "sounds.jurassicrevived.suchomimus_death": "Suchomimus Death", + "sounds.jurassicrevived.chilesaurus_call": "Chilesaurus Call", + "sounds.jurassicrevived.chilesaurus_hurt": "Chilesaurus Hurt", + "sounds.jurassicrevived.chilesaurus_death": "Chilesaurus Death", + "sounds.jurassicrevived.thescelosaurus_call": "Thescelosaurus Call", + "sounds.jurassicrevived.thescelosaurus_hurt": "Thescelosaurus Hurt", + "sounds.jurassicrevived.thescelosaurus_death": "Thescelosaurus Death", + "sounds.jurassicrevived.mussasaurus_call": "Mussasaurus Call", + "sounds.jurassicrevived.mussasaurus_hurt": "Mussasaurus Hurt", + "sounds.jurassicrevived.mussasaurus_death": "Mussasaurus Death", "jurassicrevived.tooltip.liquid.amount.with.capacity": "%s / %s mB", "jurassicrevived.tooltip.liquid.amount": "%s mB", diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/dna_analyzer.json b/common/src/main/resources/assets/jurassicrevived/models/block/dna_analyzer.json index 9eb85e2..cec01cf 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/dna_analyzer.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/dna_analyzer.json @@ -4,7 +4,7 @@ "ambientocclusion": false, "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/dna_analyzer", + "1": "jurassicrevived:block/dna_analyzer", "particle": "jurassicrevived:block/dna_analyzer" }, "elements": [ @@ -13,12 +13,12 @@ "to": [15, 6, 13], "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 11]}, "faces": { - "north": {"uv": [0, 0, 3.5, 1.5], "texture": "#0"}, - "east": {"uv": [2, 5.75, 3.5, 7.25], "texture": "#0"}, - "south": {"uv": [0, 1.5, 3.5, 3], "texture": "#0"}, - "west": {"uv": [3.5, 5.75, 5, 7.25], "texture": "#0"}, - "up": {"uv": [3.5, 4.5, 0, 3], "texture": "#0"}, - "down": {"uv": [7, 0, 3.5, 1.5], "texture": "#0"} + "north": {"uv": [0, 0, 3.5, 1.5], "texture": "#1"}, + "east": {"uv": [4, 4.5, 5.5, 6], "texture": "#1"}, + "south": {"uv": [0, 1.5, 3.5, 3], "texture": "#1"}, + "west": {"uv": [5.5, 4.5, 7, 6], "texture": "#1"}, + "up": {"uv": [3.5, 4.5, 0, 3], "texture": "#1"}, + "down": {"uv": [7, 0, 3.5, 1.5], "texture": "#1"} } }, { @@ -26,12 +26,12 @@ "to": [13, 1, 11], "rotation": {"angle": -22.5, "axis": "x", "origin": [7, -3, 5]}, "faces": { - "north": {"uv": [7, 1.25, 9.5, 1.5], "texture": "#0"}, - "east": {"uv": [7.5, 1.5, 9, 1.75], "texture": "#0"}, - "south": {"uv": [2.75, 7.25, 5.25, 7.5], "texture": "#0"}, - "west": {"uv": [7.5, 1.75, 9, 2], "texture": "#0"}, - "up": {"uv": [6, 3, 3.5, 1.5], "texture": "#0"}, - "down": {"uv": [6, 3, 3.5, 4.5], "texture": "#0"} + "north": {"uv": [2.75, 7.5, 5.25, 7.75], "texture": "#1"}, + "east": {"uv": [7.5, 3.5, 9, 3.75], "texture": "#1"}, + "south": {"uv": [7.5, 3.25, 10, 3.5], "texture": "#1"}, + "west": {"uv": [7.5, 3.75, 9, 4], "texture": "#1"}, + "up": {"uv": [6, 3, 3.5, 1.5], "texture": "#1"}, + "down": {"uv": [6, 3, 3.5, 4.5], "texture": "#1"} } }, { @@ -39,25 +39,64 @@ "to": [15, 12, 13], "rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 11]}, "faces": { - "north": {"uv": [5, 5.75, 6.5, 7.25], "texture": "#0"}, - "east": {"uv": [6, 1.5, 7.5, 3], "texture": "#0"}, - "south": {"uv": [6, 3, 7.5, 4.5], "texture": "#0"}, - "west": {"uv": [6.5, 4.5, 8, 6], "texture": "#0"}, - "up": {"uv": [8, 7.5, 6.5, 6], "texture": "#0"}, - "down": {"uv": [1.5, 7, 0, 8.5], "texture": "#0"} + "north": {"uv": [0, 5.75, 1.5, 7.25], "texture": "#1"}, + "east": {"uv": [1.5, 5.75, 3, 7.25], "texture": "#1"}, + "south": {"uv": [6, 1.5, 7.5, 3], "texture": "#1"}, + "west": {"uv": [3, 6, 4.5, 7.5], "texture": "#1"}, + "up": {"uv": [7.5, 4.5, 6, 3], "texture": "#1"}, + "down": {"uv": [6, 6, 4.5, 7.5], "texture": "#1"} + } + }, + { + "from": [1, 6, 10], + "to": [9, 11, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 6, 11]}, + "faces": { + "north": {"uv": [0, 4.5, 2, 5.75], "texture": "#1"}, + "east": {"uv": [2, 7.25, 2.75, 8.5], "texture": "#1"}, + "south": {"uv": [2, 4.5, 4, 5.75], "texture": "#1"}, + "west": {"uv": [7.5, 2, 8.25, 3.25], "texture": "#1"}, + "up": {"uv": [8, 6.75, 6, 6], "texture": "#1"}, + "down": {"uv": [8, 6.75, 6, 7.5], "texture": "#1"} + } + }, + { + "from": [1, 9, 8], + "to": [9, 11, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 6, 8]}, + "faces": { + "north": {"uv": [7, 0, 9, 0.5], "texture": "#1"}, + "east": {"uv": [7.5, 4, 8, 4.5], "texture": "#1"}, + "south": {"uv": [7, 0.5, 9, 1], "texture": "#1"}, + "west": {"uv": [6.25, 7.5, 6.75, 8], "texture": "#1"}, + "up": {"uv": [9, 1.5, 7, 1], "texture": "#1"}, + "down": {"uv": [9, 4.5, 7, 5], "texture": "#1"} } }, { "from": [1, 6, 8], - "to": [9, 11, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [1, 6, 11]}, + "to": [9, 8, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 3, 8]}, "faces": { - "north": {"uv": [0, 4.5, 2, 5.75], "texture": "#0"}, - "east": {"uv": [7, 0, 8.25, 1.25], "texture": "#0"}, - "south": {"uv": [2, 4.5, 4, 5.75], "texture": "#0"}, - "west": {"uv": [1.5, 7.25, 2.75, 8.5], "texture": "#0"}, - "up": {"uv": [6, 5.75, 4, 4.5], "texture": "#0"}, - "down": {"uv": [2, 5.75, 0, 7], "texture": "#0"} + "north": {"uv": [7, 5, 9, 5.5], "texture": "#1"}, + "east": {"uv": [6.75, 7.5, 7.25, 8], "texture": "#1"}, + "south": {"uv": [7, 5.5, 9, 6], "texture": "#1"}, + "west": {"uv": [7.25, 7.5, 7.75, 8], "texture": "#1"}, + "up": {"uv": [2, 7.75, 0, 7.25], "texture": "#1"}, + "down": {"uv": [9.5, 1.5, 7.5, 2], "texture": "#1"} + } + }, + { + "from": [1, 8, 8], + "to": [3, 9, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 4, 8]}, + "faces": { + "north": {"uv": [3, 5.75, 3.5, 6], "texture": "#1"}, + "east": {"uv": [3.5, 5.75, 4, 6], "texture": "#1"}, + "south": {"uv": [1, 7.75, 1.5, 8], "texture": "#1"}, + "west": {"uv": [1.5, 7.75, 2, 8], "texture": "#1"}, + "up": {"uv": [0.5, 8.25, 0, 7.75], "texture": "#1"}, + "down": {"uv": [1, 7.75, 0.5, 8.25], "texture": "#1"} } }, { @@ -65,12 +104,12 @@ "to": [3, 16, 12], "rotation": {"angle": 0, "axis": "y", "origin": [1, 11, 11]}, "faces": { - "north": {"uv": [6, 4.5, 6.25, 5.75], "texture": "#0"}, - "east": {"uv": [6.25, 4.5, 6.5, 5.75], "texture": "#0"}, - "south": {"uv": [5.25, 7.25, 5.5, 8.5], "texture": "#0"}, - "west": {"uv": [5.5, 7.25, 5.75, 8.5], "texture": "#0"}, - "up": {"uv": [1.75, 7.25, 1.5, 7], "texture": "#0"}, - "down": {"uv": [2, 7, 1.75, 7.25], "texture": "#0"} + "north": {"uv": [5.25, 7.5, 5.5, 8.75], "texture": "#1"}, + "east": {"uv": [5.5, 7.5, 5.75, 8.75], "texture": "#1"}, + "south": {"uv": [5.75, 7.5, 6, 8.75], "texture": "#1"}, + "west": {"uv": [6, 7.5, 6.25, 8.75], "texture": "#1"}, + "up": {"uv": [3, 7.5, 2.75, 7.25], "texture": "#1"}, + "down": {"uv": [3, 7.75, 2.75, 8], "texture": "#1"} } } ], @@ -109,8 +148,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4] + "children": [0, 1, 2, 3, 4, 5, 6, 7] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/dna_extractor.json b/common/src/main/resources/assets/jurassicrevived/models/block/dna_extractor.json index e620764..d67bb45 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/dna_extractor.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/dna_extractor.json @@ -3,24 +3,24 @@ "credit": "Made with Blockbench", "ambientocclusion": false, "render_type": "cutout", - "texture_size": [128, 128], + "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/dna_extractor", + "1": "jurassicrevived:block/dna_extractor", "particle": "jurassicrevived:block/dna_extractor" }, "elements": [ { "name": "Keyboard", - "from": [0, -0.05957, 0.77211], - "to": [7, 0.94043, 5.77211], + "from": [0, 0.03282, 0.81038], + "to": [7, 1.03282, 5.81038], "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 0.2, -0.3]}, "faces": { - "north": {"uv": [4.625, 3.375, 5.5, 3.5], "texture": "#0"}, - "east": {"uv": [4, 3.375, 4.625, 3.5], "texture": "#0"}, - "south": {"uv": [6.125, 3.375, 7, 3.5], "texture": "#0"}, - "west": {"uv": [5.5, 3.375, 6.125, 3.5], "texture": "#0"}, - "up": {"uv": [5.5, 3.375, 4.625, 2.75], "texture": "#0"}, - "down": {"uv": [6.375, 2.75, 5.5, 3.375], "texture": "#0"} + "north": {"uv": [11.5, 1.5, 13.25, 1.75], "texture": "#1"}, + "east": {"uv": [10, 4.25, 11.25, 4.5], "texture": "#1"}, + "south": {"uv": [11.5, 1.75, 13.25, 2], "texture": "#1"}, + "west": {"uv": [11.75, 4.75, 13, 5], "texture": "#1"}, + "up": {"uv": [5.25, 11.5, 3.5, 10.25], "texture": "#1"}, + "down": {"uv": [11.25, 10.25, 9.5, 11.5], "texture": "#1"} } }, { @@ -29,82 +29,54 @@ "to": [6.5, 3, 5.5], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0.7, 8]}, "faces": { - "north": {"uv": [0.125, 6.5, 0.875, 6.875], "texture": "#0"}, - "east": {"uv": [0, 6.5, 0.125, 6.875], "texture": "#0"}, - "south": {"uv": [1, 6.5, 1.75, 6.875], "texture": "#0"}, - "west": {"uv": [0.875, 6.5, 1, 6.875], "texture": "#0"}, - "up": {"uv": [0.875, 6.5, 0.125, 6.375], "texture": "#0"}, - "down": {"uv": [1.625, 6.375, 0.875, 6.5], "texture": "#0"} + "north": {"uv": [10, 3.5, 11.5, 4.25], "texture": "#1"}, + "east": {"uv": [5.75, 7, 6, 7.75], "texture": "#1"}, + "south": {"uv": [1.5, 10.75, 3, 11.5], "texture": "#1"}, + "west": {"uv": [5.75, 7.75, 6, 8.5], "texture": "#1"}, + "up": {"uv": [3, 11.75, 1.5, 11.5], "texture": "#1"}, + "down": {"uv": [3, 11.75, 1.5, 12], "texture": "#1"} } }, { "name": "Screen", - "from": [0, 8.78296, -1.62498], - "to": [7, 17.78296, -0.62498], + "from": [0, 9.15908, -2.23958], + "to": [7, 18.15908, -0.23958], "rotation": {"angle": 22.5, "axis": "x", "origin": [0, 0, 0]}, "faces": { - "north": {"uv": [5.375, 3.625, 6.25, 4.75], "texture": "#0"}, - "east": {"uv": [5.25, 3.625, 5.375, 4.75], "texture": "#0"}, - "south": {"uv": [6.375, 3.625, 7.25, 4.75], "texture": "#0"}, - "west": {"uv": [6.25, 3.625, 6.375, 4.75], "texture": "#0"}, - "up": {"uv": [6.25, 3.625, 5.375, 3.5], "texture": "#0"}, - "down": {"uv": [7.125, 3.5, 6.25, 3.625], "texture": "#0"} + "north": {"uv": [7.75, 4.5, 9.5, 6.75], "texture": "#1"}, + "east": {"uv": [3, 10.75, 3.5, 13], "texture": "#1"}, + "south": {"uv": [7.75, 6.75, 9.5, 9], "texture": "#1"}, + "west": {"uv": [11.25, 4.25, 11.75, 6.5], "texture": "#1"}, + "up": {"uv": [13, 11, 11.25, 10.5], "texture": "#1"}, + "down": {"uv": [13, 11, 11.25, 11.5], "texture": "#1"} } }, { "name": "Screen attachment", - "from": [0.5, 6.14588, 9.25832], - "to": [3.5, 11.14588, 10.25832], + "from": [1.5, 4.93827, 8.29931], + "to": [4.5, 10.93827, 10.29931], "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 0, 0]}, "faces": { - "north": {"uv": [4.125, 5.375, 4.5, 6], "texture": "#0"}, - "east": {"uv": [4, 5.375, 4.125, 6], "texture": "#0"}, - "south": {"uv": [4.625, 5.375, 5, 6], "texture": "#0"}, - "west": {"uv": [4.5, 5.375, 4.625, 6], "texture": "#0"}, - "up": {"uv": [4.5, 5.375, 4.125, 5.25], "texture": "#0"}, - "down": {"uv": [4.875, 5.25, 4.5, 5.375], "texture": "#0"} - } - }, - { - "name": "Sequencing chamber 3", - "from": [7.1, 1.1, 7], - "to": [14.1, 5.1, 14], - "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0, 8]}, - "faces": { - "north": {"uv": [4.875, 2.25, 5.75, 2.75], "texture": "#0"}, - "east": {"uv": [4, 2.25, 4.875, 2.75], "texture": "#0"}, - "south": {"uv": [6.625, 2.25, 7.5, 2.75], "texture": "#0"}, - "west": {"uv": [5.75, 2.25, 6.625, 2.75], "texture": "#0"}, - "up": {"uv": [5.75, 2.25, 4.875, 1.375], "texture": "#0"}, - "down": {"uv": [6.625, 1.375, 5.75, 2.25], "texture": "#0"} - } - }, - { - "name": "Sequencing chamber 2", - "from": [7.1, 5.4, 7], - "to": [14.1, 9.4, 14], - "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0, 8]}, - "faces": { - "north": {"uv": [4.875, 2.25, 5.75, 2.75], "texture": "#0"}, - "east": {"uv": [4, 2.25, 4.875, 2.75], "texture": "#0"}, - "south": {"uv": [6.625, 2.25, 7.5, 2.75], "texture": "#0"}, - "west": {"uv": [5.75, 2.25, 6.625, 2.75], "texture": "#0"}, - "up": {"uv": [5.75, 2.25, 4.875, 1.375], "texture": "#0"}, - "down": {"uv": [6.625, 1.375, 5.75, 2.25], "texture": "#0"} + "north": {"uv": [11.25, 6.5, 12, 8], "texture": "#1"}, + "east": {"uv": [3.5, 8.5, 4, 10], "texture": "#1"}, + "south": {"uv": [7.75, 11.25, 8.5, 12.75], "texture": "#1"}, + "west": {"uv": [9, 11.25, 9.5, 12.75], "texture": "#1"}, + "up": {"uv": [4.25, 12.25, 3.5, 11.75], "texture": "#1"}, + "down": {"uv": [5, 11.75, 4.25, 12.25], "texture": "#1"} } }, { "name": "Sequencing chamber 1", - "from": [7.1, 9.7, 7], + "from": [7.1, 0.7, 7], "to": [14.1, 13.7, 14], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0, 8]}, "faces": { - "north": {"uv": [4.875, 2.25, 5.75, 2.75], "texture": "#0"}, - "east": {"uv": [4, 2.25, 4.875, 2.75], "texture": "#0"}, - "south": {"uv": [6.625, 2.25, 7.5, 2.75], "texture": "#0"}, - "west": {"uv": [5.75, 2.25, 6.625, 2.75], "texture": "#0"}, - "up": {"uv": [5.75, 2.25, 4.875, 1.375], "texture": "#0"}, - "down": {"uv": [6.625, 1.375, 5.75, 2.25], "texture": "#0"} + "north": {"uv": [6, 0, 7.75, 3.25], "texture": "#1"}, + "east": {"uv": [6, 3.25, 7.75, 6.5], "texture": "#1"}, + "south": {"uv": [6, 6.5, 7.75, 9.75], "texture": "#1"}, + "west": {"uv": [4, 7, 5.75, 10.25], "texture": "#1"}, + "up": {"uv": [11.25, 8.5, 9.5, 6.75], "texture": "#1"}, + "down": {"uv": [11.25, 8.5, 9.5, 10.25], "texture": "#1"} } }, { @@ -113,12 +85,12 @@ "to": [7.1, 14.15, 14.5], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0.15, 8]}, "faces": { - "north": {"uv": [1, 4.625, 1.375, 6.375], "texture": "#0"}, - "east": {"uv": [0, 4.625, 1, 6.375], "texture": "#0"}, - "south": {"uv": [2.375, 4.625, 2.75, 6.375], "texture": "#0"}, - "west": {"uv": [1.375, 4.625, 2.375, 6.375], "texture": "#0"}, - "up": {"uv": [1.375, 4.625, 1, 3.625], "texture": "#0"}, - "down": {"uv": [1.75, 3.625, 1.375, 4.625], "texture": "#0"} + "north": {"uv": [5.75, 9.75, 6.5, 13.25], "texture": "#1"}, + "east": {"uv": [4, 0, 6, 3.5], "texture": "#1"}, + "south": {"uv": [6.5, 9.75, 7.25, 13.25], "texture": "#1"}, + "west": {"uv": [4, 3.5, 6, 7], "texture": "#1"}, + "up": {"uv": [0.75, 12.75, 0, 10.75], "texture": "#1"}, + "down": {"uv": [1.5, 10.75, 0.75, 12.75], "texture": "#1"} } }, { @@ -127,12 +99,12 @@ "to": [7, 10, 15], "rotation": {"angle": 0, "axis": "y", "origin": [8.4, 0, 8]}, "faces": { - "north": {"uv": [1.125, 2.5, 2, 3.625], "texture": "#0"}, - "east": {"uv": [0, 2.5, 1.125, 3.625], "texture": "#0"}, - "south": {"uv": [3.125, 2.5, 4, 3.625], "texture": "#0"}, - "west": {"uv": [2, 2.5, 3.125, 3.625], "texture": "#0"}, - "up": {"uv": [2, 2.5, 1.125, 1.375], "texture": "#0"}, - "down": {"uv": [2.875, 1.375, 2, 2.5], "texture": "#0"} + "north": {"uv": [0, 8.5, 1.75, 10.75], "texture": "#1"}, + "east": {"uv": [7.75, 0, 10, 2.25], "texture": "#1"}, + "south": {"uv": [1.75, 8.5, 3.5, 10.75], "texture": "#1"}, + "west": {"uv": [7.75, 2.25, 10, 4.5], "texture": "#1"}, + "up": {"uv": [9.5, 11.25, 7.75, 9], "texture": "#1"}, + "down": {"uv": [11.25, 4.5, 9.5, 6.75], "texture": "#1"} } }, { @@ -141,12 +113,96 @@ "to": [15.9, 14.15, 14.5], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0.15, 8]}, "faces": { - "north": {"uv": [3.75, 4.625, 4, 6.375], "texture": "#0"}, - "east": {"uv": [2.75, 4.625, 3.75, 6.375], "texture": "#0"}, - "south": {"uv": [5, 4.625, 5.25, 6.375], "texture": "#0"}, - "west": {"uv": [4, 4.625, 5, 6.375], "texture": "#0"}, - "up": {"uv": [4, 4.625, 3.75, 3.625], "texture": "#0"}, - "down": {"uv": [4.25, 3.625, 4, 4.625], "texture": "#0"} + "north": {"uv": [7.25, 9.75, 7.75, 13.25], "texture": "#1"}, + "east": {"uv": [0, 5, 2, 8.5], "texture": "#1"}, + "south": {"uv": [5.25, 10.25, 5.75, 13.75], "texture": "#1"}, + "west": {"uv": [2, 5, 4, 8.5], "texture": "#1"}, + "up": {"uv": [11.75, 10, 11.25, 8], "texture": "#1"}, + "down": {"uv": [9, 11.25, 8.5, 13.25], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [6.9, 0.15, 13.5], + "to": [13.9, 2.15, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0.15, 8]}, + "faces": { + "north": {"uv": [11.5, 0, 13.25, 0.5], "texture": "#1"}, + "east": {"uv": [5.75, 9.25, 6, 9.75], "texture": "#1"}, + "south": {"uv": [11.5, 0.5, 13.25, 1], "texture": "#1"}, + "west": {"uv": [11.75, 8, 12, 8.5], "texture": "#1"}, + "up": {"uv": [13.25, 2.25, 11.5, 2], "texture": "#1"}, + "down": {"uv": [13.25, 2.25, 11.5, 2.5], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [6.9, 11.15, 11.5], + "to": [13.9, 12.15, 12.5], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 11.15, 6]}, + "faces": { + "north": {"uv": [11.5, 2.5, 13.25, 2.75], "texture": "#1"}, + "east": {"uv": [11.75, 9.75, 12, 10], "texture": "#1"}, + "south": {"uv": [11.5, 2.75, 13.25, 3], "texture": "#1"}, + "west": {"uv": [10, 11.75, 10.25, 12], "texture": "#1"}, + "up": {"uv": [13.25, 3.25, 11.5, 3], "texture": "#1"}, + "down": {"uv": [13.25, 3.25, 11.5, 3.5], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [6.9, 11.15, 8.5], + "to": [13.9, 12.15, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 11.15, 3]}, + "faces": { + "north": {"uv": [3.5, 11.5, 5.25, 11.75], "texture": "#1"}, + "east": {"uv": [10.25, 11.75, 10.5, 12], "texture": "#1"}, + "south": {"uv": [11.5, 3.5, 13.25, 3.75], "texture": "#1"}, + "west": {"uv": [10.5, 11.75, 10.75, 12], "texture": "#1"}, + "up": {"uv": [13.25, 4, 11.5, 3.75], "texture": "#1"}, + "down": {"uv": [13.25, 4, 11.5, 4.25], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [9.9, 11.15, 9.5], + "to": [10.9, 12.15, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 11.15, 4]}, + "faces": { + "north": {"uv": [10.75, 11.75, 11, 12], "texture": "#1"}, + "east": {"uv": [3.5, 10, 4, 10.25], "texture": "#1"}, + "south": {"uv": [11, 11.75, 11.25, 12], "texture": "#1"}, + "west": {"uv": [11.75, 8.5, 12.25, 8.75], "texture": "#1"}, + "up": {"uv": [12, 9.25, 11.75, 8.75], "texture": "#1"}, + "down": {"uv": [12, 9.25, 11.75, 9.75], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [9.9, 8.15, 10], + "to": [10.9, 11.15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 10.15, 3.5]}, + "faces": { + "north": {"uv": [5.75, 8.5, 6, 9.25], "texture": "#1"}, + "east": {"uv": [5, 11.75, 5.25, 12.5], "texture": "#1"}, + "south": {"uv": [11.75, 5, 12, 5.75], "texture": "#1"}, + "west": {"uv": [11.75, 5.75, 12, 6.5], "texture": "#1"}, + "up": {"uv": [11.5, 12, 11.25, 11.75], "texture": "#1"}, + "down": {"uv": [11.75, 11.75, 11.5, 12], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [7.9, 6.15, 11.6], + "to": [7.9, 8.15, 12.6], + "rotation": {"angle": 22.5, "axis": "y", "origin": [5, 7.15, 5.1]}, + "faces": { + "north": {"uv": [0, 0, 0, 0.5], "texture": "#1"}, + "east": {"uv": [9.5, 11.75, 9.75, 12.25], "texture": "#1"}, + "south": {"uv": [0, 0, 0, 0.5], "texture": "#1"}, + "west": {"uv": [9.75, 11.75, 10, 12.25], "texture": "#1"}, + "up": {"uv": [0, 0.25, 0, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 0, 0.25], "texture": "#1"} } }, { @@ -155,12 +211,26 @@ "to": [16, 1, 15.5], "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 0, 8]}, "faces": { - "north": {"uv": [1.25, 1.25, 3.25, 1.375], "texture": "#0"}, - "east": {"uv": [0, 1.25, 1.25, 1.375], "texture": "#0"}, - "south": {"uv": [4.5, 1.25, 6.5, 1.375], "texture": "#0"}, - "west": {"uv": [3.25, 1.25, 4.5, 1.375], "texture": "#0"}, - "up": {"uv": [3.25, 1.25, 1.25, 0], "texture": "#0"}, - "down": {"uv": [5.25, 0, 3.25, 1.25], "texture": "#0"} + "north": {"uv": [11.25, 10, 15.25, 10.25], "texture": "#1"}, + "east": {"uv": [11.5, 1, 14, 1.25], "texture": "#1"}, + "south": {"uv": [11.25, 10.25, 15.25, 10.5], "texture": "#1"}, + "west": {"uv": [11.5, 1.25, 14, 1.5], "texture": "#1"}, + "up": {"uv": [4, 2.5, 0, 0], "texture": "#1"}, + "down": {"uv": [4, 2.5, 0, 5], "texture": "#1"} + } + }, + { + "name": "Base", + "from": [7.5, 1, 7.2], + "to": [13.5, 2, 14.2], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 1, 7.7]}, + "faces": { + "north": {"uv": [11.75, 4.25, 13.25, 4.5], "texture": "#1"}, + "east": {"uv": [9.5, 11.5, 11.25, 11.75], "texture": "#1"}, + "south": {"uv": [11.75, 4.5, 13.25, 4.75], "texture": "#1"}, + "west": {"uv": [11.25, 11.5, 13, 11.75], "texture": "#1"}, + "up": {"uv": [11.5, 1.75, 10, 0], "texture": "#1"}, + "down": {"uv": [11.5, 1.75, 10, 3.5], "texture": "#1"} } } ], @@ -199,22 +269,26 @@ { "name": "root", "origin": [0, 24, 0], + "scope": 0, "color": 0, "children": [ { "name": "Base", "origin": [0, 0.5, 1.5], + "scope": 0, "color": 0, "children": [ { "name": "Keyboardback", "origin": [-4.5, 0.5, -2.5], + "scope": 0, "color": 0, "children": [ { "name": "Keyboard", "origin": [-4.5, 0.8, -5], "rotation": [-20.87, 0, 0], + "scope": 0, "color": 0, "children": [0] }, @@ -224,18 +298,21 @@ { "name": "HardDrive", "origin": [-4.9, 0, 1.5], + "scope": 0, "color": 0, "children": [ { "name": "Screenattachment", "origin": [-6, 9.5, -0.5], "rotation": [-36.52, 0, 0], + "scope": 0, "color": 0, "children": [ { "name": "Screen", "origin": [-6, 12.9, -0.5], "rotation": [52.17, 0, 0], + "scope": 0, "color": 0, "children": [2] }, @@ -245,39 +322,45 @@ { "name": "Sequencingattachmentbase", "origin": [-1.9, 0, 2.5], + "scope": 0, "color": 0, "children": [ { "name": "Sequencingchamber3", "origin": [-0.4, 3.1, 2.5], + "scope": 0, "color": 0, - "children": [4] + "children": [] }, { "name": "Sequencingchamber2", "origin": [-0.4, 7.4, 2.5], + "scope": 0, "color": 0, - "children": [5] + "children": [] }, { "name": "Sequencingchamber1", "origin": [-0.4, 11.7, 2.5], + "scope": 0, "color": 0, - "children": [6] + "children": [4] }, - 7 + 5 ] }, - 8 + 6 ] }, { "name": "Sequencingattachmentend", "origin": [7.4, 0, 2.5], + "scope": 0, "color": 0, - "children": [9] + "children": [7, 8, 9, 10, 11, 12, 13] }, - 10 + 14, + 15 ] } ] diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/dna_hybridizer.json b/common/src/main/resources/assets/jurassicrevived/models/block/dna_hybridizer.json index 14aded4..62b9fc2 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/dna_hybridizer.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/dna_hybridizer.json @@ -3,23 +3,49 @@ "credit": "Made with Blockbench", "ambientocclusion": false, "render_type": "translucent", - "texture_size": [32, 32], + "texture_size": [64, 64], "textures": { "1": "jurassicrevived:block/dna_hybridizer", "particle": "jurassicrevived:block/dna_hybridizer" }, "elements": [ { - "from": [6.5, 6.56066, 5.89645], - "to": [14.5, 7.56066, 13.89645], - "rotation": {"angle": 45, "axis": "x", "origin": [8, 7.06066, 10.89645]}, + "from": [11.2, 5.56066, 5.89645], + "to": [15.2, 7.56066, 13.89645], + "rotation": {"angle": 45, "axis": "x", "origin": [13.7, 7.06066, 10.89645]}, "faces": { - "north": {"uv": [7, 1.5, 9, 1.75], "texture": "#1"}, - "east": {"uv": [7, 1.75, 9, 2], "texture": "#1"}, - "south": {"uv": [7, 2, 9, 2.25], "texture": "#1"}, - "west": {"uv": [7, 2.25, 9, 2.5], "texture": "#1"}, - "up": {"uv": [4.5, 7, 2.5, 5], "texture": "#1"}, - "down": {"uv": [6.5, 5, 4.5, 7], "texture": "#1"} + "north": {"uv": [8, 2.5, 9, 3], "texture": "#1"}, + "east": {"uv": [7.5, 5, 9.5, 5.5], "texture": "#1"}, + "south": {"uv": [8, 3, 9, 3.5], "texture": "#1"}, + "west": {"uv": [7.5, 5.5, 9.5, 6], "texture": "#1"}, + "up": {"uv": [5.5, 8.5, 4.5, 6.5], "texture": "#1"}, + "down": {"uv": [8, 6, 7, 8], "texture": "#1"} + } + }, + { + "from": [6.2, 5.56066, 5.89645], + "to": [9.2, 7.56066, 13.89645], + "rotation": {"angle": 45, "axis": "x", "origin": [8.7, 7.06066, 10.89645]}, + "faces": { + "north": {"uv": [8, 7.5, 8.75, 8], "texture": "#1"}, + "east": {"uv": [8, 0, 10, 0.5], "texture": "#1"}, + "south": {"uv": [8, 8, 8.75, 8.5], "texture": "#1"}, + "west": {"uv": [8, 0.5, 10, 1], "texture": "#1"}, + "up": {"uv": [0.75, 9.5, 0, 7.5], "texture": "#1"}, + "down": {"uv": [1.5, 7.5, 0.75, 9.5], "texture": "#1"} + } + }, + { + "from": [2.2, 5.56066, 5.89645], + "to": [6.2, 7.56066, 7.89645], + "rotation": {"angle": 45, "axis": "x", "origin": [8.7, 7.06066, 10.89645]}, + "faces": { + "north": {"uv": [8, 3.5, 9, 4], "texture": "#1"}, + "east": {"uv": [5, 4.5, 5.5, 5], "texture": "#1"}, + "south": {"uv": [8, 6, 9, 6.5], "texture": "#1"}, + "west": {"uv": [3, 8.25, 3.5, 8.75], "texture": "#1"}, + "up": {"uv": [9, 7, 8, 6.5], "texture": "#1"}, + "down": {"uv": [8, 8, 7, 8.5], "texture": "#1"} } }, { @@ -27,38 +53,51 @@ "to": [16, 1.7, 8.7], "rotation": {"angle": -22.5, "axis": "x", "origin": [9, 0.7, 4.7]}, "faces": { - "north": {"uv": [7, 1, 10.5, 1.25], "texture": "#1"}, - "east": {"uv": [7, 2.5, 8.5, 2.75], "texture": "#1"}, - "south": {"uv": [7, 1.25, 10.5, 1.5], "texture": "#1"}, - "west": {"uv": [7, 2.75, 8.5, 3], "texture": "#1"}, - "up": {"uv": [7, 1.5, 3.5, 0], "texture": "#1"}, - "down": {"uv": [7, 1.5, 3.5, 3], "texture": "#1"} + "north": {"uv": [8, 1, 11.5, 1.25], "texture": "#1"}, + "east": {"uv": [8, 7, 9.5, 7.25], "texture": "#1"}, + "south": {"uv": [8, 1.25, 11.5, 1.5], "texture": "#1"}, + "west": {"uv": [8, 7.25, 9.5, 7.5], "texture": "#1"}, + "up": {"uv": [3.5, 1.5, 0, 0], "texture": "#1"}, + "down": {"uv": [3.5, 1.5, 0, 3], "texture": "#1"} } }, { "from": [6, 0, 8], "to": [16, 6, 16], - "rotation": {"angle": 0, "axis": "z", "origin": [10.5, 3, 12]}, + "rotation": {"angle": 0, "axis": "y", "origin": [10.5, 3, 12]}, "faces": { - "north": {"uv": [6, 3, 8.5, 4.5], "texture": "#1"}, - "east": {"uv": [6.5, 4.5, 8.5, 6], "texture": "#1"}, - "south": {"uv": [0, 6.5, 2.5, 8], "texture": "#1"}, - "west": {"uv": [6.5, 6, 8.5, 7.5], "texture": "#1"}, - "up": {"uv": [6, 5, 3.5, 3], "texture": "#1"}, - "down": {"uv": [2.5, 4.5, 0, 6.5], "texture": "#1"} + "north": {"uv": [3.5, 0, 6, 1.5], "texture": "#1"}, + "east": {"uv": [5.5, 4.5, 7.5, 6], "texture": "#1"}, + "south": {"uv": [3.5, 1.5, 6, 3], "texture": "#1"}, + "west": {"uv": [6, 0, 8, 1.5], "texture": "#1"}, + "up": {"uv": [2.5, 5, 0, 3], "texture": "#1"}, + "down": {"uv": [5, 3, 2.5, 5], "texture": "#1"} } }, { - "from": [2, 7.5, 6], - "to": [16, 16.5, 8], + "from": [10, 7.5, 6], + "to": [16, 17.5, 8], "rotation": {"angle": 22.5, "axis": "x", "origin": [9.5, 11.5, 7]}, "faces": { - "north": {"uv": [0, 0, 3.5, 2.25], "texture": "#1"}, - "east": {"uv": [2.5, 7, 3, 9.25], "texture": "#1"}, - "south": {"uv": [0, 2.25, 3.5, 4.5], "texture": "#1"}, - "west": {"uv": [3, 7, 3.5, 9.25], "texture": "#1"}, - "up": {"uv": [10.5, 0.5, 7, 0], "texture": "#1"}, - "down": {"uv": [10.5, 0.5, 7, 1], "texture": "#1"} + "north": {"uv": [0, 5, 1.5, 7.5], "texture": "#1"}, + "east": {"uv": [1.5, 7.5, 2, 10], "texture": "#1"}, + "south": {"uv": [1.5, 5, 3, 7.5], "texture": "#1"}, + "west": {"uv": [7.5, 1.5, 8, 4], "texture": "#1"}, + "up": {"uv": [7.5, 2, 6, 1.5], "texture": "#1"}, + "down": {"uv": [7.5, 2, 6, 2.5], "texture": "#1"} + } + }, + { + "from": [-0.4, 7.5, 7.1], + "to": [9.6, 13.5, 9.1], + "rotation": {"angle": 22.5, "axis": "x", "origin": [3.1, 11.5, 8.1]}, + "faces": { + "north": {"uv": [3, 5, 5.5, 6.5], "texture": "#1"}, + "east": {"uv": [2, 7.5, 2.5, 9], "texture": "#1"}, + "south": {"uv": [5, 3, 7.5, 4.5], "texture": "#1"}, + "west": {"uv": [2.5, 7.5, 3, 9], "texture": "#1"}, + "up": {"uv": [10, 4.5, 7.5, 4], "texture": "#1"}, + "down": {"uv": [10, 4.5, 7.5, 5], "texture": "#1"} } }, { @@ -66,90 +105,90 @@ "to": [6, 2, 16], "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 9]}, "faces": { - "north": {"uv": [8.5, 4.5, 11.5, 5.5], "texture": "#1"}, - "east": {"uv": [8.5, 2.5, 12, 3.5], "texture": "#1"}, - "south": {"uv": [8.5, 5.5, 11.5, 6.5], "texture": "#1"}, - "west": {"uv": [8.5, 3.5, 12, 4.5], "texture": "#1"}, - "up": {"uv": [6.5, 10.5, 3.5, 7], "texture": "#1"}, - "down": {"uv": [9.5, 7.5, 6.5, 11], "texture": "#1"} + "north": {"uv": [6, 2.5, 7.5, 3], "texture": "#1"}, + "east": {"uv": [8, 1.5, 9.75, 2], "texture": "#1"}, + "south": {"uv": [5.5, 7.75, 7, 8.25], "texture": "#1"}, + "west": {"uv": [8, 2, 9.75, 2.5], "texture": "#1"}, + "up": {"uv": [7, 7.75, 5.5, 6], "texture": "#1"}, + "down": {"uv": [4.5, 6.5, 3, 8.25], "texture": "#1"} } }, { - "from": [5, 2, 10], - "to": [6, 5, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [5.5, 3.5, 10.5]}, + "from": [4, 2, 10], + "to": [5, 5, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [4.5, 3.5, 10.5]}, "faces": { - "north": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "east": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "south": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "west": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 180, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 180, "texture": "#1"} + "north": {"uv": [3.5, 8.25, 3.75, 9], "texture": "#1"}, + "east": {"uv": [3.75, 8.25, 4, 9], "texture": "#1"}, + "south": {"uv": [4, 8.25, 4.25, 9], "texture": "#1"}, + "west": {"uv": [4.25, 8.25, 4.5, 9], "texture": "#1"}, + "up": {"uv": [6, 9.25, 5.75, 9], "texture": "#1"}, + "down": {"uv": [6.25, 9, 6, 9.25], "texture": "#1"} } }, { - "from": [5, 2, 12], - "to": [6, 5, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [5.5, 3.5, 12.5]}, + "from": [4, 2, 12], + "to": [5, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [4.5, 3.5, 12.5]}, "faces": { - "north": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "east": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "south": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "west": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 90, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 270, "texture": "#1"} + "north": {"uv": [5.5, 8.25, 5.75, 9], "texture": "#1"}, + "east": {"uv": [5.75, 8.25, 6, 9], "texture": "#1"}, + "south": {"uv": [6, 8.25, 6.25, 9], "texture": "#1"}, + "west": {"uv": [6.25, 8.25, 6.5, 9], "texture": "#1"}, + "up": {"uv": [9.25, 6.25, 9, 6], "texture": "#1"}, + "down": {"uv": [6.5, 9, 6.25, 9.25], "texture": "#1"} } }, { - "from": [5, 2, 14], - "to": [6, 5, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [5.5, 3.5, 14.5]}, + "from": [4, 2, 14], + "to": [5, 5, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [4.5, 3.5, 14.5]}, "faces": { - "north": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "east": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "south": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "west": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 270, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 90, "texture": "#1"} + "north": {"uv": [6.5, 8.25, 6.75, 9], "texture": "#1"}, + "east": {"uv": [6.75, 8.25, 7, 9], "texture": "#1"}, + "south": {"uv": [4.5, 8.5, 4.75, 9.25], "texture": "#1"}, + "west": {"uv": [4.75, 8.5, 5, 9.25], "texture": "#1"}, + "up": {"uv": [9.25, 6.5, 9, 6.25], "texture": "#1"}, + "down": {"uv": [6.75, 9, 6.5, 9.25], "texture": "#1"} } }, { - "from": [3, 2, 14], - "to": [4, 5, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [3.5, 3.5, 14.5]}, + "from": [2.5, 2, 14], + "to": [3.5, 5, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 3.5, 14.5]}, "faces": { - "north": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "east": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "south": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "west": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "texture": "#1"} + "north": {"uv": [5, 8.5, 5.25, 9.25], "texture": "#1"}, + "east": {"uv": [5.25, 8.5, 5.5, 9.25], "texture": "#1"}, + "south": {"uv": [7, 8.5, 7.25, 9.25], "texture": "#1"}, + "west": {"uv": [7.25, 8.5, 7.5, 9.25], "texture": "#1"}, + "up": {"uv": [9.25, 6.75, 9, 6.5], "texture": "#1"}, + "down": {"uv": [7, 9, 6.75, 9.25], "texture": "#1"} } }, { - "from": [3, 2, 12], - "to": [4, 5, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [3.5, 3.5, 12.5]}, + "from": [2.5, 2, 12], + "to": [3.5, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 3.5, 12.5]}, "faces": { - "north": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "east": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "south": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "west": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 270, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 90, "texture": "#1"} + "north": {"uv": [7.5, 8.5, 7.75, 9.25], "texture": "#1"}, + "east": {"uv": [7.75, 8.5, 8, 9.25], "texture": "#1"}, + "south": {"uv": [8, 8.5, 8.25, 9.25], "texture": "#1"}, + "west": {"uv": [8.25, 8.5, 8.5, 9.25], "texture": "#1"}, + "up": {"uv": [9.25, 7, 9, 6.75], "texture": "#1"}, + "down": {"uv": [9.25, 7.5, 9, 7.75], "texture": "#1"} } }, { - "from": [3, 2, 10], - "to": [4, 5, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [3.5, 3.5, 10.5]}, + "from": [2.5, 2, 10], + "to": [3.5, 5, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 3.5, 10.5]}, "faces": { - "north": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "east": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "south": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "west": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 270, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 90, "texture": "#1"} + "north": {"uv": [8.5, 8.5, 8.75, 9.25], "texture": "#1"}, + "east": {"uv": [3, 8.75, 3.25, 9.5], "texture": "#1"}, + "south": {"uv": [3.25, 8.75, 3.5, 9.5], "texture": "#1"}, + "west": {"uv": [8.75, 7.5, 9, 8.25], "texture": "#1"}, + "up": {"uv": [9.25, 8, 9, 7.75], "texture": "#1"}, + "down": {"uv": [9.25, 8, 9, 8.25], "texture": "#1"} } }, { @@ -157,12 +196,12 @@ "to": [2, 5, 15], "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 3.5, 14.5]}, "faces": { - "north": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "east": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "south": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "west": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 270, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 90, "texture": "#1"} + "north": {"uv": [8.75, 8.25, 9, 9], "texture": "#1"}, + "east": {"uv": [2, 9, 2.25, 9.75], "texture": "#1"}, + "south": {"uv": [2.25, 9, 2.5, 9.75], "texture": "#1"}, + "west": {"uv": [2.5, 9, 2.75, 9.75], "texture": "#1"}, + "up": {"uv": [9.25, 8.5, 9, 8.25], "texture": "#1"}, + "down": {"uv": [9.25, 8.5, 9, 8.75], "texture": "#1"} } }, { @@ -170,12 +209,12 @@ "to": [2, 5, 13], "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 3.5, 12.5]}, "faces": { - "north": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "east": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "south": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "west": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 270, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 90, "texture": "#1"} + "north": {"uv": [9, 2.5, 9.25, 3.25], "texture": "#1"}, + "east": {"uv": [2.75, 9, 3, 9.75], "texture": "#1"}, + "south": {"uv": [9, 3.25, 9.25, 4], "texture": "#1"}, + "west": {"uv": [3.5, 9, 3.75, 9.75], "texture": "#1"}, + "up": {"uv": [9, 9.25, 8.75, 9], "texture": "#1"}, + "down": {"uv": [9.25, 8.75, 9, 9], "texture": "#1"} } }, { @@ -183,12 +222,12 @@ "to": [2, 5, 11], "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 3.5, 10.5]}, "faces": { - "north": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "east": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "south": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "west": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "texture": "#1"} + "north": {"uv": [3.75, 9, 4, 9.75], "texture": "#1"}, + "east": {"uv": [4, 9, 4.25, 9.75], "texture": "#1"}, + "south": {"uv": [4.25, 9, 4.5, 9.75], "texture": "#1"}, + "west": {"uv": [5.5, 9, 5.75, 9.75], "texture": "#1"}, + "up": {"uv": [9.25, 9.25, 9, 9], "texture": "#1"}, + "down": {"uv": [9.5, 2.5, 9.25, 2.75], "texture": "#1"} } } ], diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/embryo_calcification_machine.json b/common/src/main/resources/assets/jurassicrevived/models/block/embryo_calcification_machine.json index a2376ba..4709600 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/embryo_calcification_machine.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/embryo_calcification_machine.json @@ -5,7 +5,7 @@ "render_type": "cutout", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/embryo_calcification_machine", + "1": "jurassicrevived:block/embryo_calcification_machine", "particle": "jurassicrevived:block/embryo_calcification_machine" }, "elements": [ @@ -14,12 +14,12 @@ "to": [15, 6, 12], "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, "faces": { - "north": {"uv": [3.5, 0, 7, 1.5], "texture": "#0"}, - "east": {"uv": [2.5, 4.25, 4.5, 5.75], "texture": "#0"}, - "south": {"uv": [3.5, 1.5, 7, 3], "texture": "#0"}, - "west": {"uv": [4.5, 4.25, 6.5, 5.75], "texture": "#0"}, - "up": {"uv": [3.5, 2, 0, 0], "texture": "#0"}, - "down": {"uv": [3.5, 2, 0, 4], "texture": "#0"} + "north": {"uv": [3.5, 0, 7, 1.5], "texture": "#1"}, + "east": {"uv": [2.5, 4.25, 4.5, 5.75], "texture": "#1"}, + "south": {"uv": [3.5, 1.5, 7, 3], "texture": "#1"}, + "west": {"uv": [4.5, 4.25, 6.5, 5.75], "texture": "#1"}, + "up": {"uv": [3.5, 2, 0, 0], "texture": "#1"}, + "down": {"uv": [3.5, 2, 0, 4], "texture": "#1"} } }, { @@ -27,12 +27,12 @@ "to": [4.2, 8, 11.8], "rotation": {"angle": 0, "axis": "y", "origin": [7.2, 6, 6.8]}, "faces": { - "north": {"uv": [3, 7.25, 3.75, 7.75], "texture": "#0"}, - "east": {"uv": [0.5, 7.5, 1.25, 8], "texture": "#0"}, - "south": {"uv": [7.5, 1.5, 8.25, 2], "texture": "#0"}, - "west": {"uv": [7.5, 2, 8.25, 2.5], "texture": "#0"}, - "up": {"uv": [4.5, 7.5, 3.75, 6.75], "texture": "#0"}, - "down": {"uv": [7.25, 6.75, 6.5, 7.5], "texture": "#0"} + "north": {"uv": [7.5, 3.25, 8.25, 3.75], "texture": "#1"}, + "east": {"uv": [7.5, 3.75, 8.25, 4.25], "texture": "#1"}, + "south": {"uv": [4, 7.5, 4.75, 8], "texture": "#1"}, + "west": {"uv": [7.5, 4.25, 8.25, 4.75], "texture": "#1"}, + "up": {"uv": [4.75, 7.5, 4, 6.75], "texture": "#1"}, + "down": {"uv": [7.75, 1, 7, 1.75], "texture": "#1"} } }, { @@ -40,12 +40,12 @@ "to": [4.2, 8, 8.3], "rotation": {"angle": 0, "axis": "y", "origin": [7.2, 6, 3.3]}, "faces": { - "north": {"uv": [7.5, 2.5, 8.25, 3], "texture": "#0"}, - "east": {"uv": [7.5, 3, 8.25, 3.5], "texture": "#0"}, - "south": {"uv": [3.75, 7.5, 4.5, 8], "texture": "#0"}, - "west": {"uv": [7.5, 4, 8.25, 4.5], "texture": "#0"}, - "up": {"uv": [7.75, 0.75, 7, 0], "texture": "#0"}, - "down": {"uv": [7.75, 0.75, 7, 1.5], "texture": "#0"} + "north": {"uv": [7.5, 4.75, 8.25, 5.25], "texture": "#1"}, + "east": {"uv": [7.5, 5.75, 8.25, 6.25], "texture": "#1"}, + "south": {"uv": [7.5, 6.25, 8.25, 6.75], "texture": "#1"}, + "west": {"uv": [0, 7.75, 0.75, 8.25], "texture": "#1"}, + "up": {"uv": [7.75, 2.5, 7, 1.75], "texture": "#1"}, + "down": {"uv": [7.75, 2.5, 7, 3.25], "texture": "#1"} } }, { @@ -53,130 +53,143 @@ "to": [10, 7, 10], "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, "faces": { - "north": {"uv": [2.5, 4, 3.5, 4.25], "texture": "#0"}, - "east": {"uv": [2, 7.75, 3, 8], "texture": "#0"}, - "south": {"uv": [7.75, 5.25, 8.75, 5.5], "texture": "#0"}, - "west": {"uv": [7.75, 5.5, 8.75, 5.75], "texture": "#0"}, - "up": {"uv": [2.5, 7.25, 1.5, 6.25], "texture": "#0"}, - "down": {"uv": [7.5, 4.25, 6.5, 5.25], "texture": "#0"} + "north": {"uv": [2.5, 4, 3.5, 4.25], "texture": "#1"}, + "east": {"uv": [7.75, 5.25, 8.75, 5.5], "texture": "#1"}, + "south": {"uv": [7.75, 5.5, 8.75, 5.75], "texture": "#1"}, + "west": {"uv": [5.75, 7.75, 6.75, 8], "texture": "#1"}, + "up": {"uv": [7, 6.75, 6, 5.75], "texture": "#1"}, + "down": {"uv": [1, 6.25, 0, 7.25], "texture": "#1"} } }, { - "from": [4, 7.6, 6], - "to": [6, 7.6, 10], - "rotation": {"angle": -22.5, "axis": "z", "origin": [4, 1.6, 7]}, + "from": [3.8, 7.8, 6], + "to": [5.8, 7.8, 10], + "rotation": {"angle": -22.5, "axis": "z", "origin": [3.8, 1.8, 7]}, "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "up": {"uv": [8.75, 6.75, 8.25, 5.75], "texture": "#0"}, - "down": {"uv": [7.5, 1.5, 7, 2.5], "texture": "#0"} + "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [7.5, 4.25, 7, 3.25], "texture": "#1"}, + "down": {"uv": [5.25, 7, 4.75, 8], "texture": "#1"} } }, { - "from": [10, 7.6, 6], - "to": [12, 7.6, 10], - "rotation": {"angle": 22.5, "axis": "z", "origin": [12, 1.6, 7]}, + "from": [10.2, 7.8, 6], + "to": [12.2, 7.8, 10], + "rotation": {"angle": 22.5, "axis": "z", "origin": [12.2, 1.8, 7]}, "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "up": {"uv": [8.75, 6.75, 8.25, 5.75], "texture": "#0"}, - "down": {"uv": [2, 7.25, 1.5, 8.25], "texture": "#0"} + "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [5.75, 8, 5.25, 7], "texture": "#1"}, + "down": {"uv": [7.5, 5.75, 7, 6.75], "texture": "#1"} } }, { - "from": [6.1, 7.1, 10.1], - "to": [10.1, 7.1, 12.1], - "rotation": {"angle": -22.5, "axis": "x", "origin": [7.1, 1.1, 10.1]}, + "from": [6, 7.1, 10.4], + "to": [10, 7.1, 12.4], + "rotation": {"angle": -22.5, "axis": "x", "origin": [7, 1.1, 10.4]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "up": {"uv": [9.25, 7.75, 8.25, 7.25], "texture": "#0"}, - "down": {"uv": [3, 7.25, 2, 7.75], "texture": "#0"} + "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "up": {"uv": [1, 7.75, 0, 7.25], "texture": "#1"}, + "down": {"uv": [6.75, 7.25, 5.75, 7.75], "texture": "#1"} } }, { - "from": [6.1, 7.1, 3.9], - "to": [10.1, 7.1, 5.9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [7.1, 1.1, 5.9]}, + "from": [6, 7.1, 3.6], + "to": [10, 7.1, 5.6], + "rotation": {"angle": 22.5, "axis": "x", "origin": [7, 1.1, 5.6]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "up": {"uv": [9.25, 7.75, 8.25, 7.25], "texture": "#0"}, - "down": {"uv": [9.25, 7.25, 8.25, 7.75], "texture": "#0"} + "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "up": {"uv": [7.75, 7.75, 6.75, 7.25], "texture": "#1"}, + "down": {"uv": [8.25, 6.75, 7.25, 7.25], "texture": "#1"} } }, { "name": "Egg", - "from": [7, 7, 7], - "to": [9, 10, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [7, 1, 7]}, + "from": [9.8, 6.3, 7], + "to": [11.8, 9.3, 9], + "rotation": {"angle": 22.5, "axis": "z", "origin": [9.8, 0.3, 7]}, "faces": { - "north": {"uv": [7.5, 4.5, 8, 5.25], "texture": "#0"}, - "east": {"uv": [6.5, 7.5, 7, 8.25], "texture": "#0"}, - "south": {"uv": [7.75, 0, 8.25, 0.75], "texture": "#0"}, - "west": {"uv": [7.75, 0.75, 8.25, 1.5], "texture": "#0"}, - "up": {"uv": [3.5, 8.25, 3, 7.75], "texture": "#0"}, - "down": {"uv": [5, 7.75, 4.5, 8.25], "texture": "#0"} + "north": {"uv": [7.75, 1, 8.25, 1.75], "texture": "#1"}, + "east": {"uv": [7.75, 1.75, 8.25, 2.5], "texture": "#1"}, + "south": {"uv": [7.75, 2.5, 8.25, 3.25], "texture": "#1"}, + "west": {"uv": [3, 7.75, 3.5, 8.5], "texture": "#1"}, + "up": {"uv": [4, 8.25, 3.5, 7.75], "texture": "#1"}, + "down": {"uv": [7.25, 7.75, 6.75, 8.25], "texture": "#1"} } }, { - "from": [12, 6, 7], - "to": [14, 17, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 7, 7]}, + "from": [12, 6, 6.9], + "to": [14, 14, 8.9], + "rotation": {"angle": 22.5, "axis": "x", "origin": [9, 7, 6.9]}, "faces": { - "north": {"uv": [5, 5.75, 5.5, 8.5], "texture": "#0"}, - "east": {"uv": [5.5, 5.75, 6, 8.5], "texture": "#0"}, - "south": {"uv": [6, 5.75, 6.5, 8.5], "texture": "#0"}, - "west": {"uv": [0, 6.25, 0.5, 9], "texture": "#0"}, - "up": {"uv": [8.25, 6.25, 7.75, 5.75], "texture": "#0"}, - "down": {"uv": [8.25, 6.25, 7.75, 6.75], "texture": "#0"} + "north": {"uv": [1, 6.25, 1.5, 8.25], "texture": "#1"}, + "east": {"uv": [1.5, 6.25, 2, 8.25], "texture": "#1"}, + "south": {"uv": [2, 6.25, 2.5, 8.25], "texture": "#1"}, + "west": {"uv": [2.5, 6.75, 3, 8.75], "texture": "#1"}, + "up": {"uv": [7.75, 8.25, 7.25, 7.75], "texture": "#1"}, + "down": {"uv": [8.25, 7.25, 7.75, 7.75], "texture": "#1"} } }, { - "from": [7, 15, 7], - "to": [12, 17, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 7]}, + "from": [10.9, 6, 6.1], + "to": [14.9, 7, 10.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8.9, 7, 7.1]}, "faces": { - "north": {"uv": [6.5, 5.25, 7.75, 5.75], "texture": "#0"}, - "east": {"uv": [7, 7.75, 7.5, 8.25], "texture": "#0"}, - "south": {"uv": [6.5, 5.75, 7.75, 6.25], "texture": "#0"}, - "west": {"uv": [7.5, 7.75, 8, 8.25], "texture": "#0"}, - "up": {"uv": [7.75, 6.75, 6.5, 6.25], "texture": "#0"}, - "down": {"uv": [3.75, 6.75, 2.5, 7.25], "texture": "#0"} + "north": {"uv": [7.75, 7.75, 8.75, 8], "texture": "#1"}, + "east": {"uv": [4, 8, 5, 8.25], "texture": "#1"}, + "south": {"uv": [5, 8, 6, 8.25], "texture": "#1"}, + "west": {"uv": [7.75, 8, 8.75, 8.25], "texture": "#1"}, + "up": {"uv": [7.5, 5.25, 6.5, 4.25], "texture": "#1"}, + "down": {"uv": [4, 6.75, 3, 7.75], "texture": "#1"} } }, { - "from": [7.5, 13, 7.5], - "to": [8.5, 15, 8.5], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 8, 6.5]}, + "from": [9.3, 11.7, 8.1], + "to": [14.3, 13.7, 10.1], + "rotation": {"angle": -22.5, "axis": "y", "origin": [10.3, 6.7, 8.1]}, "faces": { - "north": {"uv": [1.25, 7.5, 1.5, 8], "texture": "#0"}, - "east": {"uv": [3.5, 7.75, 3.75, 8.25], "texture": "#0"}, - "south": {"uv": [0.5, 8, 0.75, 8.5], "texture": "#0"}, - "west": {"uv": [0.75, 8, 1, 8.5], "texture": "#0"}, - "up": {"uv": [7.25, 4.25, 7, 4], "texture": "#0"}, - "down": {"uv": [7.5, 4, 7.25, 4.25], "texture": "#0"} + "north": {"uv": [6.5, 5.25, 7.75, 5.75], "texture": "#1"}, + "east": {"uv": [6, 8, 6.5, 8.5], "texture": "#1"}, + "south": {"uv": [6, 6.75, 7.25, 7.25], "texture": "#1"}, + "west": {"uv": [0, 8.25, 0.5, 8.75], "texture": "#1"}, + "up": {"uv": [8.25, 0.5, 7, 0], "texture": "#1"}, + "down": {"uv": [8.25, 0.5, 7, 1], "texture": "#1"} } }, { - "from": [7.5, 11, 8], - "to": [8.5, 13, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 6, 6.5]}, + "from": [6.4, 11.2, 8.2], + "to": [7.4, 13.2, 9.2], + "rotation": {"angle": -22.5, "axis": "z", "origin": [7.4, 6.2, 7.2]}, "faces": { - "north": {"uv": [1, 8, 1.25, 8.5], "texture": "#0"}, - "east": {"uv": [0, 0, 0, 0.5], "texture": "#0"}, - "south": {"uv": [1.25, 8, 1.5, 8.5], "texture": "#0"}, - "west": {"uv": [0, 0, 0, 0.5], "texture": "#0"}, - "up": {"uv": [0.25, 0, 0, 0], "texture": "#0"}, - "down": {"uv": [0.25, 0, 0, 0], "texture": "#0"} + "north": {"uv": [0.75, 7.75, 1, 8.25], "texture": "#1"}, + "east": {"uv": [6.5, 8, 6.75, 8.5], "texture": "#1"}, + "south": {"uv": [8.25, 0, 8.5, 0.5], "texture": "#1"}, + "west": {"uv": [0.5, 8.25, 0.75, 8.75], "texture": "#1"}, + "up": {"uv": [5, 7, 4.75, 6.75], "texture": "#1"}, + "down": {"uv": [6, 7, 5.75, 7.25], "texture": "#1"} + } + }, + { + "from": [6.4, 10.2, 8.7], + "to": [7.4, 11.2, 8.7], + "rotation": {"angle": -22.5, "axis": "z", "origin": [7.4, 6.2, 7.2]}, + "faces": { + "north": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#1"}, + "east": {"uv": [0, 0, 0, 0.25], "texture": "#1"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#1"}, + "west": {"uv": [0, 0, 0, 0.25], "texture": "#1"}, + "up": {"uv": [0.25, 0, 0, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 0.25, 0], "texture": "#1"} } }, { @@ -184,12 +197,12 @@ "to": [13, 6, 5], "rotation": {"angle": 22.5, "axis": "x", "origin": [7, 0, 4]}, "faces": { - "north": {"uv": [3.5, 3, 6, 4.25], "texture": "#0"}, - "east": {"uv": [6, 3, 7, 4.25], "texture": "#0"}, - "south": {"uv": [0, 4, 2.5, 5.25], "texture": "#0"}, - "west": {"uv": [0.5, 6.25, 1.5, 7.5], "texture": "#0"}, - "up": {"uv": [2.5, 6.25, 0, 5.25], "texture": "#0"}, - "down": {"uv": [5, 5.75, 2.5, 6.75], "texture": "#0"} + "north": {"uv": [3.5, 3, 6, 4.25], "texture": "#1"}, + "east": {"uv": [5, 5.75, 6, 7], "texture": "#1"}, + "south": {"uv": [0, 4, 2.5, 5.25], "texture": "#1"}, + "west": {"uv": [6, 3, 7, 4.25], "texture": "#1"}, + "up": {"uv": [2.5, 6.25, 0, 5.25], "texture": "#1"}, + "down": {"uv": [5, 5.75, 2.5, 6.75], "texture": "#1"} } } ], @@ -228,8 +241,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/embryonic_machine.json b/common/src/main/resources/assets/jurassicrevived/models/block/embryonic_machine.json index e46ec6f..5949591 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/embryonic_machine.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/embryonic_machine.json @@ -5,7 +5,7 @@ "render_type": "cutout", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/embryonic_machine", + "1": "jurassicrevived:block/embryonic_machine", "particle": "jurassicrevived:block/embryonic_machine" }, "elements": [ @@ -14,168 +14,168 @@ "to": [15, 4, 16], "rotation": {"angle": 0, "axis": "y", "origin": [7, 1, 7]}, "faces": { - "north": {"uv": [6.5, 5, 10, 5.75], "texture": "#0"}, - "east": {"uv": [6.5, 6.5, 9, 7.25], "texture": "#0"}, - "south": {"uv": [6.5, 5.75, 10, 6.5], "texture": "#0"}, - "west": {"uv": [7, 0, 9.5, 0.75], "texture": "#0"}, - "up": {"uv": [3.5, 2.5, 0, 0], "texture": "#0"}, - "down": {"uv": [3.5, 2.5, 0, 5], "texture": "#0"} + "north": {"uv": [6.5, 5, 10, 5.75], "texture": "#1"}, + "east": {"uv": [6.5, 6.5, 9, 7.25], "texture": "#1"}, + "south": {"uv": [6.5, 5.75, 10, 6.5], "texture": "#1"}, + "west": {"uv": [7, 0, 9.5, 0.75], "texture": "#1"}, + "up": {"uv": [3.5, 2.5, 0, 0], "texture": "#1"}, + "down": {"uv": [3.5, 2.5, 0, 5], "texture": "#1"} } }, { - "from": [10.3, 4, 9], - "to": [12.3, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [9.3, 4, 7]}, + "from": [10.3, 4, 8.7], + "to": [12.3, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [9.3, 4, 6.7]}, "faces": { - "north": {"uv": [3, 9.5, 3.5, 9.75], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [3.5, 9.5, 4, 9.75], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [7, 7.25, 6.5, 9], "texture": "#0"} + "north": {"uv": [3, 9.5, 3.5, 9.75], "texture": "#1"}, + "east": {"uv": [8, 4.25, 9.75, 4.5], "texture": "#1"}, + "south": {"uv": [3.5, 9.5, 4, 9.75], "texture": "#1"}, + "west": {"uv": [8, 7.25, 9.75, 7.5], "texture": "#1"}, + "up": {"uv": [7.5, 4.5, 7, 2.75], "texture": "#1"}, + "down": {"uv": [7, 7.25, 6.5, 9], "texture": "#1"} } }, { - "from": [12.5, 4, 9], - "to": [14.5, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [11.5, 4, 7]}, + "from": [12.5, 4, 8.7], + "to": [14.5, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [11.5, 4, 6.7]}, "faces": { - "north": {"uv": [4, 9.5, 4.5, 9.75], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [4.5, 9.5, 5, 9.75], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [8, 2.75, 7.5, 4.5], "texture": "#0"} + "north": {"uv": [4, 9.5, 4.5, 9.75], "texture": "#1"}, + "east": {"uv": [8, 7.5, 9.75, 7.75], "texture": "#1"}, + "south": {"uv": [4.5, 9.5, 5, 9.75], "texture": "#1"}, + "west": {"uv": [8, 7.75, 9.75, 8], "texture": "#1"}, + "up": {"uv": [7.5, 9, 7, 7.25], "texture": "#1"}, + "down": {"uv": [8, 2.75, 7.5, 4.5], "texture": "#1"} } }, { - "from": [3.7, 4, 9], - "to": [5.7, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [2.7, 4, 7]}, + "from": [3.7, 4, 8.7], + "to": [5.7, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [2.7, 4, 6.7]}, "faces": { - "north": {"uv": [9.5, 6.5, 10, 6.75], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [9.5, 6.75, 10, 7], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [0.5, 7.75, 0, 9.5], "texture": "#0"} + "north": {"uv": [9.5, 6.5, 10, 6.75], "texture": "#1"}, + "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#1"}, + "south": {"uv": [9.5, 6.75, 10, 7], "texture": "#1"}, + "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#1"}, + "up": {"uv": [8, 9, 7.5, 7.25], "texture": "#1"}, + "down": {"uv": [0.5, 7.75, 0, 9.5], "texture": "#1"} } }, { - "from": [1.5, 4, 9], - "to": [3.5, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 4, 7]}, + "from": [1.5, 4, 8.7], + "to": [3.5, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 4, 6.7]}, "faces": { - "north": {"uv": [9.5, 7, 10, 7.25], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [9.25, 9.5, 9.75, 9.75], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [1.5, 7.75, 1, 9.5], "texture": "#0"} + "north": {"uv": [9.5, 7, 10, 7.25], "texture": "#1"}, + "east": {"uv": [8, 8.25, 9.75, 8.5], "texture": "#1"}, + "south": {"uv": [9.25, 9.5, 9.75, 9.75], "texture": "#1"}, + "west": {"uv": [3.5, 8.5, 5.25, 8.75], "texture": "#1"}, + "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#1"}, + "down": {"uv": [1.5, 7.75, 1, 9.5], "texture": "#1"} } }, { - "from": [3.7, 2.225, 6.7], - "to": [5.7, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [2.7, 2.225, 4.7]}, + "from": [3.725, 2.2, 6.525], + "to": [5.675, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [2.7, 2.175, 4.5]}, "faces": { - "north": {"uv": [0, 9.75, 0.5, 10], "texture": "#0"}, - "east": {"uv": [3.5, 9.25, 4.25, 9.5], "texture": "#0"}, - "south": {"uv": [0.5, 9.75, 1, 10], "texture": "#0"}, - "west": {"uv": [9.25, 4, 10, 4.25], "texture": "#0"}, - "up": {"uv": [5.75, 9, 5.25, 8.25], "texture": "#0"}, - "down": {"uv": [6.25, 8.25, 5.75, 9], "texture": "#0"} + "north": {"uv": [0, 9.75, 0.5, 10], "texture": "#1"}, + "east": {"uv": [3.5, 9.25, 4.25, 9.5], "texture": "#1"}, + "south": {"uv": [0.5, 9.75, 1, 10], "texture": "#1"}, + "west": {"uv": [9.25, 4, 10, 4.25], "texture": "#1"}, + "up": {"uv": [5.75, 9, 5.25, 8.25], "texture": "#1"}, + "down": {"uv": [6.25, 8.25, 5.75, 9], "texture": "#1"} } }, { - "from": [10.3, 2.225, 6.7], - "to": [12.3, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [9.3, 2.225, 4.7]}, + "from": [10.325, 2.2, 6.525], + "to": [12.275, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [9.3, 2.175, 4.5]}, "faces": { - "north": {"uv": [1, 9.75, 1.5, 10], "texture": "#0"}, - "east": {"uv": [4.25, 9.25, 5, 9.5], "texture": "#0"}, - "south": {"uv": [1.5, 9.75, 2, 10], "texture": "#0"}, - "west": {"uv": [9.25, 9, 10, 9.25], "texture": "#0"}, - "up": {"uv": [5.75, 9.75, 5.25, 9], "texture": "#0"}, - "down": {"uv": [6.25, 9, 5.75, 9.75], "texture": "#0"} + "north": {"uv": [1, 9.75, 1.5, 10], "texture": "#1"}, + "east": {"uv": [4.25, 9.25, 5, 9.5], "texture": "#1"}, + "south": {"uv": [1.5, 9.75, 2, 10], "texture": "#1"}, + "west": {"uv": [9.25, 9, 10, 9.25], "texture": "#1"}, + "up": {"uv": [5.75, 9.75, 5.25, 9], "texture": "#1"}, + "down": {"uv": [6.25, 9, 5.75, 9.75], "texture": "#1"} } }, { - "from": [8.1, 4, 9], - "to": [10.1, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [7.1, 4, 7]}, + "from": [8.1, 4, 8.7], + "to": [10.1, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [7.1, 4, 6.7]}, "faces": { - "north": {"uv": [2, 9.75, 2.5, 10], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [2.5, 9.75, 3, 10], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [2.5, 7.75, 2, 9.5], "texture": "#0"} + "north": {"uv": [2, 9.75, 2.5, 10], "texture": "#1"}, + "east": {"uv": [8, 8.5, 9.75, 8.75], "texture": "#1"}, + "south": {"uv": [2.5, 9.75, 3, 10], "texture": "#1"}, + "west": {"uv": [3.5, 8.75, 5.25, 9], "texture": "#1"}, + "up": {"uv": [2, 9.5, 1.5, 7.75], "texture": "#1"}, + "down": {"uv": [2.5, 7.75, 2, 9.5], "texture": "#1"} } }, { - "from": [8.1, 2.225, 6.7], - "to": [10.1, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [7.1, 2.225, 4.7]}, + "from": [8.125, 2.2, 6.525], + "to": [10.075, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [7.1, 2.175, 4.5]}, "faces": { - "north": {"uv": [3, 9.75, 3.5, 10], "texture": "#0"}, - "east": {"uv": [9.25, 9.25, 10, 9.5], "texture": "#0"}, - "south": {"uv": [9.75, 3.25, 10.25, 3.5], "texture": "#0"}, - "west": {"uv": [0, 9.5, 0.75, 9.75], "texture": "#0"}, - "up": {"uv": [6.75, 9.75, 6.25, 9], "texture": "#0"}, - "down": {"uv": [9.5, 6.5, 9, 7.25], "texture": "#0"} + "north": {"uv": [3, 9.75, 3.5, 10], "texture": "#1"}, + "east": {"uv": [9.25, 9.25, 10, 9.5], "texture": "#1"}, + "south": {"uv": [9.75, 3.25, 10.25, 3.5], "texture": "#1"}, + "west": {"uv": [0, 9.5, 0.75, 9.75], "texture": "#1"}, + "up": {"uv": [6.75, 9.75, 6.25, 9], "texture": "#1"}, + "down": {"uv": [9.5, 6.5, 9, 7.25], "texture": "#1"} } }, { - "from": [5.9, 4, 9], - "to": [7.9, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [4.9, 4, 7]}, + "from": [5.9, 4, 8.7], + "to": [7.9, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [4.9, 4, 6.7]}, "faces": { - "north": {"uv": [3.5, 9.75, 4, 10], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [9.75, 3.5, 10.25, 3.75], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [3.5, 7.75, 3, 9.5], "texture": "#0"} + "north": {"uv": [3.5, 9.75, 4, 10], "texture": "#1"}, + "east": {"uv": [8, 8.75, 9.75, 9], "texture": "#1"}, + "south": {"uv": [9.75, 3.5, 10.25, 3.75], "texture": "#1"}, + "west": {"uv": [3.5, 9, 5.25, 9.25], "texture": "#1"}, + "up": {"uv": [3, 9.5, 2.5, 7.75], "texture": "#1"}, + "down": {"uv": [3.5, 7.75, 3, 9.5], "texture": "#1"} } }, { - "from": [5.9, 2.225, 6.7], - "to": [7.9, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [4.9, 2.225, 4.7]}, + "from": [5.925, 2.2, 6.525], + "to": [7.875, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [4.9, 2.175, 4.5]}, "faces": { - "north": {"uv": [9.75, 3.75, 10.25, 4], "texture": "#0"}, - "east": {"uv": [9.5, 0, 10.25, 0.25], "texture": "#0"}, - "south": {"uv": [4, 9.75, 4.5, 10], "texture": "#0"}, - "west": {"uv": [9.5, 0.25, 10.25, 0.5], "texture": "#0"}, - "up": {"uv": [7.25, 9.75, 6.75, 9], "texture": "#0"}, - "down": {"uv": [7.75, 9, 7.25, 9.75], "texture": "#0"} + "north": {"uv": [9.75, 3.75, 10.25, 4], "texture": "#1"}, + "east": {"uv": [9.5, 0, 10.25, 0.25], "texture": "#1"}, + "south": {"uv": [4, 9.75, 4.5, 10], "texture": "#1"}, + "west": {"uv": [9.5, 0.25, 10.25, 0.5], "texture": "#1"}, + "up": {"uv": [7.25, 9.75, 6.75, 9], "texture": "#1"}, + "down": {"uv": [7.75, 9, 7.25, 9.75], "texture": "#1"} } }, { - "from": [12.5, 2.225, 6.7], - "to": [14.5, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [11.5, 2.225, 4.7]}, + "from": [12.525, 2.2, 6.525], + "to": [14.475, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [11.5, 2.175, 4.5]}, "faces": { - "north": {"uv": [9.75, 4.25, 10.25, 4.5], "texture": "#0"}, - "east": {"uv": [9.5, 0.5, 10.25, 0.75], "texture": "#0"}, - "south": {"uv": [4.5, 9.75, 5, 10], "texture": "#0"}, - "west": {"uv": [0.75, 9.5, 1.5, 9.75], "texture": "#0"}, - "up": {"uv": [8.25, 9.75, 7.75, 9], "texture": "#0"}, - "down": {"uv": [8.75, 9, 8.25, 9.75], "texture": "#0"} + "north": {"uv": [9.75, 4.25, 10.25, 4.5], "texture": "#1"}, + "east": {"uv": [9.5, 0.5, 10.25, 0.75], "texture": "#1"}, + "south": {"uv": [4.5, 9.75, 5, 10], "texture": "#1"}, + "west": {"uv": [0.75, 9.5, 1.5, 9.75], "texture": "#1"}, + "up": {"uv": [8.25, 9.75, 7.75, 9], "texture": "#1"}, + "down": {"uv": [8.75, 9, 8.25, 9.75], "texture": "#1"} } }, { - "from": [1.5, 2.225, 6.7], - "to": [3.5, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0.5, 2.225, 4.7]}, + "from": [1.525, 2.2, 6.525], + "to": [3.475, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [0.5, 2.175, 4.5]}, "faces": { - "north": {"uv": [5, 9.75, 5.5, 10], "texture": "#0"}, - "east": {"uv": [1.5, 9.5, 2.25, 9.75], "texture": "#0"}, - "south": {"uv": [5.5, 9.75, 6, 10], "texture": "#0"}, - "west": {"uv": [2.25, 9.5, 3, 9.75], "texture": "#0"}, - "up": {"uv": [9.25, 9.75, 8.75, 9], "texture": "#0"}, - "down": {"uv": [9.75, 3.25, 9.25, 4], "texture": "#0"} + "north": {"uv": [5, 9.75, 5.5, 10], "texture": "#1"}, + "east": {"uv": [1.5, 9.5, 2.25, 9.75], "texture": "#1"}, + "south": {"uv": [5.5, 9.75, 6, 10], "texture": "#1"}, + "west": {"uv": [2.25, 9.5, 3, 9.75], "texture": "#1"}, + "up": {"uv": [9.25, 9.75, 8.75, 9], "texture": "#1"}, + "down": {"uv": [9.75, 3.25, 9.25, 4], "texture": "#1"} } }, { @@ -183,12 +183,12 @@ "to": [14.4, 0.8, 8.5], "rotation": {"angle": -22.5, "axis": "x", "origin": [7.5, -2.1, -0.4]}, "faces": { - "north": {"uv": [7, 0.75, 10.25, 1.25], "texture": "#0"}, - "east": {"uv": [3.5, 7.75, 5, 8.25], "texture": "#0"}, - "south": {"uv": [7, 1.25, 10.25, 1.75], "texture": "#0"}, - "west": {"uv": [5, 7.75, 6.5, 8.25], "texture": "#0"}, - "up": {"uv": [3.25, 6.5, 0, 5], "texture": "#0"}, - "down": {"uv": [6.5, 5, 3.25, 6.5], "texture": "#0"} + "north": {"uv": [7, 0.75, 10.25, 1.25], "texture": "#1"}, + "east": {"uv": [3.5, 7.75, 5, 8.25], "texture": "#1"}, + "south": {"uv": [7, 1.25, 10.25, 1.75], "texture": "#1"}, + "west": {"uv": [5, 7.75, 6.5, 8.25], "texture": "#1"}, + "up": {"uv": [3.25, 6.5, 0, 5], "texture": "#1"}, + "down": {"uv": [6.5, 5, 3.25, 6.5], "texture": "#1"} } }, { @@ -196,12 +196,12 @@ "to": [15, 1, 16], "rotation": {"angle": 0, "axis": "y", "origin": [7, 1, 7]}, "faces": { - "north": {"uv": [7, 4.5, 10.5, 4.75], "texture": "#0"}, - "east": {"uv": [8, 2.75, 10.5, 3], "texture": "#0"}, - "south": {"uv": [7, 4.75, 10.5, 5], "texture": "#0"}, - "west": {"uv": [8, 3, 10.5, 3.25], "texture": "#0"}, - "up": {"uv": [7, 2.5, 3.5, 0], "texture": "#0"}, - "down": {"uv": [7, 2.5, 3.5, 5], "texture": "#0"} + "north": {"uv": [7, 4.5, 10.5, 4.75], "texture": "#1"}, + "east": {"uv": [8, 2.75, 10.5, 3], "texture": "#1"}, + "south": {"uv": [7, 4.75, 10.5, 5], "texture": "#1"}, + "west": {"uv": [8, 3, 10.5, 3.25], "texture": "#1"}, + "up": {"uv": [7, 2.5, 3.5, 0], "texture": "#1"}, + "down": {"uv": [7, 2.5, 3.5, 5], "texture": "#1"} } }, { @@ -209,12 +209,12 @@ "to": [14.5, 2, 6], "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 2, 11]}, "faces": { - "north": {"uv": [7, 1.75, 10.25, 2.25], "texture": "#0"}, - "east": {"uv": [8, 3.25, 9.25, 3.75], "texture": "#0"}, - "south": {"uv": [7, 2.25, 10.25, 2.75], "texture": "#0"}, - "west": {"uv": [8, 3.75, 9.25, 4.25], "texture": "#0"}, - "up": {"uv": [3.25, 7.75, 0, 6.5], "texture": "#0"}, - "down": {"uv": [6.5, 6.5, 3.25, 7.75], "texture": "#0"} + "north": {"uv": [7, 1.75, 10.25, 2.25], "texture": "#1"}, + "east": {"uv": [8, 3.25, 9.25, 3.75], "texture": "#1"}, + "south": {"uv": [7, 2.25, 10.25, 2.75], "texture": "#1"}, + "west": {"uv": [8, 3.75, 9.25, 4.25], "texture": "#1"}, + "up": {"uv": [3.25, 7.75, 0, 6.5], "texture": "#1"}, + "down": {"uv": [6.5, 6.5, 3.25, 7.75], "texture": "#1"} } } ], @@ -253,6 +253,7 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] } diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/fossil_cleaner.json b/common/src/main/resources/assets/jurassicrevived/models/block/fossil_cleaner.json index 9fe2d19..730555a 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/fossil_cleaner.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/fossil_cleaner.json @@ -5,7 +5,7 @@ "render_type": "cutout", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/fossil_cleaner", + "1": "jurassicrevived:block/fossil_cleaner", "particle": "jurassicrevived:block/fossil_cleaner" }, "elements": [ @@ -14,12 +14,12 @@ "to": [13, 3, 11], "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, "faces": { - "north": {"uv": [9, 4.25, 11.5, 5], "texture": "#0"}, - "east": {"uv": [2.75, 9.5, 5.25, 10.25], "texture": "#0"}, - "south": {"uv": [5.25, 9.5, 7.75, 10.25], "texture": "#0"}, - "west": {"uv": [7.75, 9.5, 10.25, 10.25], "texture": "#0"}, - "up": {"uv": [9, 5.25, 6.5, 2.75], "texture": "#0"}, - "down": {"uv": [10.75, 5.25, 8.25, 7.75], "texture": "#0"} + "north": {"uv": [9, 4.25, 11.5, 5], "texture": "#1"}, + "east": {"uv": [2.75, 9.5, 5.25, 10.25], "texture": "#1"}, + "south": {"uv": [5.25, 9.5, 7.75, 10.25], "texture": "#1"}, + "west": {"uv": [7.75, 9.5, 10.25, 10.25], "texture": "#1"}, + "up": {"uv": [9, 5.25, 6.5, 2.75], "texture": "#1"}, + "down": {"uv": [10.75, 5.25, 8.25, 7.75], "texture": "#1"} } }, { @@ -27,12 +27,12 @@ "to": [12, 5, 10.3], "rotation": {"angle": 0, "axis": "y", "origin": [7, 3, 6.3]}, "faces": { - "north": {"uv": [10, 1.5, 12, 2], "texture": "#0"}, - "east": {"uv": [6.5, 5.25, 8.25, 5.75], "texture": "#0"}, - "south": {"uv": [10, 2, 12, 2.5], "texture": "#0"}, - "west": {"uv": [2.75, 10.25, 4.5, 10.75], "texture": "#0"}, - "up": {"uv": [10.25, 9.5, 8.25, 7.75], "texture": "#0"}, - "down": {"uv": [2, 8.75, 0, 10.5], "texture": "#0"} + "north": {"uv": [10, 1.5, 12, 2], "texture": "#1"}, + "east": {"uv": [6.5, 5.25, 8.25, 5.75], "texture": "#1"}, + "south": {"uv": [10, 2, 12, 2.5], "texture": "#1"}, + "west": {"uv": [2.75, 10.25, 4.5, 10.75], "texture": "#1"}, + "up": {"uv": [10.25, 9.5, 8.25, 7.75], "texture": "#1"}, + "down": {"uv": [2, 8.75, 0, 10.5], "texture": "#1"} } }, { @@ -40,25 +40,25 @@ "to": [8.5, 11, 7], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 7, 7]}, "faces": { - "north": {"uv": [9, 10.25, 9.25, 11.25], "texture": "#0"}, - "east": {"uv": [9.25, 10.25, 9.5, 11.25], "texture": "#0"}, - "south": {"uv": [9.5, 10.25, 9.75, 11.25], "texture": "#0"}, - "west": {"uv": [10.25, 9.5, 10.5, 10.5], "texture": "#0"}, - "up": {"uv": [6.25, 3, 6, 2.75], "texture": "#0"}, - "down": {"uv": [6.25, 3, 6, 3.25], "texture": "#0"} + "north": {"uv": [9, 10.25, 9.25, 11.25], "texture": "#1"}, + "east": {"uv": [9.25, 10.25, 9.5, 11.25], "texture": "#1"}, + "south": {"uv": [9.5, 10.25, 9.75, 11.25], "texture": "#1"}, + "west": {"uv": [10.25, 9.5, 10.5, 10.5], "texture": "#1"}, + "up": {"uv": [6.25, 3, 6, 2.75], "texture": "#1"}, + "down": {"uv": [6.25, 3, 6, 3.25], "texture": "#1"} } }, { - "from": [7.5, 7, 4], + "from": [7.5, 8, 4], "to": [8.5, 11, 5], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 7, 7]}, "faces": { - "north": {"uv": [9.75, 10.25, 10, 11.25], "texture": "#0"}, - "east": {"uv": [10, 10.25, 10.25, 11.25], "texture": "#0"}, - "south": {"uv": [0, 10.5, 0.25, 11.5], "texture": "#0"}, - "west": {"uv": [0.25, 10.5, 0.5, 11.5], "texture": "#0"}, - "up": {"uv": [6.5, 3, 6.25, 2.75], "texture": "#0"}, - "down": {"uv": [6.5, 3, 6.25, 3.25], "texture": "#0"} + "north": {"uv": [0.5, 10.5, 0.75, 11.25], "texture": "#1"}, + "east": {"uv": [0.75, 10.5, 1, 11.25], "texture": "#1"}, + "south": {"uv": [1, 10.5, 1.25, 11.25], "texture": "#1"}, + "west": {"uv": [1.25, 10.5, 1.5, 11.25], "texture": "#1"}, + "up": {"uv": [6.5, 3, 6.25, 2.75], "texture": "#1"}, + "down": {"uv": [6.5, 3, 6.25, 3.25], "texture": "#1"} } }, { @@ -66,12 +66,12 @@ "to": [6.5, 10, 11], "rotation": {"angle": 0, "axis": "y", "origin": [5.5, 7, 7]}, "faces": { - "north": {"uv": [7.5, 10.5, 7.75, 10.75], "texture": "#0"}, - "east": {"uv": [6.5, 5.75, 8.25, 6], "texture": "#0"}, - "south": {"uv": [7.75, 10.5, 8, 10.75], "texture": "#0"}, - "west": {"uv": [9, 5, 10.75, 5.25], "texture": "#0"}, - "up": {"uv": [6.75, 12, 6.5, 10.25], "texture": "#0"}, - "down": {"uv": [7, 10.25, 6.75, 12], "texture": "#0"} + "north": {"uv": [7.5, 10.5, 7.75, 10.75], "texture": "#1"}, + "east": {"uv": [6.5, 5.75, 8.25, 6], "texture": "#1"}, + "south": {"uv": [7.75, 10.5, 8, 10.75], "texture": "#1"}, + "west": {"uv": [9, 5, 10.75, 5.25], "texture": "#1"}, + "up": {"uv": [6.75, 12, 6.5, 10.25], "texture": "#1"}, + "down": {"uv": [7, 10.25, 6.75, 12], "texture": "#1"} } }, { @@ -79,25 +79,25 @@ "to": [10.5, 10, 11], "rotation": {"angle": 0, "axis": "y", "origin": [9.5, 7, 7]}, "faces": { - "north": {"uv": [10.5, 7.75, 10.75, 8], "texture": "#0"}, - "east": {"uv": [10, 2.5, 11.75, 2.75], "texture": "#0"}, - "south": {"uv": [8, 10.5, 8.25, 10.75], "texture": "#0"}, - "west": {"uv": [7, 10.25, 8.75, 10.5], "texture": "#0"}, - "up": {"uv": [10.5, 9.5, 10.25, 7.75], "texture": "#0"}, - "down": {"uv": [9, 10.25, 8.75, 12], "texture": "#0"} + "north": {"uv": [10.5, 7.75, 10.75, 8], "texture": "#1"}, + "east": {"uv": [10, 2.5, 11.75, 2.75], "texture": "#1"}, + "south": {"uv": [8, 10.5, 8.25, 10.75], "texture": "#1"}, + "west": {"uv": [7, 10.25, 8.75, 10.5], "texture": "#1"}, + "up": {"uv": [10.5, 9.5, 10.25, 7.75], "texture": "#1"}, + "down": {"uv": [9, 10.25, 8.75, 12], "texture": "#1"} } }, { - "from": [7.5, 7, 10], + "from": [7.5, 8, 10], "to": [8.5, 11, 11], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 7, 11]}, "faces": { - "north": {"uv": [0.5, 10.5, 0.75, 11.5], "texture": "#0"}, - "east": {"uv": [0.75, 10.5, 1, 11.5], "texture": "#0"}, - "south": {"uv": [1, 10.5, 1.25, 11.5], "texture": "#0"}, - "west": {"uv": [1.25, 10.5, 1.5, 11.5], "texture": "#0"}, - "up": {"uv": [10.75, 8.25, 10.5, 8], "texture": "#0"}, - "down": {"uv": [8.5, 10.5, 8.25, 10.75], "texture": "#0"} + "north": {"uv": [1.5, 10.5, 1.75, 11.25], "texture": "#1"}, + "east": {"uv": [1.75, 10.5, 2, 11.25], "texture": "#1"}, + "south": {"uv": [7, 10.5, 7.25, 11.25], "texture": "#1"}, + "west": {"uv": [7.25, 10.5, 7.5, 11.25], "texture": "#1"}, + "up": {"uv": [10.75, 8.25, 10.5, 8], "texture": "#1"}, + "down": {"uv": [8.5, 10.5, 8.25, 10.75], "texture": "#1"} } }, { @@ -105,12 +105,12 @@ "to": [8.5, 11, 9], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 7, 11]}, "faces": { - "north": {"uv": [1.5, 10.5, 1.75, 11.5], "texture": "#0"}, - "east": {"uv": [1.75, 10.5, 2, 11.5], "texture": "#0"}, - "south": {"uv": [7, 10.5, 7.25, 11.5], "texture": "#0"}, - "west": {"uv": [7.25, 10.5, 7.5, 11.5], "texture": "#0"}, - "up": {"uv": [10.75, 8.5, 10.5, 8.25], "texture": "#0"}, - "down": {"uv": [8.75, 10.5, 8.5, 10.75], "texture": "#0"} + "north": {"uv": [9.75, 10.25, 10, 11.25], "texture": "#1"}, + "east": {"uv": [10, 10.25, 10.25, 11.25], "texture": "#1"}, + "south": {"uv": [0, 10.5, 0.25, 11.5], "texture": "#1"}, + "west": {"uv": [0.25, 10.5, 0.5, 11.5], "texture": "#1"}, + "up": {"uv": [10.75, 8.5, 10.5, 8.25], "texture": "#1"}, + "down": {"uv": [8.75, 10.5, 8.5, 10.75], "texture": "#1"} } }, { @@ -118,12 +118,12 @@ "to": [7.5, 9.5, 5], "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 6.5, 7]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [10.75, 8.75, 10.5, 8.5], "texture": "#0"}, - "down": {"uv": [10.75, 8.75, 10.5, 9], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [10.75, 8.75, 10.5, 8.5], "texture": "#1"}, + "down": {"uv": [10.75, 8.75, 10.5, 9], "texture": "#1"} } }, { @@ -131,12 +131,12 @@ "to": [7.5, 9.5, 7], "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 6.5, 7]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [10.75, 9.25, 10.5, 9], "texture": "#0"}, - "down": {"uv": [10.75, 9.25, 10.5, 9.5], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [10.75, 9.25, 10.5, 9], "texture": "#1"}, + "down": {"uv": [10.75, 9.25, 10.5, 9.5], "texture": "#1"} } }, { @@ -144,12 +144,12 @@ "to": [7.5, 9.5, 9], "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 6.5, 11]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [10.75, 9.75, 10.5, 9.5], "texture": "#0"}, - "down": {"uv": [10.75, 9.75, 10.5, 10], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [10.75, 9.75, 10.5, 9.5], "texture": "#1"}, + "down": {"uv": [10.75, 9.75, 10.5, 10], "texture": "#1"} } }, { @@ -157,12 +157,12 @@ "to": [7.5, 9.5, 11], "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 6.5, 11]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [10.75, 10.25, 10.5, 10], "texture": "#0"}, - "down": {"uv": [10.5, 10.5, 10.25, 10.75], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [10.75, 10.25, 10.5, 10], "texture": "#1"}, + "down": {"uv": [10.5, 10.5, 10.25, 10.75], "texture": "#1"} } }, { @@ -170,12 +170,12 @@ "to": [9.5, 9.5, 5], "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 6.5, 7]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [10.75, 10.5, 10.5, 10.25], "texture": "#0"}, - "down": {"uv": [10.75, 10.5, 10.5, 10.75], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [10.75, 10.5, 10.5, 10.25], "texture": "#1"}, + "down": {"uv": [10.75, 10.5, 10.5, 10.75], "texture": "#1"} } }, { @@ -183,12 +183,12 @@ "to": [9.5, 9.5, 7], "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 6.5, 7]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [3, 11, 2.75, 10.75], "texture": "#0"}, - "down": {"uv": [3.25, 10.75, 3, 11], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [3, 11, 2.75, 10.75], "texture": "#1"}, + "down": {"uv": [3.25, 10.75, 3, 11], "texture": "#1"} } }, { @@ -196,12 +196,12 @@ "to": [9.5, 9.5, 9], "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 6.5, 11]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [3.5, 11, 3.25, 10.75], "texture": "#0"}, - "down": {"uv": [3.75, 10.75, 3.5, 11], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [3.5, 11, 3.25, 10.75], "texture": "#1"}, + "down": {"uv": [3.75, 10.75, 3.5, 11], "texture": "#1"} } }, { @@ -209,12 +209,12 @@ "to": [9.5, 9.5, 11], "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 6.5, 11]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [4, 11, 3.75, 10.75], "texture": "#0"}, - "down": {"uv": [4.25, 10.75, 4, 11], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [4, 11, 3.75, 10.75], "texture": "#1"}, + "down": {"uv": [4.25, 10.75, 4, 11], "texture": "#1"} } }, { @@ -222,12 +222,12 @@ "to": [14, 11, 14], "rotation": {"angle": 0, "axis": "y", "origin": [17, 3, 7]}, "faces": { - "north": {"uv": [5.5, 10.25, 5.75, 13], "texture": "#0"}, - "east": {"uv": [0, 3.25, 3.25, 6], "texture": "#0"}, - "south": {"uv": [5.75, 10.25, 6, 13], "texture": "#0"}, - "west": {"uv": [3.25, 3.25, 6.5, 6], "texture": "#0"}, - "up": {"uv": [4.75, 13.5, 4.5, 10.25], "texture": "#0"}, - "down": {"uv": [5, 10.25, 4.75, 13.5], "texture": "#0"} + "north": {"uv": [5.5, 10.25, 5.75, 13], "texture": "#1"}, + "east": {"uv": [0, 3.25, 3.25, 6], "texture": "#1"}, + "south": {"uv": [5.75, 10.25, 6, 13], "texture": "#1"}, + "west": {"uv": [3.25, 3.25, 6.5, 6], "texture": "#1"}, + "up": {"uv": [4.75, 13.5, 4.5, 10.25], "texture": "#1"}, + "down": {"uv": [5, 10.25, 4.75, 13.5], "texture": "#1"} } }, { @@ -235,12 +235,12 @@ "to": [13, 11, 14], "rotation": {"angle": 0, "axis": "y", "origin": [9, 3, 7]}, "faces": { - "north": {"uv": [3.25, 6, 5.75, 8.75], "texture": "#0"}, - "east": {"uv": [9.25, 0, 10, 2.75], "texture": "#0"}, - "south": {"uv": [5.75, 6, 8.25, 8.75], "texture": "#0"}, - "west": {"uv": [2, 9.5, 2.75, 12.25], "texture": "#0"}, - "up": {"uv": [12.5, 0.75, 10, 0], "texture": "#0"}, - "down": {"uv": [12.5, 0.75, 10, 1.5], "texture": "#0"} + "north": {"uv": [3.25, 6, 5.75, 8.75], "texture": "#1"}, + "east": {"uv": [9.25, 0, 10, 2.75], "texture": "#1"}, + "south": {"uv": [5.75, 6, 8.25, 8.75], "texture": "#1"}, + "west": {"uv": [2, 9.5, 2.75, 12.25], "texture": "#1"}, + "up": {"uv": [12.5, 0.75, 10, 0], "texture": "#1"}, + "down": {"uv": [12.5, 0.75, 10, 1.5], "texture": "#1"} } }, { @@ -248,12 +248,12 @@ "to": [3, 11, 14], "rotation": {"angle": 0, "axis": "y", "origin": [7, 3, 7]}, "faces": { - "north": {"uv": [6, 10.25, 6.25, 13], "texture": "#0"}, - "east": {"uv": [0, 6, 3.25, 8.75], "texture": "#0"}, - "south": {"uv": [6.25, 10.25, 6.5, 13], "texture": "#0"}, - "west": {"uv": [6, 0, 9.25, 2.75], "texture": "#0"}, - "up": {"uv": [5.25, 13.5, 5, 10.25], "texture": "#0"}, - "down": {"uv": [5.5, 10.25, 5.25, 13.5], "texture": "#0"} + "north": {"uv": [6, 10.25, 6.25, 13], "texture": "#1"}, + "east": {"uv": [0, 6, 3.25, 8.75], "texture": "#1"}, + "south": {"uv": [6.25, 10.25, 6.5, 13], "texture": "#1"}, + "west": {"uv": [6, 0, 9.25, 2.75], "texture": "#1"}, + "up": {"uv": [5.25, 13.5, 5, 10.25], "texture": "#1"}, + "down": {"uv": [5.5, 10.25, 5.25, 13.5], "texture": "#1"} } }, { @@ -261,12 +261,12 @@ "to": [14, 14, 14], "rotation": {"angle": 0, "axis": "y", "origin": [7, 11, 7]}, "faces": { - "north": {"uv": [5.25, 8.75, 8.25, 9.5], "texture": "#0"}, - "east": {"uv": [2, 8.75, 5.25, 9.5], "texture": "#0"}, - "south": {"uv": [9, 3.5, 12, 4.25], "texture": "#0"}, - "west": {"uv": [9, 2.75, 12.25, 3.5], "texture": "#0"}, - "up": {"uv": [3, 3.25, 0, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 3, 3.25], "texture": "#0"} + "north": {"uv": [5.25, 8.75, 8.25, 9.5], "texture": "#1"}, + "east": {"uv": [2, 8.75, 5.25, 9.5], "texture": "#1"}, + "south": {"uv": [9, 3.5, 12, 4.25], "texture": "#1"}, + "west": {"uv": [9, 2.75, 12.25, 3.5], "texture": "#1"}, + "up": {"uv": [3, 3.25, 0, 0], "texture": "#1"}, + "down": {"uv": [6, 0, 3, 3.25], "texture": "#1"} } } ], @@ -305,6 +305,7 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] } diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/fossil_grinder.json b/common/src/main/resources/assets/jurassicrevived/models/block/fossil_grinder.json index 72b4a57..ac15ff0 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/fossil_grinder.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/fossil_grinder.json @@ -5,7 +5,7 @@ "render_type": "translucent", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/fossil_grinder", + "1": "jurassicrevived:block/fossil_grinder", "particle": "jurassicrevived:block/fossil_grinder" }, "elements": [ @@ -14,38 +14,25 @@ "to": [15, 2, 15], "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, "faces": { - "north": {"uv": [7, 6.25, 10.5, 6.75], "texture": "#0"}, - "east": {"uv": [7, 6.75, 10.5, 7.25], "texture": "#0"}, - "south": {"uv": [7, 7.25, 10.5, 7.75], "texture": "#0"}, - "west": {"uv": [7, 7.75, 10.5, 8.25], "texture": "#0"}, - "up": {"uv": [3.5, 3.5, 0, 0], "texture": "#0"}, - "down": {"uv": [3.5, 3.5, 0, 7], "texture": "#0"} + "north": {"uv": [7, 6.5, 10.5, 7], "texture": "#1"}, + "east": {"uv": [0, 8.25, 3.5, 8.75], "texture": "#1"}, + "south": {"uv": [3.5, 8.25, 7, 8.75], "texture": "#1"}, + "west": {"uv": [7, 8.25, 10.5, 8.75], "texture": "#1"}, + "up": {"uv": [3.5, 3.5, 0, 0], "texture": "#1"}, + "down": {"uv": [3.5, 3.5, 0, 7], "texture": "#1"} } }, { - "from": [6.6, 3.1, 3], - "to": [8.6, 3.1, 11], + "from": [3.6, 3.1, 3], + "to": [11.6, 3.1, 11], "rotation": {"angle": -45, "axis": "y", "origin": [6.6, 3.1, 8]}, "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 0], "texture": "#0"}, - "up": {"uv": [9.5, 2, 9, 0], "texture": "#0"}, - "down": {"uv": [9.5, 8.25, 9, 10.25], "texture": "#0"} - } - }, - { - "from": [3.6, 3.1, 6], - "to": [11.6, 3.1, 8], - "rotation": {"angle": -45, "axis": "y", "origin": [6.6, 3.1, 8]}, - "faces": { - "north": {"uv": [0, 0, 2, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "up": {"uv": [11, 2.5, 9, 2], "texture": "#0"}, - "down": {"uv": [11, 2.5, 9, 3], "texture": "#0"} + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "up": {"uv": [8, 2, 6, 0], "texture": "#1"}, + "down": {"uv": [8, 2, 6, 4], "texture": "#1"} } }, { @@ -53,12 +40,12 @@ "to": [8.6, 4, 8], "rotation": {"angle": -45, "axis": "y", "origin": [6.6, 2, 8]}, "faces": { - "north": {"uv": [6, 3.75, 6.5, 4.25], "texture": "#0"}, - "east": {"uv": [6.5, 3.75, 7, 4.25], "texture": "#0"}, - "south": {"uv": [10.25, 10, 10.75, 10.5], "texture": "#0"}, - "west": {"uv": [10.5, 3.75, 11, 4.25], "texture": "#0"}, - "up": {"uv": [11, 4.75, 10.5, 4.25], "texture": "#0"}, - "down": {"uv": [5.5, 10.5, 5, 11], "texture": "#0"} + "north": {"uv": [6, 4, 6.5, 4.5], "texture": "#1"}, + "east": {"uv": [6.5, 4, 7, 4.5], "texture": "#1"}, + "south": {"uv": [10, 6, 10.5, 6.5], "texture": "#1"}, + "west": {"uv": [8.5, 10.25, 9, 10.75], "texture": "#1"}, + "up": {"uv": [9.5, 10.75, 9, 10.25], "texture": "#1"}, + "down": {"uv": [10, 10.25, 9.5, 10.75], "texture": "#1"} } }, { @@ -66,77 +53,77 @@ "to": [15, 7, 15], "rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 7]}, "faces": { - "north": {"uv": [3.5, 4.5, 7, 5.75], "texture": "#0"}, - "east": {"uv": [5, 9.25, 5.5, 10.5], "texture": "#0"}, - "south": {"uv": [3.5, 5.75, 7, 7], "texture": "#0"}, - "west": {"uv": [5.5, 9.25, 6, 10.5], "texture": "#0"}, - "up": {"uv": [3.5, 8.75, 0, 8.25], "texture": "#0"}, - "down": {"uv": [7, 8.25, 3.5, 8.75], "texture": "#0"} + "north": {"uv": [3.5, 4.5, 7, 5.75], "texture": "#1"}, + "east": {"uv": [10, 1.75, 10.5, 3], "texture": "#1"}, + "south": {"uv": [3.5, 5.75, 7, 7], "texture": "#1"}, + "west": {"uv": [3, 10, 3.5, 11.25], "texture": "#1"}, + "up": {"uv": [12, 7.5, 8.5, 7], "texture": "#1"}, + "down": {"uv": [12, 7.5, 8.5, 8], "texture": "#1"} } }, { - "from": [13, 7.9, -2.1], - "to": [15, 8.9, 9.9], - "rotation": {"angle": 45, "axis": "x", "origin": [7, 0.9, 9.9]}, + "from": [12.975, 7.975, -2.325], + "to": [15.025, 9.025, 9.725], + "rotation": {"angle": 45, "axis": "x", "origin": [7, 1, 9.7]}, "faces": { - "north": {"uv": [6, 4.25, 6.5, 4.5], "texture": "#0"}, - "east": {"uv": [8.5, 6, 11.5, 6.25], "texture": "#0"}, - "south": {"uv": [6.5, 4.25, 7, 4.5], "texture": "#0"}, - "west": {"uv": [9, 3, 12, 3.25], "texture": "#0"}, - "up": {"uv": [7.5, 11.25, 7, 8.25], "texture": "#0"}, - "down": {"uv": [8, 8.25, 7.5, 11.25], "texture": "#0"} + "north": {"uv": [10, 10.25, 10.5, 10.5], "texture": "#1"}, + "east": {"uv": [8, 3.75, 11, 4], "texture": "#1"}, + "south": {"uv": [10.5, 0, 11, 0.25], "texture": "#1"}, + "west": {"uv": [8.5, 8, 11.5, 8.25], "texture": "#1"}, + "up": {"uv": [0.5, 11.75, 0, 8.75], "texture": "#1"}, + "down": {"uv": [1, 8.75, 0.5, 11.75], "texture": "#1"} } }, { - "from": [3, 7.9, 8.9], - "to": [13, 8.9, 9.9], - "rotation": {"angle": 45, "axis": "x", "origin": [7, 0.9, 9.9]}, + "from": [3, 8, 8.7], + "to": [13, 9, 9.7], + "rotation": {"angle": 45, "axis": "x", "origin": [7, 1, 9.7]}, "faces": { - "north": {"uv": [9.5, 0, 12, 0.25], "texture": "#0"}, - "east": {"uv": [9.25, 10.25, 9.5, 10.5], "texture": "#0"}, - "south": {"uv": [9.5, 0.25, 12, 0.5], "texture": "#0"}, - "west": {"uv": [6.5, 10.5, 6.75, 10.75], "texture": "#0"}, - "up": {"uv": [12, 0.75, 9.5, 0.5], "texture": "#0"}, - "down": {"uv": [12, 0.75, 9.5, 1], "texture": "#0"} + "north": {"uv": [10, 3, 12.5, 3.25], "texture": "#1"}, + "east": {"uv": [10.5, 1.75, 10.75, 2], "texture": "#1"}, + "south": {"uv": [10, 3.25, 12.5, 3.5], "texture": "#1"}, + "west": {"uv": [10.5, 2, 10.75, 2.25], "texture": "#1"}, + "up": {"uv": [12.5, 3.75, 10, 3.5], "texture": "#1"}, + "down": {"uv": [12.5, 4, 10, 4.25], "texture": "#1"} } }, { - "from": [3, 8.4, -0.1], - "to": [13, 8.4, 8.9], - "rotation": {"angle": 45, "axis": "x", "origin": [7, 0.9, 9.9]}, + "from": [3, 8.5, -0.3], + "to": [13, 8.5, 8.7], + "rotation": {"angle": 45, "axis": "x", "origin": [7, 1, 9.7]}, "faces": { - "north": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 2.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 2.25, 0], "texture": "#0"}, - "up": {"uv": [6, 2.25, 3.5, 0], "texture": "#0"}, - "down": {"uv": [6, 2.25, 3.5, 4.5], "texture": "#0"} + "north": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 2.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 2.25, 0], "texture": "#1"}, + "up": {"uv": [6, 2.25, 3.5, 0], "texture": "#1"}, + "down": {"uv": [6, 2.25, 3.5, 4.5], "texture": "#1"} } }, { - "from": [3, 7.9, -2.1], - "to": [13, 8.9, -0.1], - "rotation": {"angle": 45, "axis": "x", "origin": [7, 0.9, 9.9]}, + "from": [3, 8, -2.3], + "to": [13, 9, -0.3], + "rotation": {"angle": 45, "axis": "x", "origin": [7, 1, 9.7]}, "faces": { - "north": {"uv": [9.5, 1, 12, 1.25], "texture": "#0"}, - "east": {"uv": [10.5, 4.75, 11, 5], "texture": "#0"}, - "south": {"uv": [9.5, 1.25, 12, 1.5], "texture": "#0"}, - "west": {"uv": [5.5, 10.5, 6, 10.75], "texture": "#0"}, - "up": {"uv": [11, 5.5, 8.5, 5], "texture": "#0"}, - "down": {"uv": [11, 5.5, 8.5, 6], "texture": "#0"} + "north": {"uv": [10, 4.25, 12.5, 4.5], "texture": "#1"}, + "east": {"uv": [10.5, 0.25, 11, 0.5], "texture": "#1"}, + "south": {"uv": [10, 4.5, 12.5, 4.75], "texture": "#1"}, + "west": {"uv": [10.5, 0.5, 11, 0.75], "texture": "#1"}, + "up": {"uv": [10.5, 9.25, 8, 8.75], "texture": "#1"}, + "down": {"uv": [10.5, 9.25, 8, 9.75], "texture": "#1"} } }, { - "from": [1, 7.9, -2.1], - "to": [3, 8.9, 9.9], - "rotation": {"angle": 45, "axis": "x", "origin": [7, 0.9, 9.9]}, + "from": [0.975, 7.975, -2.325], + "to": [3.025, 9.025, 9.725], + "rotation": {"angle": 45, "axis": "x", "origin": [7, 1, 9.7]}, "faces": { - "north": {"uv": [6, 10.5, 6.5, 10.75], "texture": "#0"}, - "east": {"uv": [9, 3.25, 12, 3.5], "texture": "#0"}, - "south": {"uv": [10.5, 6.25, 11, 6.5], "texture": "#0"}, - "west": {"uv": [9, 3.5, 12, 3.75], "texture": "#0"}, - "up": {"uv": [8.5, 11.25, 8, 8.25], "texture": "#0"}, - "down": {"uv": [9, 8.25, 8.5, 11.25], "texture": "#0"} + "north": {"uv": [10.5, 0.75, 11, 1], "texture": "#1"}, + "east": {"uv": [10, 1.25, 13, 1.5], "texture": "#1"}, + "south": {"uv": [10.5, 1, 11, 1.25], "texture": "#1"}, + "west": {"uv": [10, 1.5, 13, 1.75], "texture": "#1"}, + "up": {"uv": [1.5, 11.75, 1, 8.75], "texture": "#1"}, + "down": {"uv": [2, 8.75, 1.5, 11.75], "texture": "#1"} } }, { @@ -144,64 +131,12 @@ "to": [3, 7, 13], "rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 7]}, "faces": { - "north": {"uv": [6, 9.25, 6.5, 10.5], "texture": "#0"}, - "east": {"uv": [6, 0, 9, 1.25], "texture": "#0"}, - "south": {"uv": [6.5, 9.25, 7, 10.5], "texture": "#0"}, - "west": {"uv": [6, 1.25, 9, 2.5], "texture": "#0"}, - "up": {"uv": [0.5, 11.75, 0, 8.75], "texture": "#0"}, - "down": {"uv": [1, 8.75, 0.5, 11.75], "texture": "#0"} - } - }, - { - "from": [0, 0, 12], - "to": [1, 7, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 7]}, - "faces": { - "north": {"uv": [3.5, 9.75, 3.75, 11.5], "texture": "#0"}, - "east": {"uv": [3.75, 9.75, 4, 11.5], "texture": "#0"}, - "south": {"uv": [4, 9.75, 4.25, 11.5], "texture": "#0"}, - "west": {"uv": [4.25, 9.75, 4.5, 11.5], "texture": "#0"}, - "up": {"uv": [10.75, 6.75, 10.5, 6.5], "texture": "#0"}, - "down": {"uv": [7, 10.5, 6.75, 10.75], "texture": "#0"} - } - }, - { - "from": [0, 0, 6], - "to": [1, 7, 7], - "rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 1]}, - "faces": { - "north": {"uv": [4.5, 9.75, 4.75, 11.5], "texture": "#0"}, - "east": {"uv": [4.75, 9.75, 5, 11.5], "texture": "#0"}, - "south": {"uv": [10, 8.25, 10.25, 10], "texture": "#0"}, - "west": {"uv": [10, 10, 10.25, 11.75], "texture": "#0"}, - "up": {"uv": [10.75, 7, 10.5, 6.75], "texture": "#0"}, - "down": {"uv": [10.75, 7, 10.5, 7.25], "texture": "#0"} - } - }, - { - "from": [0.5, 5, 7], - "to": [1.5, 6, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 2, 2]}, - "faces": { - "north": {"uv": [10.5, 7.25, 10.75, 7.5], "texture": "#0"}, - "east": {"uv": [9.5, 1.5, 10.75, 1.75], "texture": "#0"}, - "south": {"uv": [10.5, 7.5, 10.75, 7.75], "texture": "#0"}, - "west": {"uv": [9.5, 1.75, 10.75, 2], "texture": "#0"}, - "up": {"uv": [10.25, 5, 10, 3.75], "texture": "#0"}, - "down": {"uv": [10.5, 3.75, 10.25, 5], "texture": "#0"} - } - }, - { - "from": [0.5, 1, 7], - "to": [1.5, 2, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [7.5, -2, 2]}, - "faces": { - "north": {"uv": [10.5, 7.75, 10.75, 8], "texture": "#0"}, - "east": {"uv": [10.25, 8.25, 11.5, 8.5], "texture": "#0"}, - "south": {"uv": [10.5, 8, 10.75, 8.25], "texture": "#0"}, - "west": {"uv": [10.25, 8.5, 11.5, 8.75], "texture": "#0"}, - "up": {"uv": [10.5, 10, 10.25, 8.75], "texture": "#0"}, - "down": {"uv": [9.25, 10.25, 9, 11.5], "texture": "#0"} + "north": {"uv": [3.5, 10, 4, 11.25], "texture": "#1"}, + "east": {"uv": [0, 7, 3, 8.25], "texture": "#1"}, + "south": {"uv": [4, 10, 4.5, 11.25], "texture": "#1"}, + "west": {"uv": [3, 7, 6, 8.25], "texture": "#1"}, + "up": {"uv": [2.5, 11.75, 2, 8.75], "texture": "#1"}, + "down": {"uv": [3, 8.75, 2.5, 11.75], "texture": "#1"} } }, { @@ -209,25 +144,25 @@ "to": [13, 7, 3], "rotation": {"angle": 0, "axis": "y", "origin": [9, 2, 7]}, "faces": { - "north": {"uv": [3, 7, 5.5, 8.25], "texture": "#0"}, - "east": {"uv": [9.5, 3.75, 10, 5], "texture": "#0"}, - "south": {"uv": [7, 3.75, 9.5, 5], "texture": "#0"}, - "west": {"uv": [9.5, 8.25, 10, 9.5], "texture": "#0"}, - "up": {"uv": [4.5, 9.25, 2, 8.75], "texture": "#0"}, - "down": {"uv": [7, 8.75, 4.5, 9.25], "texture": "#0"} + "north": {"uv": [6, 7, 8.5, 8.25], "texture": "#1"}, + "east": {"uv": [4.5, 10, 5, 11.25], "texture": "#1"}, + "south": {"uv": [8, 0, 10.5, 1.25], "texture": "#1"}, + "west": {"uv": [10, 4.75, 10.5, 6], "texture": "#1"}, + "up": {"uv": [5.5, 10, 3, 9.5], "texture": "#1"}, + "down": {"uv": [10.5, 9.75, 8, 10.25], "texture": "#1"} } }, { - "from": [5, 1.3, -1.6], - "to": [11, 6.3, 0.4], + "from": [4, 1.3, -1.6], + "to": [12, 6.3, 1.4], "rotation": {"angle": 22.5, "axis": "x", "origin": [9, 1.3, 4.4]}, "faces": { - "north": {"uv": [7, 5, 8.5, 6.25], "texture": "#0"}, - "east": {"uv": [9.5, 9.5, 10, 10.75], "texture": "#0"}, - "south": {"uv": [5.5, 7, 7, 8.25], "texture": "#0"}, - "west": {"uv": [2, 9.75, 2.5, 11], "texture": "#0"}, - "up": {"uv": [3.5, 9.75, 2, 9.25], "texture": "#0"}, - "down": {"uv": [5, 9.25, 3.5, 9.75], "texture": "#0"} + "north": {"uv": [8, 1.25, 10, 2.5], "texture": "#1"}, + "east": {"uv": [5.5, 9.5, 6.25, 10.75], "texture": "#1"}, + "south": {"uv": [8, 2.5, 10, 3.75], "texture": "#1"}, + "west": {"uv": [6.25, 9.5, 7, 10.75], "texture": "#1"}, + "up": {"uv": [5, 9.5, 3, 8.75], "texture": "#1"}, + "down": {"uv": [7, 8.75, 5, 9.5], "texture": "#1"} } }, { @@ -235,12 +170,12 @@ "to": [15, 7, 13], "rotation": {"angle": 0, "axis": "y", "origin": [19, 2, 7]}, "faces": { - "north": {"uv": [2.5, 9.75, 3, 11], "texture": "#0"}, - "east": {"uv": [6, 2.5, 9, 3.75], "texture": "#0"}, - "south": {"uv": [3, 9.75, 3.5, 11], "texture": "#0"}, - "west": {"uv": [0, 7, 3, 8.25], "texture": "#0"}, - "up": {"uv": [1.5, 11.75, 1, 8.75], "texture": "#0"}, - "down": {"uv": [2, 8.75, 1.5, 11.75], "texture": "#0"} + "north": {"uv": [5, 10, 5.5, 11.25], "texture": "#1"}, + "east": {"uv": [7, 4, 10, 5.25], "texture": "#1"}, + "south": {"uv": [8, 10.25, 8.5, 11.5], "texture": "#1"}, + "west": {"uv": [7, 5.25, 10, 6.5], "texture": "#1"}, + "up": {"uv": [7.5, 11.75, 7, 8.75], "texture": "#1"}, + "down": {"uv": [8, 8.75, 7.5, 11.75], "texture": "#1"} } } ], @@ -279,8 +214,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/generator.json b/common/src/main/resources/assets/jurassicrevived/models/block/generator.json index 4ae9ddb..0f38d05 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/generator.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/generator.json @@ -5,164 +5,255 @@ "render_type": "cutout", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/generator", + "1": "jurassicrevived:block/generator", "particle": "jurassicrevived:block/generator" }, "elements": [ { - "from": [2, 0, 2], - "to": [14, 8, 14], + "from": [2, 0, 4], + "to": [14, 9, 14], "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, "faces": { - "north": {"uv": [3, 0, 6, 2], "texture": "#0"}, - "east": {"uv": [3, 2, 6, 4], "texture": "#0"}, - "south": {"uv": [3, 4, 6, 6], "texture": "#0"}, - "west": {"uv": [0, 6, 3, 8], "texture": "#0"}, - "up": {"uv": [3, 3, 0, 0], "texture": "#0"}, - "down": {"uv": [3, 3, 0, 6], "texture": "#0"} + "north": {"uv": [3, 0, 6, 2.25], "texture": "#1"}, + "east": {"uv": [3, 4.5, 5.5, 6.75], "texture": "#1"}, + "south": {"uv": [3, 2.25, 6, 4.5], "texture": "#1"}, + "west": {"uv": [0, 5, 2.5, 7.25], "texture": "#1"}, + "up": {"uv": [3, 2.5, 0, 0], "texture": "#1"}, + "down": {"uv": [3, 2.5, 0, 5], "texture": "#1"} } }, { - "from": [-1.425, 9.7, 3.5], - "to": [6.575, 17.7, 12.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.575, 7.7, -0.5]}, + "from": [2, 0, 2], + "to": [14, 2, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -9]}, "faces": { - "north": {"uv": [5, 6.25, 7, 8.25], "texture": "#0"}, - "east": {"uv": [6, 0, 8.25, 2], "texture": "#0"}, - "south": {"uv": [7, 6.25, 9, 8.25], "texture": "#0"}, - "west": {"uv": [6, 2, 8.25, 4], "texture": "#0"}, - "up": {"uv": [5, 8.25, 3, 6], "texture": "#0"}, - "down": {"uv": [8, 4, 6, 6.25], "texture": "#0"} + "north": {"uv": [7.75, 4.25, 10.75, 4.75], "texture": "#1"}, + "east": {"uv": [11.25, 10.5, 11.75, 11], "texture": "#1"}, + "south": {"uv": [7.75, 4.75, 10.75, 5.25], "texture": "#1"}, + "west": {"uv": [11.25, 11, 11.75, 11.5], "texture": "#1"}, + "up": {"uv": [10.75, 5.75, 7.75, 5.25], "texture": "#1"}, + "down": {"uv": [10.75, 5.75, 7.75, 6.25], "texture": "#1"} + } + }, + { + "from": [6, -4.175, 2.825], + "to": [10, -2.175, 4.825], + "rotation": {"angle": -22.5, "axis": "x", "origin": [0, -4.175, -8.175]}, + "faces": { + "north": {"uv": [10.5, 7.25, 11.5, 7.75], "texture": "#1"}, + "east": {"uv": [11.5, 2, 12, 2.5], "texture": "#1"}, + "south": {"uv": [10.75, 1.5, 11.75, 2], "texture": "#1"}, + "west": {"uv": [11.5, 2.5, 12, 3], "texture": "#1"}, + "up": {"uv": [11.75, 5.5, 10.75, 5], "texture": "#1"}, + "down": {"uv": [11.75, 5.5, 10.75, 6], "texture": "#1"} + } + }, + { + "from": [2, 2, 2], + "to": [5, 6, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, -9]}, + "faces": { + "north": {"uv": [10.5, 6.25, 11.25, 7.25], "texture": "#1"}, + "east": {"uv": [10.75, 10.5, 11.25, 11.5], "texture": "#1"}, + "south": {"uv": [7.5, 10.5, 8.25, 11.5], "texture": "#1"}, + "west": {"uv": [11, 2, 11.5, 3], "texture": "#1"}, + "up": {"uv": [12, 1.5, 11.25, 1], "texture": "#1"}, + "down": {"uv": [3.25, 11.25, 2.5, 11.75], "texture": "#1"} + } + }, + { + "from": [11, 2, 2], + "to": [14, 6, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 2, -9]}, + "faces": { + "north": {"uv": [8.25, 10.5, 9, 11.5], "texture": "#1"}, + "east": {"uv": [11.25, 0, 11.75, 1], "texture": "#1"}, + "south": {"uv": [9, 10.5, 9.75, 11.5], "texture": "#1"}, + "west": {"uv": [2, 11.25, 2.5, 12.25], "texture": "#1"}, + "up": {"uv": [4, 11.75, 3.25, 11.25], "texture": "#1"}, + "down": {"uv": [12, 3.5, 11.25, 4], "texture": "#1"} + } + }, + { + "from": [2, 6, 2], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 7, -9]}, + "faces": { + "north": {"uv": [7.5, 6.5, 10.5, 7.25], "texture": "#1"}, + "east": {"uv": [4, 11.25, 4.5, 12], "texture": "#1"}, + "south": {"uv": [7.5, 7.25, 10.5, 8], "texture": "#1"}, + "west": {"uv": [11.25, 4, 11.75, 4.75], "texture": "#1"}, + "up": {"uv": [11, 2.5, 8, 2], "texture": "#1"}, + "down": {"uv": [11, 2.5, 8, 3], "texture": "#1"} + } + }, + { + "from": [-1.425, 10.7, 3.5], + "to": [6.575, 18.7, 12.5], + "rotation": {"angle": -45, "axis": "z", "origin": [6.575, 8.7, -0.5]}, + "faces": { + "north": {"uv": [2.5, 6.75, 4.5, 8.75], "texture": "#1"}, + "east": {"uv": [5.5, 4.5, 7.75, 6.5], "texture": "#1"}, + "south": {"uv": [0, 7.25, 2, 9.25], "texture": "#1"}, + "west": {"uv": [6, 0, 8.25, 2], "texture": "#1"}, + "up": {"uv": [8, 4.25, 6, 2], "texture": "#1"}, + "down": {"uv": [7.5, 6.5, 5.5, 8.75], "texture": "#1"} } }, { "from": [1, 0, 1], - "to": [3, 9, 3], + "to": [3, 10, 3], "rotation": {"angle": 0, "axis": "y", "origin": [-1, 0, 0]}, "faces": { - "north": {"uv": [4, 8.75, 4.5, 11], "texture": "#0"}, - "east": {"uv": [4.5, 8.75, 5, 11], "texture": "#0"}, - "south": {"uv": [5, 8.75, 5.5, 11], "texture": "#0"}, - "west": {"uv": [5.5, 8.75, 6, 11], "texture": "#0"}, - "up": {"uv": [9.25, 2.5, 8.75, 2], "texture": "#0"}, - "down": {"uv": [9.75, 2, 9.25, 2.5], "texture": "#0"} + "north": {"uv": [4.5, 6.75, 5, 9.25], "texture": "#1"}, + "east": {"uv": [5, 6.75, 5.5, 9.25], "texture": "#1"}, + "south": {"uv": [2, 7.25, 2.5, 9.75], "texture": "#1"}, + "west": {"uv": [7.5, 8, 8, 10.5], "texture": "#1"}, + "up": {"uv": [12, 6.5, 11.5, 6], "texture": "#1"}, + "down": {"uv": [12, 6.5, 11.5, 7], "texture": "#1"} } }, { "from": [1, 0, 13], - "to": [3, 9, 15], + "to": [3, 10, 15], "rotation": {"angle": 0, "axis": "y", "origin": [-1, 0, 12]}, "faces": { - "north": {"uv": [6, 8.75, 6.5, 11], "texture": "#0"}, - "east": {"uv": [6.5, 8.75, 7, 11], "texture": "#0"}, - "south": {"uv": [7, 8.75, 7.5, 11], "texture": "#0"}, - "west": {"uv": [7.5, 8.75, 8, 11], "texture": "#0"}, - "up": {"uv": [10.25, 2.5, 9.75, 2], "texture": "#0"}, - "down": {"uv": [10.5, 6, 10, 6.5], "texture": "#0"} + "north": {"uv": [8, 8, 8.5, 10.5], "texture": "#1"}, + "east": {"uv": [8.5, 8, 9, 10.5], "texture": "#1"}, + "south": {"uv": [2.5, 8.75, 3, 11.25], "texture": "#1"}, + "west": {"uv": [3, 8.75, 3.5, 11.25], "texture": "#1"}, + "up": {"uv": [12, 7.5, 11.5, 7], "texture": "#1"}, + "down": {"uv": [7.75, 11.5, 7.25, 12], "texture": "#1"} } }, { "from": [13, 0, 13], - "to": [15, 9, 15], + "to": [15, 10, 15], "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 12]}, "faces": { - "north": {"uv": [8, 8.75, 8.5, 11], "texture": "#0"}, - "east": {"uv": [8.5, 8.75, 9, 11], "texture": "#0"}, - "south": {"uv": [0, 9, 0.5, 11.25], "texture": "#0"}, - "west": {"uv": [0.5, 9, 1, 11.25], "texture": "#0"}, - "up": {"uv": [10.5, 7, 10, 6.5], "texture": "#0"}, - "down": {"uv": [10.5, 7, 10, 7.5], "texture": "#0"} + "north": {"uv": [3.5, 8.75, 4, 11.25], "texture": "#1"}, + "east": {"uv": [4, 8.75, 4.5, 11.25], "texture": "#1"}, + "south": {"uv": [5.5, 8.75, 6, 11.25], "texture": "#1"}, + "west": {"uv": [6, 8.75, 6.5, 11.25], "texture": "#1"}, + "up": {"uv": [12, 8, 11.5, 7.5], "texture": "#1"}, + "down": {"uv": [8.25, 11.5, 7.75, 12], "texture": "#1"} } }, { - "from": [13, 7, 3], - "to": [15, 9, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [11, 8, 12]}, + "from": [1.2, 8.5, 3], + "to": [3.2, 10.5, 13], + "rotation": {"angle": -22.5, "axis": "z", "origin": [-0.8, 9.5, 12]}, "faces": { - "north": {"uv": [10, 7.5, 10.5, 8], "texture": "#0"}, - "east": {"uv": [0, 8, 2.5, 8.5], "texture": "#0"}, - "south": {"uv": [10, 8, 10.5, 8.5], "texture": "#0"}, - "west": {"uv": [8, 4, 10.5, 4.5], "texture": "#0"}, - "up": {"uv": [3, 10.5, 2.5, 8], "texture": "#0"}, - "down": {"uv": [8.75, 0, 8.25, 2.5], "texture": "#0"} + "north": {"uv": [8.25, 11.5, 8.75, 12], "texture": "#1"}, + "east": {"uv": [8, 3, 10.5, 3.5], "texture": "#1"}, + "south": {"uv": [8.75, 11.5, 9.25, 12], "texture": "#1"}, + "west": {"uv": [8, 3.5, 10.5, 4], "texture": "#1"}, + "up": {"uv": [7, 11.25, 6.5, 8.75], "texture": "#1"}, + "down": {"uv": [7.5, 8.75, 7, 11.25], "texture": "#1"} } }, { - "from": [1, 7, 3], - "to": [3, 9, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [-1, 8, 12]}, + "from": [12.8, 8.5, 3], + "to": [14.8, 10.5, 13], + "rotation": {"angle": 22.5, "axis": "z", "origin": [16.8, 9.5, 12]}, "faces": { - "north": {"uv": [10, 8.5, 10.5, 9], "texture": "#0"}, - "east": {"uv": [8, 4.5, 10.5, 5], "texture": "#0"}, - "south": {"uv": [10, 9, 10.5, 9.5], "texture": "#0"}, - "west": {"uv": [8, 5, 10.5, 5.5], "texture": "#0"}, - "up": {"uv": [3.5, 10.75, 3, 8.25], "texture": "#0"}, - "down": {"uv": [4, 8.25, 3.5, 10.75], "texture": "#0"} + "north": {"uv": [9.25, 11.5, 9.75, 12], "texture": "#1"}, + "east": {"uv": [8.25, 0, 10.75, 0.5], "texture": "#1"}, + "south": {"uv": [10.75, 11.5, 11.25, 12], "texture": "#1"}, + "west": {"uv": [8.25, 0.5, 10.75, 1], "texture": "#1"}, + "up": {"uv": [9.5, 10.5, 9, 8], "texture": "#1"}, + "down": {"uv": [0.5, 9.25, 0, 11.75], "texture": "#1"} } }, { - "from": [4, 8, 9], - "to": [6, 14, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [2, 9, 14]}, + "from": [4, 9, 9], + "to": [6, 15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 10, 14]}, "faces": { - "north": {"uv": [8.75, 0.5, 9.25, 2], "texture": "#0"}, - "east": {"uv": [9, 8.25, 9.5, 9.75], "texture": "#0"}, - "south": {"uv": [9.25, 0.5, 9.75, 2], "texture": "#0"}, - "west": {"uv": [9.5, 6, 10, 7.5], "texture": "#0"}, - "up": {"uv": [10.5, 10, 10, 9.5], "texture": "#0"}, - "down": {"uv": [10.5, 10, 10, 10.5], "texture": "#0"} + "north": {"uv": [2.5, 5, 3, 6.5], "texture": "#1"}, + "east": {"uv": [5, 9.25, 5.5, 10.75], "texture": "#1"}, + "south": {"uv": [2, 9.75, 2.5, 11.25], "texture": "#1"}, + "west": {"uv": [9.75, 10.5, 10.25, 12], "texture": "#1"}, + "up": {"uv": [11.75, 12, 11.25, 11.5], "texture": "#1"}, + "down": {"uv": [0.5, 11.75, 0, 12.25], "texture": "#1"} } }, { - "from": [10, 8, 5], - "to": [12, 14, 7], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 10]}, + "from": [10, 9, 5], + "to": [12, 15, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 10]}, "faces": { - "north": {"uv": [9.5, 7.5, 10, 9], "texture": "#0"}, - "east": {"uv": [9.5, 9, 10, 10.5], "texture": "#0"}, - "south": {"uv": [9.75, 0.5, 10.25, 2], "texture": "#0"}, - "west": {"uv": [9, 9.75, 9.5, 11.25], "texture": "#0"}, - "up": {"uv": [10.75, 1, 10.25, 0.5], "texture": "#0"}, - "down": {"uv": [10.75, 1, 10.25, 1.5], "texture": "#0"} + "north": {"uv": [10.25, 10.5, 10.75, 12], "texture": "#1"}, + "east": {"uv": [10.75, 0, 11.25, 1.5], "texture": "#1"}, + "south": {"uv": [10.75, 3.5, 11.25, 5], "texture": "#1"}, + "west": {"uv": [5, 10.75, 5.5, 12.25], "texture": "#1"}, + "up": {"uv": [12.25, 0.5, 11.75, 0], "texture": "#1"}, + "down": {"uv": [1, 11.75, 0.5, 12.25], "texture": "#1"} + } + }, + { + "from": [9, 17, 10], + "to": [10, 23, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 18, 15]}, + "faces": { + "north": {"uv": [5.5, 11.25, 5.75, 12.75], "texture": "#1"}, + "east": {"uv": [5.75, 11.25, 6, 12.75], "texture": "#1"}, + "south": {"uv": [6, 11.25, 6.25, 12.75], "texture": "#1"}, + "west": {"uv": [6.25, 11.25, 6.5, 12.75], "texture": "#1"}, + "up": {"uv": [6.25, 4.5, 6, 4.25], "texture": "#1"}, + "down": {"uv": [6.5, 4.25, 6.25, 4.5], "texture": "#1"} + } + }, + { + "from": [7.8, 17, 8.8], + "to": [8.8, 22, 9.8], + "rotation": {"angle": 0, "axis": "y", "origin": [5.8, 18, 13.8]}, + "faces": { + "north": {"uv": [11.25, 6, 11.5, 7.25], "texture": "#1"}, + "east": {"uv": [6.5, 11.25, 6.75, 12.5], "texture": "#1"}, + "south": {"uv": [6.75, 11.25, 7, 12.5], "texture": "#1"}, + "west": {"uv": [7, 11.25, 7.25, 12.5], "texture": "#1"}, + "up": {"uv": [2.75, 6.75, 2.5, 6.5], "texture": "#1"}, + "down": {"uv": [3, 6.5, 2.75, 6.75], "texture": "#1"} } }, { "from": [13, 0, 1], - "to": [15, 9, 3], + "to": [15, 10, 3], "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 0]}, "faces": { - "north": {"uv": [1, 9, 1.5, 11.25], "texture": "#0"}, - "east": {"uv": [1.5, 9, 2, 11.25], "texture": "#0"}, - "south": {"uv": [2, 9, 2.5, 11.25], "texture": "#0"}, - "west": {"uv": [9, 6, 9.5, 8.25], "texture": "#0"}, - "up": {"uv": [10.75, 2, 10.25, 1.5], "texture": "#0"}, - "down": {"uv": [10.75, 2, 10.25, 2.5], "texture": "#0"} + "north": {"uv": [0.5, 9.25, 1, 11.75], "texture": "#1"}, + "east": {"uv": [1, 9.25, 1.5, 11.75], "texture": "#1"}, + "south": {"uv": [1.5, 9.25, 2, 11.75], "texture": "#1"}, + "west": {"uv": [4.5, 9.25, 5, 11.75], "texture": "#1"}, + "up": {"uv": [12.25, 1, 11.75, 0.5], "texture": "#1"}, + "down": {"uv": [1.5, 11.75, 1, 12.25], "texture": "#1"} } }, { - "from": [3, 7, 1], - "to": [13, 9, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 0]}, + "from": [3, 8.7, -2], + "to": [13, 10.7, 0], + "rotation": {"angle": 22.5, "axis": "x", "origin": [9, 1.7, -3]}, "faces": { - "north": {"uv": [8, 5.5, 10.5, 6], "texture": "#0"}, - "east": {"uv": [2.5, 10.5, 3, 11], "texture": "#0"}, - "south": {"uv": [8.25, 2.5, 10.75, 3], "texture": "#0"}, - "west": {"uv": [10.5, 4, 11, 4.5], "texture": "#0"}, - "up": {"uv": [10.75, 3.5, 8.25, 3], "texture": "#0"}, - "down": {"uv": [10.75, 3.5, 8.25, 4], "texture": "#0"} + "north": {"uv": [8.25, 1, 10.75, 1.5], "texture": "#1"}, + "east": {"uv": [1.5, 11.75, 2, 12.25], "texture": "#1"}, + "south": {"uv": [8.25, 1.5, 10.75, 2], "texture": "#1"}, + "west": {"uv": [11.75, 1.5, 12.25, 2], "texture": "#1"}, + "up": {"uv": [12, 8.5, 9.5, 8], "texture": "#1"}, + "down": {"uv": [12, 8.5, 9.5, 9], "texture": "#1"} } }, { - "from": [3, 7, 13], - "to": [13, 9, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 12]}, + "from": [3, 8.7, 16], + "to": [13, 10.7, 18], + "rotation": {"angle": -22.5, "axis": "x", "origin": [9, 1.7, 19]}, "faces": { - "north": {"uv": [4, 8.25, 6.5, 8.75], "texture": "#0"}, - "east": {"uv": [10.5, 4.5, 11, 5], "texture": "#0"}, - "south": {"uv": [6.5, 8.25, 9, 8.75], "texture": "#0"}, - "west": {"uv": [10.5, 5, 11, 5.5], "texture": "#0"}, - "up": {"uv": [2.5, 9, 0, 8.5], "texture": "#0"}, - "down": {"uv": [11.25, 0, 8.75, 0.5], "texture": "#0"} + "north": {"uv": [9.5, 9, 12, 9.5], "texture": "#1"}, + "east": {"uv": [2.5, 11.75, 3, 12.25], "texture": "#1"}, + "south": {"uv": [9.5, 9.5, 12, 10], "texture": "#1"}, + "west": {"uv": [3, 11.75, 3.5, 12.25], "texture": "#1"}, + "up": {"uv": [12, 10.5, 9.5, 10], "texture": "#1"}, + "down": {"uv": [13, 3, 10.5, 3.5], "texture": "#1"} } } ], @@ -201,8 +292,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/generator_lit.json b/common/src/main/resources/assets/jurassicrevived/models/block/generator_lit.json old mode 100755 new mode 100644 index 4ae9ddb..0f38d05 --- a/common/src/main/resources/assets/jurassicrevived/models/block/generator_lit.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/generator_lit.json @@ -5,164 +5,255 @@ "render_type": "cutout", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/generator", + "1": "jurassicrevived:block/generator", "particle": "jurassicrevived:block/generator" }, "elements": [ { - "from": [2, 0, 2], - "to": [14, 8, 14], + "from": [2, 0, 4], + "to": [14, 9, 14], "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, "faces": { - "north": {"uv": [3, 0, 6, 2], "texture": "#0"}, - "east": {"uv": [3, 2, 6, 4], "texture": "#0"}, - "south": {"uv": [3, 4, 6, 6], "texture": "#0"}, - "west": {"uv": [0, 6, 3, 8], "texture": "#0"}, - "up": {"uv": [3, 3, 0, 0], "texture": "#0"}, - "down": {"uv": [3, 3, 0, 6], "texture": "#0"} + "north": {"uv": [3, 0, 6, 2.25], "texture": "#1"}, + "east": {"uv": [3, 4.5, 5.5, 6.75], "texture": "#1"}, + "south": {"uv": [3, 2.25, 6, 4.5], "texture": "#1"}, + "west": {"uv": [0, 5, 2.5, 7.25], "texture": "#1"}, + "up": {"uv": [3, 2.5, 0, 0], "texture": "#1"}, + "down": {"uv": [3, 2.5, 0, 5], "texture": "#1"} } }, { - "from": [-1.425, 9.7, 3.5], - "to": [6.575, 17.7, 12.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.575, 7.7, -0.5]}, + "from": [2, 0, 2], + "to": [14, 2, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -9]}, "faces": { - "north": {"uv": [5, 6.25, 7, 8.25], "texture": "#0"}, - "east": {"uv": [6, 0, 8.25, 2], "texture": "#0"}, - "south": {"uv": [7, 6.25, 9, 8.25], "texture": "#0"}, - "west": {"uv": [6, 2, 8.25, 4], "texture": "#0"}, - "up": {"uv": [5, 8.25, 3, 6], "texture": "#0"}, - "down": {"uv": [8, 4, 6, 6.25], "texture": "#0"} + "north": {"uv": [7.75, 4.25, 10.75, 4.75], "texture": "#1"}, + "east": {"uv": [11.25, 10.5, 11.75, 11], "texture": "#1"}, + "south": {"uv": [7.75, 4.75, 10.75, 5.25], "texture": "#1"}, + "west": {"uv": [11.25, 11, 11.75, 11.5], "texture": "#1"}, + "up": {"uv": [10.75, 5.75, 7.75, 5.25], "texture": "#1"}, + "down": {"uv": [10.75, 5.75, 7.75, 6.25], "texture": "#1"} + } + }, + { + "from": [6, -4.175, 2.825], + "to": [10, -2.175, 4.825], + "rotation": {"angle": -22.5, "axis": "x", "origin": [0, -4.175, -8.175]}, + "faces": { + "north": {"uv": [10.5, 7.25, 11.5, 7.75], "texture": "#1"}, + "east": {"uv": [11.5, 2, 12, 2.5], "texture": "#1"}, + "south": {"uv": [10.75, 1.5, 11.75, 2], "texture": "#1"}, + "west": {"uv": [11.5, 2.5, 12, 3], "texture": "#1"}, + "up": {"uv": [11.75, 5.5, 10.75, 5], "texture": "#1"}, + "down": {"uv": [11.75, 5.5, 10.75, 6], "texture": "#1"} + } + }, + { + "from": [2, 2, 2], + "to": [5, 6, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, -9]}, + "faces": { + "north": {"uv": [10.5, 6.25, 11.25, 7.25], "texture": "#1"}, + "east": {"uv": [10.75, 10.5, 11.25, 11.5], "texture": "#1"}, + "south": {"uv": [7.5, 10.5, 8.25, 11.5], "texture": "#1"}, + "west": {"uv": [11, 2, 11.5, 3], "texture": "#1"}, + "up": {"uv": [12, 1.5, 11.25, 1], "texture": "#1"}, + "down": {"uv": [3.25, 11.25, 2.5, 11.75], "texture": "#1"} + } + }, + { + "from": [11, 2, 2], + "to": [14, 6, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 2, -9]}, + "faces": { + "north": {"uv": [8.25, 10.5, 9, 11.5], "texture": "#1"}, + "east": {"uv": [11.25, 0, 11.75, 1], "texture": "#1"}, + "south": {"uv": [9, 10.5, 9.75, 11.5], "texture": "#1"}, + "west": {"uv": [2, 11.25, 2.5, 12.25], "texture": "#1"}, + "up": {"uv": [4, 11.75, 3.25, 11.25], "texture": "#1"}, + "down": {"uv": [12, 3.5, 11.25, 4], "texture": "#1"} + } + }, + { + "from": [2, 6, 2], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 7, -9]}, + "faces": { + "north": {"uv": [7.5, 6.5, 10.5, 7.25], "texture": "#1"}, + "east": {"uv": [4, 11.25, 4.5, 12], "texture": "#1"}, + "south": {"uv": [7.5, 7.25, 10.5, 8], "texture": "#1"}, + "west": {"uv": [11.25, 4, 11.75, 4.75], "texture": "#1"}, + "up": {"uv": [11, 2.5, 8, 2], "texture": "#1"}, + "down": {"uv": [11, 2.5, 8, 3], "texture": "#1"} + } + }, + { + "from": [-1.425, 10.7, 3.5], + "to": [6.575, 18.7, 12.5], + "rotation": {"angle": -45, "axis": "z", "origin": [6.575, 8.7, -0.5]}, + "faces": { + "north": {"uv": [2.5, 6.75, 4.5, 8.75], "texture": "#1"}, + "east": {"uv": [5.5, 4.5, 7.75, 6.5], "texture": "#1"}, + "south": {"uv": [0, 7.25, 2, 9.25], "texture": "#1"}, + "west": {"uv": [6, 0, 8.25, 2], "texture": "#1"}, + "up": {"uv": [8, 4.25, 6, 2], "texture": "#1"}, + "down": {"uv": [7.5, 6.5, 5.5, 8.75], "texture": "#1"} } }, { "from": [1, 0, 1], - "to": [3, 9, 3], + "to": [3, 10, 3], "rotation": {"angle": 0, "axis": "y", "origin": [-1, 0, 0]}, "faces": { - "north": {"uv": [4, 8.75, 4.5, 11], "texture": "#0"}, - "east": {"uv": [4.5, 8.75, 5, 11], "texture": "#0"}, - "south": {"uv": [5, 8.75, 5.5, 11], "texture": "#0"}, - "west": {"uv": [5.5, 8.75, 6, 11], "texture": "#0"}, - "up": {"uv": [9.25, 2.5, 8.75, 2], "texture": "#0"}, - "down": {"uv": [9.75, 2, 9.25, 2.5], "texture": "#0"} + "north": {"uv": [4.5, 6.75, 5, 9.25], "texture": "#1"}, + "east": {"uv": [5, 6.75, 5.5, 9.25], "texture": "#1"}, + "south": {"uv": [2, 7.25, 2.5, 9.75], "texture": "#1"}, + "west": {"uv": [7.5, 8, 8, 10.5], "texture": "#1"}, + "up": {"uv": [12, 6.5, 11.5, 6], "texture": "#1"}, + "down": {"uv": [12, 6.5, 11.5, 7], "texture": "#1"} } }, { "from": [1, 0, 13], - "to": [3, 9, 15], + "to": [3, 10, 15], "rotation": {"angle": 0, "axis": "y", "origin": [-1, 0, 12]}, "faces": { - "north": {"uv": [6, 8.75, 6.5, 11], "texture": "#0"}, - "east": {"uv": [6.5, 8.75, 7, 11], "texture": "#0"}, - "south": {"uv": [7, 8.75, 7.5, 11], "texture": "#0"}, - "west": {"uv": [7.5, 8.75, 8, 11], "texture": "#0"}, - "up": {"uv": [10.25, 2.5, 9.75, 2], "texture": "#0"}, - "down": {"uv": [10.5, 6, 10, 6.5], "texture": "#0"} + "north": {"uv": [8, 8, 8.5, 10.5], "texture": "#1"}, + "east": {"uv": [8.5, 8, 9, 10.5], "texture": "#1"}, + "south": {"uv": [2.5, 8.75, 3, 11.25], "texture": "#1"}, + "west": {"uv": [3, 8.75, 3.5, 11.25], "texture": "#1"}, + "up": {"uv": [12, 7.5, 11.5, 7], "texture": "#1"}, + "down": {"uv": [7.75, 11.5, 7.25, 12], "texture": "#1"} } }, { "from": [13, 0, 13], - "to": [15, 9, 15], + "to": [15, 10, 15], "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 12]}, "faces": { - "north": {"uv": [8, 8.75, 8.5, 11], "texture": "#0"}, - "east": {"uv": [8.5, 8.75, 9, 11], "texture": "#0"}, - "south": {"uv": [0, 9, 0.5, 11.25], "texture": "#0"}, - "west": {"uv": [0.5, 9, 1, 11.25], "texture": "#0"}, - "up": {"uv": [10.5, 7, 10, 6.5], "texture": "#0"}, - "down": {"uv": [10.5, 7, 10, 7.5], "texture": "#0"} + "north": {"uv": [3.5, 8.75, 4, 11.25], "texture": "#1"}, + "east": {"uv": [4, 8.75, 4.5, 11.25], "texture": "#1"}, + "south": {"uv": [5.5, 8.75, 6, 11.25], "texture": "#1"}, + "west": {"uv": [6, 8.75, 6.5, 11.25], "texture": "#1"}, + "up": {"uv": [12, 8, 11.5, 7.5], "texture": "#1"}, + "down": {"uv": [8.25, 11.5, 7.75, 12], "texture": "#1"} } }, { - "from": [13, 7, 3], - "to": [15, 9, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [11, 8, 12]}, + "from": [1.2, 8.5, 3], + "to": [3.2, 10.5, 13], + "rotation": {"angle": -22.5, "axis": "z", "origin": [-0.8, 9.5, 12]}, "faces": { - "north": {"uv": [10, 7.5, 10.5, 8], "texture": "#0"}, - "east": {"uv": [0, 8, 2.5, 8.5], "texture": "#0"}, - "south": {"uv": [10, 8, 10.5, 8.5], "texture": "#0"}, - "west": {"uv": [8, 4, 10.5, 4.5], "texture": "#0"}, - "up": {"uv": [3, 10.5, 2.5, 8], "texture": "#0"}, - "down": {"uv": [8.75, 0, 8.25, 2.5], "texture": "#0"} + "north": {"uv": [8.25, 11.5, 8.75, 12], "texture": "#1"}, + "east": {"uv": [8, 3, 10.5, 3.5], "texture": "#1"}, + "south": {"uv": [8.75, 11.5, 9.25, 12], "texture": "#1"}, + "west": {"uv": [8, 3.5, 10.5, 4], "texture": "#1"}, + "up": {"uv": [7, 11.25, 6.5, 8.75], "texture": "#1"}, + "down": {"uv": [7.5, 8.75, 7, 11.25], "texture": "#1"} } }, { - "from": [1, 7, 3], - "to": [3, 9, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [-1, 8, 12]}, + "from": [12.8, 8.5, 3], + "to": [14.8, 10.5, 13], + "rotation": {"angle": 22.5, "axis": "z", "origin": [16.8, 9.5, 12]}, "faces": { - "north": {"uv": [10, 8.5, 10.5, 9], "texture": "#0"}, - "east": {"uv": [8, 4.5, 10.5, 5], "texture": "#0"}, - "south": {"uv": [10, 9, 10.5, 9.5], "texture": "#0"}, - "west": {"uv": [8, 5, 10.5, 5.5], "texture": "#0"}, - "up": {"uv": [3.5, 10.75, 3, 8.25], "texture": "#0"}, - "down": {"uv": [4, 8.25, 3.5, 10.75], "texture": "#0"} + "north": {"uv": [9.25, 11.5, 9.75, 12], "texture": "#1"}, + "east": {"uv": [8.25, 0, 10.75, 0.5], "texture": "#1"}, + "south": {"uv": [10.75, 11.5, 11.25, 12], "texture": "#1"}, + "west": {"uv": [8.25, 0.5, 10.75, 1], "texture": "#1"}, + "up": {"uv": [9.5, 10.5, 9, 8], "texture": "#1"}, + "down": {"uv": [0.5, 9.25, 0, 11.75], "texture": "#1"} } }, { - "from": [4, 8, 9], - "to": [6, 14, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [2, 9, 14]}, + "from": [4, 9, 9], + "to": [6, 15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 10, 14]}, "faces": { - "north": {"uv": [8.75, 0.5, 9.25, 2], "texture": "#0"}, - "east": {"uv": [9, 8.25, 9.5, 9.75], "texture": "#0"}, - "south": {"uv": [9.25, 0.5, 9.75, 2], "texture": "#0"}, - "west": {"uv": [9.5, 6, 10, 7.5], "texture": "#0"}, - "up": {"uv": [10.5, 10, 10, 9.5], "texture": "#0"}, - "down": {"uv": [10.5, 10, 10, 10.5], "texture": "#0"} + "north": {"uv": [2.5, 5, 3, 6.5], "texture": "#1"}, + "east": {"uv": [5, 9.25, 5.5, 10.75], "texture": "#1"}, + "south": {"uv": [2, 9.75, 2.5, 11.25], "texture": "#1"}, + "west": {"uv": [9.75, 10.5, 10.25, 12], "texture": "#1"}, + "up": {"uv": [11.75, 12, 11.25, 11.5], "texture": "#1"}, + "down": {"uv": [0.5, 11.75, 0, 12.25], "texture": "#1"} } }, { - "from": [10, 8, 5], - "to": [12, 14, 7], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 10]}, + "from": [10, 9, 5], + "to": [12, 15, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 10]}, "faces": { - "north": {"uv": [9.5, 7.5, 10, 9], "texture": "#0"}, - "east": {"uv": [9.5, 9, 10, 10.5], "texture": "#0"}, - "south": {"uv": [9.75, 0.5, 10.25, 2], "texture": "#0"}, - "west": {"uv": [9, 9.75, 9.5, 11.25], "texture": "#0"}, - "up": {"uv": [10.75, 1, 10.25, 0.5], "texture": "#0"}, - "down": {"uv": [10.75, 1, 10.25, 1.5], "texture": "#0"} + "north": {"uv": [10.25, 10.5, 10.75, 12], "texture": "#1"}, + "east": {"uv": [10.75, 0, 11.25, 1.5], "texture": "#1"}, + "south": {"uv": [10.75, 3.5, 11.25, 5], "texture": "#1"}, + "west": {"uv": [5, 10.75, 5.5, 12.25], "texture": "#1"}, + "up": {"uv": [12.25, 0.5, 11.75, 0], "texture": "#1"}, + "down": {"uv": [1, 11.75, 0.5, 12.25], "texture": "#1"} + } + }, + { + "from": [9, 17, 10], + "to": [10, 23, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 18, 15]}, + "faces": { + "north": {"uv": [5.5, 11.25, 5.75, 12.75], "texture": "#1"}, + "east": {"uv": [5.75, 11.25, 6, 12.75], "texture": "#1"}, + "south": {"uv": [6, 11.25, 6.25, 12.75], "texture": "#1"}, + "west": {"uv": [6.25, 11.25, 6.5, 12.75], "texture": "#1"}, + "up": {"uv": [6.25, 4.5, 6, 4.25], "texture": "#1"}, + "down": {"uv": [6.5, 4.25, 6.25, 4.5], "texture": "#1"} + } + }, + { + "from": [7.8, 17, 8.8], + "to": [8.8, 22, 9.8], + "rotation": {"angle": 0, "axis": "y", "origin": [5.8, 18, 13.8]}, + "faces": { + "north": {"uv": [11.25, 6, 11.5, 7.25], "texture": "#1"}, + "east": {"uv": [6.5, 11.25, 6.75, 12.5], "texture": "#1"}, + "south": {"uv": [6.75, 11.25, 7, 12.5], "texture": "#1"}, + "west": {"uv": [7, 11.25, 7.25, 12.5], "texture": "#1"}, + "up": {"uv": [2.75, 6.75, 2.5, 6.5], "texture": "#1"}, + "down": {"uv": [3, 6.5, 2.75, 6.75], "texture": "#1"} } }, { "from": [13, 0, 1], - "to": [15, 9, 3], + "to": [15, 10, 3], "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 0]}, "faces": { - "north": {"uv": [1, 9, 1.5, 11.25], "texture": "#0"}, - "east": {"uv": [1.5, 9, 2, 11.25], "texture": "#0"}, - "south": {"uv": [2, 9, 2.5, 11.25], "texture": "#0"}, - "west": {"uv": [9, 6, 9.5, 8.25], "texture": "#0"}, - "up": {"uv": [10.75, 2, 10.25, 1.5], "texture": "#0"}, - "down": {"uv": [10.75, 2, 10.25, 2.5], "texture": "#0"} + "north": {"uv": [0.5, 9.25, 1, 11.75], "texture": "#1"}, + "east": {"uv": [1, 9.25, 1.5, 11.75], "texture": "#1"}, + "south": {"uv": [1.5, 9.25, 2, 11.75], "texture": "#1"}, + "west": {"uv": [4.5, 9.25, 5, 11.75], "texture": "#1"}, + "up": {"uv": [12.25, 1, 11.75, 0.5], "texture": "#1"}, + "down": {"uv": [1.5, 11.75, 1, 12.25], "texture": "#1"} } }, { - "from": [3, 7, 1], - "to": [13, 9, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 0]}, + "from": [3, 8.7, -2], + "to": [13, 10.7, 0], + "rotation": {"angle": 22.5, "axis": "x", "origin": [9, 1.7, -3]}, "faces": { - "north": {"uv": [8, 5.5, 10.5, 6], "texture": "#0"}, - "east": {"uv": [2.5, 10.5, 3, 11], "texture": "#0"}, - "south": {"uv": [8.25, 2.5, 10.75, 3], "texture": "#0"}, - "west": {"uv": [10.5, 4, 11, 4.5], "texture": "#0"}, - "up": {"uv": [10.75, 3.5, 8.25, 3], "texture": "#0"}, - "down": {"uv": [10.75, 3.5, 8.25, 4], "texture": "#0"} + "north": {"uv": [8.25, 1, 10.75, 1.5], "texture": "#1"}, + "east": {"uv": [1.5, 11.75, 2, 12.25], "texture": "#1"}, + "south": {"uv": [8.25, 1.5, 10.75, 2], "texture": "#1"}, + "west": {"uv": [11.75, 1.5, 12.25, 2], "texture": "#1"}, + "up": {"uv": [12, 8.5, 9.5, 8], "texture": "#1"}, + "down": {"uv": [12, 8.5, 9.5, 9], "texture": "#1"} } }, { - "from": [3, 7, 13], - "to": [13, 9, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 12]}, + "from": [3, 8.7, 16], + "to": [13, 10.7, 18], + "rotation": {"angle": -22.5, "axis": "x", "origin": [9, 1.7, 19]}, "faces": { - "north": {"uv": [4, 8.25, 6.5, 8.75], "texture": "#0"}, - "east": {"uv": [10.5, 4.5, 11, 5], "texture": "#0"}, - "south": {"uv": [6.5, 8.25, 9, 8.75], "texture": "#0"}, - "west": {"uv": [10.5, 5, 11, 5.5], "texture": "#0"}, - "up": {"uv": [2.5, 9, 0, 8.5], "texture": "#0"}, - "down": {"uv": [11.25, 0, 8.75, 0.5], "texture": "#0"} + "north": {"uv": [9.5, 9, 12, 9.5], "texture": "#1"}, + "east": {"uv": [2.5, 11.75, 3, 12.25], "texture": "#1"}, + "south": {"uv": [9.5, 9.5, 12, 10], "texture": "#1"}, + "west": {"uv": [3, 11.75, 3.5, 12.25], "texture": "#1"}, + "up": {"uv": [12, 10.5, 9.5, 10], "texture": "#1"}, + "down": {"uv": [13, 3, 10.5, 3.5], "texture": "#1"} } } ], @@ -201,8 +292,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/incubator.json b/common/src/main/resources/assets/jurassicrevived/models/block/incubator.json index 722ab31..9fba6aa 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/incubator.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/incubator.json @@ -2,7 +2,7 @@ "format_version": "1.9.0", "credit": "Made with Blockbench", "render_type": "cutout", - "texture_size": [128, 128], + "texture_size": [64, 64], "textures": { "1": "jurassicrevived:block/incubator", "particle": "jurassicrevived:block/incubator" @@ -12,223 +12,194 @@ "from": [0, 0, 0], "to": [16, 3, 16], "faces": { - "north": {"uv": [3.5, 5.625, 5.5, 6], "texture": "#1"}, - "east": {"uv": [6, 0, 8, 0.375], "texture": "#1"}, - "south": {"uv": [6, 0.375, 8, 0.75], "texture": "#1"}, - "west": {"uv": [6, 0.75, 8, 1.125], "texture": "#1"}, - "up": {"uv": [2, 2, 0, 0], "texture": "#1"}, - "down": {"uv": [2, 2, 0, 4], "texture": "#1"} + "north": {"uv": [11, 2.5, 15, 3.25], "texture": "#1"}, + "east": {"uv": [12, 11, 16, 11.75], "texture": "#1"}, + "south": {"uv": [12, 11.75, 16, 12.5], "texture": "#1"}, + "west": {"uv": [0, 12.5, 4, 13.25], "texture": "#1"}, + "up": {"uv": [4, 4, 0, 0], "texture": "#1"}, + "down": {"uv": [4, 4, 0, 8], "texture": "#1"} } }, { "from": [2, 3, 2], - "to": [14, 6, 14], + "to": [14, 8, 14], "rotation": {"angle": 0, "axis": "y", "origin": [0, 3, 0]}, "faces": { - "north": {"uv": [0, 5.75, 1.5, 6.125], "texture": "#1"}, - "east": {"uv": [6, 1.125, 7.5, 1.5], "texture": "#1"}, - "south": {"uv": [3.5, 6, 5, 6.375], "texture": "#1"}, - "west": {"uv": [6, 4.25, 7.5, 4.625], "texture": "#1"}, - "up": {"uv": [5.25, 3.25, 3.75, 1.75], "texture": "#1"}, - "down": {"uv": [5.25, 3.25, 3.75, 4.75], "texture": "#1"} + "north": {"uv": [11, 0, 14, 1.25], "texture": "#1"}, + "east": {"uv": [11, 1.25, 14, 2.5], "texture": "#1"}, + "south": {"uv": [11, 8.5, 14, 9.75], "texture": "#1"}, + "west": {"uv": [11, 9.75, 14, 11], "texture": "#1"}, + "up": {"uv": [10.5, 6.5, 7.5, 3.5], "texture": "#1"}, + "down": {"uv": [10.5, 6.5, 7.5, 9.5], "texture": "#1"} } }, { - "from": [1, 6, 1], - "to": [15, 11, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 0]}, + "from": [1, 8, 1], + "to": [15, 13, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 0]}, "faces": { - "north": {"uv": [5.25, 1.75, 7, 2.375], "texture": "#1"}, - "east": {"uv": [5.25, 2.375, 7, 3], "texture": "#1"}, - "south": {"uv": [5.25, 3, 7, 3.625], "texture": "#1"}, - "west": {"uv": [5.25, 3.625, 7, 4.25], "texture": "#1"}, - "up": {"uv": [3.75, 1.75, 2, 0], "texture": "#1"}, - "down": {"uv": [3.75, 1.75, 2, 3.5], "texture": "#1"} + "north": {"uv": [10.5, 3.5, 14, 4.75], "texture": "#1"}, + "east": {"uv": [10.5, 4.75, 14, 6], "texture": "#1"}, + "south": {"uv": [10.5, 6, 14, 7.25], "texture": "#1"}, + "west": {"uv": [10.5, 7.25, 14, 8.5], "texture": "#1"}, + "up": {"uv": [7.5, 3.5, 4, 0], "texture": "#1"}, + "down": {"uv": [7.5, 3.5, 4, 7], "texture": "#1"} } }, { - "from": [6, 6, 14.1], - "to": [10, 20, 16.1], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 9, 0.1]}, + "from": [4, 10, -1.6], + "to": [12, 14, 1.4], + "rotation": {"angle": 22.5, "axis": "x", "origin": [0, 9, -2.6]}, "faces": { - "north": {"uv": [5.5, 0, 6, 1.75], "texture": "#1"}, - "east": {"uv": [3, 6.875, 3.25, 8.625], "texture": "#1"}, - "south": {"uv": [5.5, 4.25, 6, 6], "texture": "#1"}, - "west": {"uv": [3.25, 6.875, 3.5, 8.625], "texture": "#1"}, - "up": {"uv": [6.5, 1.75, 6, 1.5], "texture": "#1"}, - "down": {"uv": [3.5, 6.125, 3, 6.375], "texture": "#1"} + "north": {"uv": [8, 11.5, 10, 12.5], "texture": "#1"}, + "east": {"uv": [14, 8.75, 14.75, 9.75], "texture": "#1"}, + "south": {"uv": [4, 12.5, 6, 13.5], "texture": "#1"}, + "west": {"uv": [14, 9.75, 14.75, 10.75], "texture": "#1"}, + "up": {"uv": [16, 1.75, 14, 1], "texture": "#1"}, + "down": {"uv": [16, 1.75, 14, 2.5], "texture": "#1"} } }, { - "from": [1, 16, 1], - "to": [15, 23, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "from": [5, 9.9, 4.5], + "to": [11, 11.9, 6.5], + "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 9.9, -1.5]}, "faces": { - "north": {"uv": [0, 4, 1.75, 4.875], "texture": "#1"}, - "east": {"uv": [3.75, 4.75, 5.5, 5.625], "texture": "#1"}, - "south": {"uv": [0, 4.875, 1.75, 5.75], "texture": "#1"}, - "west": {"uv": [1.75, 5.25, 3.5, 6.125], "texture": "#1"}, - "up": {"uv": [3.75, 5.25, 2, 3.5], "texture": "#1"}, - "down": {"uv": [5.5, 0, 3.75, 1.75], "texture": "#1"} + "north": {"uv": [2, 12, 3.5, 12.5], "texture": "#1"}, + "east": {"uv": [3.5, 10, 4, 10.5], "texture": "#1"}, + "south": {"uv": [14, 12.5, 15.5, 13], "texture": "#1"}, + "west": {"uv": [11.5, 14.5, 12, 15], "texture": "#1"}, + "up": {"uv": [15.5, 13.5, 14, 13], "texture": "#1"}, + "down": {"uv": [15.5, 13.5, 14, 14], "texture": "#1"} } }, { - "from": [6, 10.5, 6], - "to": [10, 11.5, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 10.5, 0]}, + "from": [5, 9.9, 9.5], + "to": [11, 11.9, 11.5], + "rotation": {"angle": 22.5, "axis": "x", "origin": [0, 9.9, 17.5]}, "faces": { - "north": {"uv": [6.5, 1.5, 7, 1.625], "texture": "#1"}, - "east": {"uv": [6.5, 1.625, 7, 1.75], "texture": "#1"}, - "south": {"uv": [7, 2, 7.5, 2.125], "texture": "#1"}, - "west": {"uv": [7, 2.125, 7.5, 2.25], "texture": "#1"}, - "up": {"uv": [4, 7.375, 3.5, 6.875], "texture": "#1"}, - "down": {"uv": [7.5, 1.5, 7, 2], "texture": "#1"} + "north": {"uv": [14, 14, 15.5, 14.5], "texture": "#1"}, + "east": {"uv": [12, 14.5, 12.5, 15], "texture": "#1"}, + "south": {"uv": [0, 14.25, 1.5, 14.75], "texture": "#1"}, + "west": {"uv": [12.5, 14.5, 13, 15], "texture": "#1"}, + "up": {"uv": [3, 14.75, 1.5, 14.25], "texture": "#1"}, + "down": {"uv": [4.5, 14.5, 3, 15], "texture": "#1"} } }, { - "name": "Egg1", - "from": [7.5, 11.4, 8.2], - "to": [9.5, 14.4, 10.2], - "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 12.4, 1.2]}, + "from": [6, 10, 4], + "to": [8, 12, 12], + "rotation": {"angle": 22.5, "axis": "z", "origin": [0, 8, 0]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [13, 14.5, 13.5, 15], "texture": "#1"}, + "east": {"uv": [0, 12, 2, 12.5], "texture": "#1"}, + "south": {"uv": [13.5, 14.5, 14, 15], "texture": "#1"}, + "west": {"uv": [14, 3.25, 16, 3.75], "texture": "#1"}, + "up": {"uv": [4, 10, 3.5, 8], "texture": "#1"}, + "down": {"uv": [6.5, 12.5, 6, 14.5], "texture": "#1"} } }, { - "name": "Egg2", - "from": [9.5, 10.5, 5.8], - "to": [11.5, 13.5, 7.8], - "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 11.5, -1.2]}, + "from": [8, 10, 4], + "to": [10, 12, 12], + "rotation": {"angle": -22.5, "axis": "z", "origin": [16, 8, 0]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [14, 14.5, 14.5, 15], "texture": "#1"}, + "east": {"uv": [14, 3.75, 16, 4.25], "texture": "#1"}, + "south": {"uv": [14.5, 14.5, 15, 15], "texture": "#1"}, + "west": {"uv": [14, 4.25, 16, 4.75], "texture": "#1"}, + "up": {"uv": [7, 14.5, 6.5, 12.5], "texture": "#1"}, + "down": {"uv": [14.5, 4.75, 14, 6.75], "texture": "#1"} } }, { - "name": "Egg3", - "from": [5, 10.9, 6.2], - "to": [7, 13.9, 8.2], - "rotation": {"angle": 0, "axis": "y", "origin": [-2, 11.9, -0.8]}, + "from": [6, 8, 14.1], + "to": [10, 22, 16.1], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11, 0.1]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [11, 11, 12, 14.5], "texture": "#1"}, + "east": {"uv": [10, 11.5, 10.5, 15], "texture": "#1"}, + "south": {"uv": [7, 11.5, 8, 15], "texture": "#1"}, + "west": {"uv": [10.5, 11.5, 11, 15], "texture": "#1"}, + "up": {"uv": [5.5, 15, 4.5, 14.5], "texture": "#1"}, + "down": {"uv": [15.5, 4.75, 14.5, 5.25], "texture": "#1"} + } + }, + { + "from": [1, 18, 1], + "to": [15, 26, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 18, 0]}, + "faces": { + "north": {"uv": [0, 8, 3.5, 10], "texture": "#1"}, + "east": {"uv": [7.5, 9.5, 11, 11.5], "texture": "#1"}, + "south": {"uv": [0, 10, 3.5, 12], "texture": "#1"}, + "west": {"uv": [3.5, 10.5, 7, 12.5], "texture": "#1"}, + "up": {"uv": [7.5, 10.5, 4, 7], "texture": "#1"}, + "down": {"uv": [11, 0, 7.5, 3.5], "texture": "#1"} + } + }, + { + "from": [6, 12.5, 6], + "to": [10, 13.5, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 12.5, 0]}, + "faces": { + "north": {"uv": [11, 3.25, 12, 3.5], "texture": "#1"}, + "east": {"uv": [12, 3.25, 13, 3.5], "texture": "#1"}, + "south": {"uv": [13, 3.25, 14, 3.5], "texture": "#1"}, + "west": {"uv": [14, 10.75, 15, 11], "texture": "#1"}, + "up": {"uv": [15, 7.75, 14, 6.75], "texture": "#1"}, + "down": {"uv": [15, 7.75, 14, 8.75], "texture": "#1"} } }, { "from": [4, 9.2, 9.8], "to": [12, 9.2, 13.8], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.2, -0.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.2, -0.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [10, 13.5, 8, 12.5], "texture": "#1"}, + "down": {"uv": [14, 12.5, 12, 13.5], "texture": "#1"} } }, { "from": [4, 9.2, 2.2], "to": [12, 9.2, 6.2], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.2, 16.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.2, 16.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} - } - }, - { - "from": [2, 12.025, 4], - "to": [6, 12.025, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [0, 11.025, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} - } - }, - { - "from": [10, 12.025, 4], - "to": [14, 12.025, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [16, 11.025, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} - } - }, - { - "from": [10, 12.325, 4], - "to": [14, 12.325, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [16, 11.325, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} + "up": {"uv": [2, 14.25, 0, 13.25], "texture": "#1"}, + "down": {"uv": [4, 13.25, 2, 14.25], "texture": "#1"} } }, { "from": [4, 9.5, 9.8], "to": [12, 9.5, 13.8], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.5, -0.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.5, -0.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} - } - }, - { - "from": [2, 12.325, 4], - "to": [6, 12.325, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [0, 11.325, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} + "up": {"uv": [6, 14.5, 4, 13.5], "texture": "#1"}, + "down": {"uv": [10, 13.5, 8, 14.5], "texture": "#1"} } }, { "from": [4, 9.5, 2.2], "to": [12, 9.5, 6.2], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.5, 16.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.5, 16.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [14, 14.5, 12, 13.5], "texture": "#1"}, + "down": {"uv": [16, 0, 14, 1], "texture": "#1"} } } ], @@ -267,8 +238,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/incubator_lit.json b/common/src/main/resources/assets/jurassicrevived/models/block/incubator_lit.json index 69542f5..b05f169 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/incubator_lit.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/incubator_lit.json @@ -2,7 +2,7 @@ "format_version": "1.9.0", "credit": "Made with Blockbench", "render_type": "cutout", - "texture_size": [128, 128], + "texture_size": [64, 64], "textures": { "1": "jurassicrevived:block/incubator", "particle": "jurassicrevived:block/incubator" @@ -12,223 +12,236 @@ "from": [0, 0, 0], "to": [16, 3, 16], "faces": { - "north": {"uv": [3.5, 5.625, 5.5, 6], "texture": "#1"}, - "east": {"uv": [6, 0, 8, 0.375], "texture": "#1"}, - "south": {"uv": [6, 0.375, 8, 0.75], "texture": "#1"}, - "west": {"uv": [6, 0.75, 8, 1.125], "texture": "#1"}, - "up": {"uv": [2, 2, 0, 0], "texture": "#1"}, - "down": {"uv": [2, 2, 0, 4], "texture": "#1"} + "north": {"uv": [11, 2.5, 15, 3.25], "texture": "#1"}, + "east": {"uv": [12, 11, 16, 11.75], "texture": "#1"}, + "south": {"uv": [12, 11.75, 16, 12.5], "texture": "#1"}, + "west": {"uv": [0, 12.5, 4, 13.25], "texture": "#1"}, + "up": {"uv": [4, 4, 0, 0], "texture": "#1"}, + "down": {"uv": [4, 4, 0, 8], "texture": "#1"} } }, { "from": [2, 3, 2], - "to": [14, 6, 14], + "to": [14, 8, 14], "rotation": {"angle": 0, "axis": "y", "origin": [0, 3, 0]}, "faces": { - "north": {"uv": [0, 5.75, 1.5, 6.125], "texture": "#1"}, - "east": {"uv": [6, 1.125, 7.5, 1.5], "texture": "#1"}, - "south": {"uv": [3.5, 6, 5, 6.375], "texture": "#1"}, - "west": {"uv": [6, 4.25, 7.5, 4.625], "texture": "#1"}, - "up": {"uv": [5.25, 3.25, 3.75, 1.75], "texture": "#1"}, - "down": {"uv": [5.25, 3.25, 3.75, 4.75], "texture": "#1"} + "north": {"uv": [11, 0, 14, 1.25], "texture": "#1"}, + "east": {"uv": [11, 1.25, 14, 2.5], "texture": "#1"}, + "south": {"uv": [11, 8.5, 14, 9.75], "texture": "#1"}, + "west": {"uv": [11, 9.75, 14, 11], "texture": "#1"}, + "up": {"uv": [10.5, 6.5, 7.5, 3.5], "texture": "#1"}, + "down": {"uv": [10.5, 6.5, 7.5, 9.5], "texture": "#1"} } }, { - "from": [1, 6, 1], - "to": [15, 11, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 0]}, + "from": [1, 8, 1], + "to": [15, 13, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 0]}, "faces": { - "north": {"uv": [5.25, 1.75, 7, 2.375], "texture": "#1"}, - "east": {"uv": [5.25, 2.375, 7, 3], "texture": "#1"}, - "south": {"uv": [5.25, 3, 7, 3.625], "texture": "#1"}, - "west": {"uv": [5.25, 3.625, 7, 4.25], "texture": "#1"}, - "up": {"uv": [3.75, 1.75, 2, 0], "texture": "#1"}, - "down": {"uv": [3.75, 1.75, 2, 3.5], "texture": "#1"} + "north": {"uv": [10.5, 3.5, 14, 4.75], "texture": "#1"}, + "east": {"uv": [10.5, 4.75, 14, 6], "texture": "#1"}, + "south": {"uv": [10.5, 6, 14, 7.25], "texture": "#1"}, + "west": {"uv": [10.5, 7.25, 14, 8.5], "texture": "#1"}, + "up": {"uv": [7.5, 3.5, 4, 0], "texture": "#1"}, + "down": {"uv": [7.5, 3.5, 4, 7], "texture": "#1"} } }, { - "from": [6, 1, 14.1], - "to": [10, 15, 16.1], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 4, 0.1]}, + "from": [4, 10, -1.6], + "to": [12, 14, 1.4], + "rotation": {"angle": 22.5, "axis": "x", "origin": [0, 9, -2.6]}, "faces": { - "north": {"uv": [5.5, 0, 6, 1.75], "texture": "#1"}, - "east": {"uv": [3, 6.875, 3.25, 8.625], "texture": "#1"}, - "south": {"uv": [5.5, 4.25, 6, 6], "texture": "#1"}, - "west": {"uv": [3.25, 6.875, 3.5, 8.625], "texture": "#1"}, - "up": {"uv": [6.5, 1.75, 6, 1.5], "texture": "#1"}, - "down": {"uv": [3.5, 6.125, 3, 6.375], "texture": "#1"} + "north": {"uv": [8, 11.5, 10, 12.5], "texture": "#1"}, + "east": {"uv": [14, 8.75, 14.75, 9.75], "texture": "#1"}, + "south": {"uv": [4, 12.5, 6, 13.5], "texture": "#1"}, + "west": {"uv": [14, 9.75, 14.75, 10.75], "texture": "#1"}, + "up": {"uv": [16, 1.75, 14, 1], "texture": "#1"}, + "down": {"uv": [16, 1.75, 14, 2.5], "texture": "#1"} } }, { - "from": [1, 11, 1], - "to": [15, 18, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 11, 0]}, + "from": [5, 9.9, 4.5], + "to": [11, 11.9, 6.5], + "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 9.9, -1.5]}, "faces": { - "north": {"uv": [0, 4, 1.75, 4.875], "texture": "#1"}, - "east": {"uv": [3.75, 4.75, 5.5, 5.625], "texture": "#1"}, - "south": {"uv": [0, 4.875, 1.75, 5.75], "texture": "#1"}, - "west": {"uv": [1.75, 5.25, 3.5, 6.125], "texture": "#1"}, - "up": {"uv": [3.75, 5.25, 2, 3.5], "texture": "#1"}, - "down": {"uv": [5.5, 0, 3.75, 1.75], "texture": "#1"} + "north": {"uv": [2, 12, 3.5, 12.5], "texture": "#1"}, + "east": {"uv": [3.5, 10, 4, 10.5], "texture": "#1"}, + "south": {"uv": [14, 12.5, 15.5, 13], "texture": "#1"}, + "west": {"uv": [11.5, 14.5, 12, 15], "texture": "#1"}, + "up": {"uv": [15.5, 13.5, 14, 13], "texture": "#1"}, + "down": {"uv": [15.5, 13.5, 14, 14], "texture": "#1"} } }, { - "from": [6, 10.5, 6], - "to": [10, 11.5, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 10.5, 0]}, + "from": [5, 9.9, 9.5], + "to": [11, 11.9, 11.5], + "rotation": {"angle": 22.5, "axis": "x", "origin": [0, 9.9, 17.5]}, "faces": { - "north": {"uv": [6.5, 1.5, 7, 1.625], "texture": "#1"}, - "east": {"uv": [6.5, 1.625, 7, 1.75], "texture": "#1"}, - "south": {"uv": [7, 2, 7.5, 2.125], "texture": "#1"}, - "west": {"uv": [7, 2.125, 7.5, 2.25], "texture": "#1"}, - "up": {"uv": [4, 7.375, 3.5, 6.875], "texture": "#1"}, - "down": {"uv": [7.5, 1.5, 7, 2], "texture": "#1"} + "north": {"uv": [14, 14, 15.5, 14.5], "texture": "#1"}, + "east": {"uv": [12, 14.5, 12.5, 15], "texture": "#1"}, + "south": {"uv": [0, 14.25, 1.5, 14.75], "texture": "#1"}, + "west": {"uv": [12.5, 14.5, 13, 15], "texture": "#1"}, + "up": {"uv": [3, 14.75, 1.5, 14.25], "texture": "#1"}, + "down": {"uv": [4.5, 14.5, 3, 15], "texture": "#1"} + } + }, + { + "from": [6, 10, 4], + "to": [8, 12, 12], + "rotation": {"angle": 22.5, "axis": "z", "origin": [0, 8, 0]}, + "faces": { + "north": {"uv": [13, 14.5, 13.5, 15], "texture": "#1"}, + "east": {"uv": [0, 12, 2, 12.5], "texture": "#1"}, + "south": {"uv": [13.5, 14.5, 14, 15], "texture": "#1"}, + "west": {"uv": [14, 3.25, 16, 3.75], "texture": "#1"}, + "up": {"uv": [4, 10, 3.5, 8], "texture": "#1"}, + "down": {"uv": [6.5, 12.5, 6, 14.5], "texture": "#1"} + } + }, + { + "from": [8, 10, 4], + "to": [10, 12, 12], + "rotation": {"angle": -22.5, "axis": "z", "origin": [16, 8, 0]}, + "faces": { + "north": {"uv": [14, 14.5, 14.5, 15], "texture": "#1"}, + "east": {"uv": [14, 3.75, 16, 4.25], "texture": "#1"}, + "south": {"uv": [14.5, 14.5, 15, 15], "texture": "#1"}, + "west": {"uv": [14, 4.25, 16, 4.75], "texture": "#1"}, + "up": {"uv": [7, 14.5, 6.5, 12.5], "texture": "#1"}, + "down": {"uv": [14.5, 4.75, 14, 6.75], "texture": "#1"} + } + }, + { + "from": [6, 3, 14.1], + "to": [10, 17, 16.1], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 0.1]}, + "faces": { + "north": {"uv": [11, 11, 12, 14.5], "texture": "#1"}, + "east": {"uv": [10, 11.5, 10.5, 15], "texture": "#1"}, + "south": {"uv": [7, 11.5, 8, 15], "texture": "#1"}, + "west": {"uv": [10.5, 11.5, 11, 15], "texture": "#1"}, + "up": {"uv": [5.5, 15, 4.5, 14.5], "texture": "#1"}, + "down": {"uv": [15.5, 4.75, 14.5, 5.25], "texture": "#1"} + } + }, + { + "from": [1, 13, 1], + "to": [15, 21, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 13, 0]}, + "faces": { + "north": {"uv": [0, 8, 3.5, 10], "texture": "#1"}, + "east": {"uv": [7.5, 9.5, 11, 11.5], "texture": "#1"}, + "south": {"uv": [0, 10, 3.5, 12], "texture": "#1"}, + "west": {"uv": [3.5, 10.5, 7, 12.5], "texture": "#1"}, + "up": {"uv": [7.5, 10.5, 4, 7], "texture": "#1"}, + "down": {"uv": [11, 0, 7.5, 3.5], "texture": "#1"} + } + }, + { + "from": [6, 12.5, 6], + "to": [10, 13.5, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 12.5, 0]}, + "faces": { + "north": {"uv": [11, 3.25, 12, 3.5], "texture": "#1"}, + "east": {"uv": [12, 3.25, 13, 3.5], "texture": "#1"}, + "south": {"uv": [13, 3.25, 14, 3.5], "texture": "#1"}, + "west": {"uv": [14, 10.75, 15, 11], "texture": "#1"}, + "up": {"uv": [15, 7.75, 14, 6.75], "texture": "#1"}, + "down": {"uv": [15, 7.75, 14, 8.75], "texture": "#1"} } }, { "name": "Egg1", - "from": [7.5, 11.4, 8.2], - "to": [9.5, 14.4, 10.2], - "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 12.4, 1.2]}, + "from": [7.5, 13.4, 8.2], + "to": [9.5, 16.4, 10.2], + "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 14.4, 1.2]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [7, 10.5, 7.5, 11.25], "texture": "#1"}, + "east": {"uv": [10.5, 8.5, 11, 9.25], "texture": "#1"}, + "south": {"uv": [14.5, 5.25, 15, 6], "texture": "#1"}, + "west": {"uv": [5.5, 14.5, 6, 15.25], "texture": "#1"}, + "up": {"uv": [0.5, 15.25, 0, 14.75], "texture": "#1"}, + "down": {"uv": [1, 14.75, 0.5, 15.25], "texture": "#1"} } }, { "name": "Egg2", - "from": [9.5, 10.5, 5.8], - "to": [11.5, 13.5, 7.8], - "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 11.5, -1.2]}, + "from": [8.4, 9.6, 5.8], + "to": [10.4, 12.6, 7.8], + "rotation": {"angle": -22.5, "axis": "x", "origin": [1.4, 10.6, -1.2]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [6, 14.5, 6.5, 15.25], "texture": "#1"}, + "east": {"uv": [14.5, 6, 15, 6.75], "texture": "#1"}, + "south": {"uv": [6.5, 14.5, 7, 15.25], "texture": "#1"}, + "west": {"uv": [8, 14.5, 8.5, 15.25], "texture": "#1"}, + "up": {"uv": [1.5, 15.25, 1, 14.75], "texture": "#1"}, + "down": {"uv": [2, 14.75, 1.5, 15.25], "texture": "#1"} } }, { "name": "Egg3", - "from": [5, 10.9, 6.2], - "to": [7, 13.9, 8.2], - "rotation": {"angle": 0, "axis": "y", "origin": [-2, 11.9, -0.8]}, + "from": [6.6, 9.7, 6.2], + "to": [8.6, 12.7, 8.2], + "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.4, 10.7, -0.8]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [8.5, 14.5, 9, 15.25], "texture": "#1"}, + "east": {"uv": [9, 14.5, 9.5, 15.25], "texture": "#1"}, + "south": {"uv": [9.5, 14.5, 10, 15.25], "texture": "#1"}, + "west": {"uv": [11, 14.5, 11.5, 15.25], "texture": "#1"}, + "up": {"uv": [2.5, 15.25, 2, 14.75], "texture": "#1"}, + "down": {"uv": [3, 14.75, 2.5, 15.25], "texture": "#1"} } }, { "from": [4, 9.2, 9.8], "to": [12, 9.2, 13.8], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.2, -0.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.2, -0.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [10, 13.5, 8, 12.5], "texture": "#1"}, + "down": {"uv": [14, 12.5, 12, 13.5], "texture": "#1"} } }, { "from": [4, 9.2, 2.2], "to": [12, 9.2, 6.2], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.2, 16.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.2, 16.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} - } - }, - { - "from": [2, 12.025, 4], - "to": [6, 12.025, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [0, 11.025, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} - } - }, - { - "from": [10, 12.025, 4], - "to": [14, 12.025, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [16, 11.025, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} - } - }, - { - "from": [10, 12.325, 4], - "to": [14, 12.325, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [16, 11.325, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} + "up": {"uv": [2, 14.25, 0, 13.25], "texture": "#1"}, + "down": {"uv": [4, 13.25, 2, 14.25], "texture": "#1"} } }, { "from": [4, 9.5, 9.8], "to": [12, 9.5, 13.8], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.5, -0.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.5, -0.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} - } - }, - { - "from": [2, 12.325, 4], - "to": [6, 12.325, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [0, 11.325, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} + "up": {"uv": [6, 14.5, 4, 13.5], "texture": "#1"}, + "down": {"uv": [10, 13.5, 8, 14.5], "texture": "#1"} } }, { "from": [4, 9.5, 2.2], "to": [12, 9.5, 6.2], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.5, 16.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.5, 16.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [14, 14.5, 12, 13.5], "texture": "#1"}, + "down": {"uv": [16, 0, 14, 1], "texture": "#1"} } } ], @@ -267,8 +280,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_analyzer.json b/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_analyzer.json index 6513abb..b7777b9 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_analyzer.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_analyzer.json @@ -4,7 +4,7 @@ "ambientocclusion": false, "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/white_dna_analyzer", + "1": "jurassicrevived:block/white_dna_analyzer", "particle": "jurassicrevived:block/white_dna_analyzer" }, "elements": [ @@ -13,12 +13,12 @@ "to": [15, 6, 13], "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 11]}, "faces": { - "north": {"uv": [0, 0, 3.5, 1.5], "texture": "#0"}, - "east": {"uv": [2, 5.75, 3.5, 7.25], "texture": "#0"}, - "south": {"uv": [0, 1.5, 3.5, 3], "texture": "#0"}, - "west": {"uv": [3.5, 5.75, 5, 7.25], "texture": "#0"}, - "up": {"uv": [3.5, 4.5, 0, 3], "texture": "#0"}, - "down": {"uv": [7, 0, 3.5, 1.5], "texture": "#0"} + "north": {"uv": [0, 0, 3.5, 1.5], "texture": "#1"}, + "east": {"uv": [4, 4.5, 5.5, 6], "texture": "#1"}, + "south": {"uv": [0, 1.5, 3.5, 3], "texture": "#1"}, + "west": {"uv": [5.5, 4.5, 7, 6], "texture": "#1"}, + "up": {"uv": [3.5, 4.5, 0, 3], "texture": "#1"}, + "down": {"uv": [7, 0, 3.5, 1.5], "texture": "#1"} } }, { @@ -26,12 +26,12 @@ "to": [13, 1, 11], "rotation": {"angle": -22.5, "axis": "x", "origin": [7, -3, 5]}, "faces": { - "north": {"uv": [7, 1.25, 9.5, 1.5], "texture": "#0"}, - "east": {"uv": [7.5, 1.5, 9, 1.75], "texture": "#0"}, - "south": {"uv": [2.75, 7.25, 5.25, 7.5], "texture": "#0"}, - "west": {"uv": [7.5, 1.75, 9, 2], "texture": "#0"}, - "up": {"uv": [6, 3, 3.5, 1.5], "texture": "#0"}, - "down": {"uv": [6, 3, 3.5, 4.5], "texture": "#0"} + "north": {"uv": [2.75, 7.5, 5.25, 7.75], "texture": "#1"}, + "east": {"uv": [7.5, 3.5, 9, 3.75], "texture": "#1"}, + "south": {"uv": [7.5, 3.25, 10, 3.5], "texture": "#1"}, + "west": {"uv": [7.5, 3.75, 9, 4], "texture": "#1"}, + "up": {"uv": [6, 3, 3.5, 1.5], "texture": "#1"}, + "down": {"uv": [6, 3, 3.5, 4.5], "texture": "#1"} } }, { @@ -39,25 +39,64 @@ "to": [15, 12, 13], "rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 11]}, "faces": { - "north": {"uv": [5, 5.75, 6.5, 7.25], "texture": "#0"}, - "east": {"uv": [6, 1.5, 7.5, 3], "texture": "#0"}, - "south": {"uv": [6, 3, 7.5, 4.5], "texture": "#0"}, - "west": {"uv": [6.5, 4.5, 8, 6], "texture": "#0"}, - "up": {"uv": [8, 7.5, 6.5, 6], "texture": "#0"}, - "down": {"uv": [1.5, 7, 0, 8.5], "texture": "#0"} + "north": {"uv": [0, 5.75, 1.5, 7.25], "texture": "#1"}, + "east": {"uv": [1.5, 5.75, 3, 7.25], "texture": "#1"}, + "south": {"uv": [6, 1.5, 7.5, 3], "texture": "#1"}, + "west": {"uv": [3, 6, 4.5, 7.5], "texture": "#1"}, + "up": {"uv": [7.5, 4.5, 6, 3], "texture": "#1"}, + "down": {"uv": [6, 6, 4.5, 7.5], "texture": "#1"} + } + }, + { + "from": [1, 6, 10], + "to": [9, 11, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 6, 11]}, + "faces": { + "north": {"uv": [0, 4.5, 2, 5.75], "texture": "#1"}, + "east": {"uv": [2, 7.25, 2.75, 8.5], "texture": "#1"}, + "south": {"uv": [2, 4.5, 4, 5.75], "texture": "#1"}, + "west": {"uv": [7.5, 2, 8.25, 3.25], "texture": "#1"}, + "up": {"uv": [8, 6.75, 6, 6], "texture": "#1"}, + "down": {"uv": [8, 6.75, 6, 7.5], "texture": "#1"} + } + }, + { + "from": [1, 9, 8], + "to": [9, 11, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 6, 8]}, + "faces": { + "north": {"uv": [7, 0, 9, 0.5], "texture": "#1"}, + "east": {"uv": [7.5, 4, 8, 4.5], "texture": "#1"}, + "south": {"uv": [7, 0.5, 9, 1], "texture": "#1"}, + "west": {"uv": [6.25, 7.5, 6.75, 8], "texture": "#1"}, + "up": {"uv": [9, 1.5, 7, 1], "texture": "#1"}, + "down": {"uv": [9, 4.5, 7, 5], "texture": "#1"} } }, { "from": [1, 6, 8], - "to": [9, 11, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [1, 6, 11]}, + "to": [9, 8, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 3, 8]}, "faces": { - "north": {"uv": [0, 4.5, 2, 5.75], "texture": "#0"}, - "east": {"uv": [7, 0, 8.25, 1.25], "texture": "#0"}, - "south": {"uv": [2, 4.5, 4, 5.75], "texture": "#0"}, - "west": {"uv": [1.5, 7.25, 2.75, 8.5], "texture": "#0"}, - "up": {"uv": [6, 5.75, 4, 4.5], "texture": "#0"}, - "down": {"uv": [2, 5.75, 0, 7], "texture": "#0"} + "north": {"uv": [7, 5, 9, 5.5], "texture": "#1"}, + "east": {"uv": [6.75, 7.5, 7.25, 8], "texture": "#1"}, + "south": {"uv": [7, 5.5, 9, 6], "texture": "#1"}, + "west": {"uv": [7.25, 7.5, 7.75, 8], "texture": "#1"}, + "up": {"uv": [2, 7.75, 0, 7.25], "texture": "#1"}, + "down": {"uv": [9.5, 1.5, 7.5, 2], "texture": "#1"} + } + }, + { + "from": [1, 8, 8], + "to": [3, 9, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [1, 4, 8]}, + "faces": { + "north": {"uv": [3, 5.75, 3.5, 6], "texture": "#1"}, + "east": {"uv": [3.5, 5.75, 4, 6], "texture": "#1"}, + "south": {"uv": [1, 7.75, 1.5, 8], "texture": "#1"}, + "west": {"uv": [1.5, 7.75, 2, 8], "texture": "#1"}, + "up": {"uv": [0.5, 8.25, 0, 7.75], "texture": "#1"}, + "down": {"uv": [1, 7.75, 0.5, 8.25], "texture": "#1"} } }, { @@ -65,12 +104,12 @@ "to": [3, 16, 12], "rotation": {"angle": 0, "axis": "y", "origin": [1, 11, 11]}, "faces": { - "north": {"uv": [6, 4.5, 6.25, 5.75], "texture": "#0"}, - "east": {"uv": [6.25, 4.5, 6.5, 5.75], "texture": "#0"}, - "south": {"uv": [5.25, 7.25, 5.5, 8.5], "texture": "#0"}, - "west": {"uv": [5.5, 7.25, 5.75, 8.5], "texture": "#0"}, - "up": {"uv": [1.75, 7.25, 1.5, 7], "texture": "#0"}, - "down": {"uv": [2, 7, 1.75, 7.25], "texture": "#0"} + "north": {"uv": [5.25, 7.5, 5.5, 8.75], "texture": "#1"}, + "east": {"uv": [5.5, 7.5, 5.75, 8.75], "texture": "#1"}, + "south": {"uv": [5.75, 7.5, 6, 8.75], "texture": "#1"}, + "west": {"uv": [6, 7.5, 6.25, 8.75], "texture": "#1"}, + "up": {"uv": [3, 7.5, 2.75, 7.25], "texture": "#1"}, + "down": {"uv": [3, 7.75, 2.75, 8], "texture": "#1"} } } ], @@ -109,8 +148,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4] + "children": [0, 1, 2, 3, 4, 5, 6, 7] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_extractor.json b/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_extractor.json index aaa7236..3afb505 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_extractor.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_extractor.json @@ -3,24 +3,24 @@ "credit": "Made with Blockbench", "ambientocclusion": false, "render_type": "cutout", - "texture_size": [128, 128], + "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/white_dna_extractor", + "1": "jurassicrevived:block/white_dna_extractor", "particle": "jurassicrevived:block/white_dna_extractor" }, "elements": [ { "name": "Keyboard", - "from": [0, -0.05957, 0.77211], - "to": [7, 0.94043, 5.77211], + "from": [0, 0.03282, 0.81038], + "to": [7, 1.03282, 5.81038], "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 0.2, -0.3]}, "faces": { - "north": {"uv": [4.625, 3.375, 5.5, 3.5], "texture": "#0"}, - "east": {"uv": [4, 3.375, 4.625, 3.5], "texture": "#0"}, - "south": {"uv": [6.125, 3.375, 7, 3.5], "texture": "#0"}, - "west": {"uv": [5.5, 3.375, 6.125, 3.5], "texture": "#0"}, - "up": {"uv": [5.5, 3.375, 4.625, 2.75], "texture": "#0"}, - "down": {"uv": [6.375, 2.75, 5.5, 3.375], "texture": "#0"} + "north": {"uv": [11.5, 1.5, 13.25, 1.75], "texture": "#1"}, + "east": {"uv": [10, 4.25, 11.25, 4.5], "texture": "#1"}, + "south": {"uv": [11.5, 1.75, 13.25, 2], "texture": "#1"}, + "west": {"uv": [11.75, 4.75, 13, 5], "texture": "#1"}, + "up": {"uv": [5.25, 11.5, 3.5, 10.25], "texture": "#1"}, + "down": {"uv": [11.25, 10.25, 9.5, 11.5], "texture": "#1"} } }, { @@ -29,82 +29,54 @@ "to": [6.5, 3, 5.5], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0.7, 8]}, "faces": { - "north": {"uv": [0.125, 6.5, 0.875, 6.875], "texture": "#0"}, - "east": {"uv": [0, 6.5, 0.125, 6.875], "texture": "#0"}, - "south": {"uv": [1, 6.5, 1.75, 6.875], "texture": "#0"}, - "west": {"uv": [0.875, 6.5, 1, 6.875], "texture": "#0"}, - "up": {"uv": [0.875, 6.5, 0.125, 6.375], "texture": "#0"}, - "down": {"uv": [1.625, 6.375, 0.875, 6.5], "texture": "#0"} + "north": {"uv": [10, 3.5, 11.5, 4.25], "texture": "#1"}, + "east": {"uv": [5.75, 7, 6, 7.75], "texture": "#1"}, + "south": {"uv": [1.5, 10.75, 3, 11.5], "texture": "#1"}, + "west": {"uv": [5.75, 7.75, 6, 8.5], "texture": "#1"}, + "up": {"uv": [3, 11.75, 1.5, 11.5], "texture": "#1"}, + "down": {"uv": [3, 11.75, 1.5, 12], "texture": "#1"} } }, { "name": "Screen", - "from": [0, 8.78296, -1.62498], - "to": [7, 17.78296, -0.62498], + "from": [0, 9.15908, -2.23958], + "to": [7, 18.15908, -0.23958], "rotation": {"angle": 22.5, "axis": "x", "origin": [0, 0, 0]}, "faces": { - "north": {"uv": [5.375, 3.625, 6.25, 4.75], "texture": "#0"}, - "east": {"uv": [5.25, 3.625, 5.375, 4.75], "texture": "#0"}, - "south": {"uv": [6.375, 3.625, 7.25, 4.75], "texture": "#0"}, - "west": {"uv": [6.25, 3.625, 6.375, 4.75], "texture": "#0"}, - "up": {"uv": [6.25, 3.625, 5.375, 3.5], "texture": "#0"}, - "down": {"uv": [7.125, 3.5, 6.25, 3.625], "texture": "#0"} + "north": {"uv": [7.75, 4.5, 9.5, 6.75], "texture": "#1"}, + "east": {"uv": [3, 10.75, 3.5, 13], "texture": "#1"}, + "south": {"uv": [7.75, 6.75, 9.5, 9], "texture": "#1"}, + "west": {"uv": [11.25, 4.25, 11.75, 6.5], "texture": "#1"}, + "up": {"uv": [13, 11, 11.25, 10.5], "texture": "#1"}, + "down": {"uv": [13, 11, 11.25, 11.5], "texture": "#1"} } }, { "name": "Screen attachment", - "from": [0.5, 6.14588, 9.25832], - "to": [3.5, 11.14588, 10.25832], + "from": [1.5, 4.93827, 8.29931], + "to": [4.5, 10.93827, 10.29931], "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 0, 0]}, "faces": { - "north": {"uv": [4.125, 5.375, 4.5, 6], "texture": "#0"}, - "east": {"uv": [4, 5.375, 4.125, 6], "texture": "#0"}, - "south": {"uv": [4.625, 5.375, 5, 6], "texture": "#0"}, - "west": {"uv": [4.5, 5.375, 4.625, 6], "texture": "#0"}, - "up": {"uv": [4.5, 5.375, 4.125, 5.25], "texture": "#0"}, - "down": {"uv": [4.875, 5.25, 4.5, 5.375], "texture": "#0"} - } - }, - { - "name": "Sequencing chamber 3", - "from": [7.1, 1.1, 7], - "to": [14.1, 5.1, 14], - "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0, 8]}, - "faces": { - "north": {"uv": [4.875, 2.25, 5.75, 2.75], "texture": "#0"}, - "east": {"uv": [4, 2.25, 4.875, 2.75], "texture": "#0"}, - "south": {"uv": [6.625, 2.25, 7.5, 2.75], "texture": "#0"}, - "west": {"uv": [5.75, 2.25, 6.625, 2.75], "texture": "#0"}, - "up": {"uv": [5.75, 2.25, 4.875, 1.375], "texture": "#0"}, - "down": {"uv": [6.625, 1.375, 5.75, 2.25], "texture": "#0"} - } - }, - { - "name": "Sequencing chamber 2", - "from": [7.1, 5.4, 7], - "to": [14.1, 9.4, 14], - "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0, 8]}, - "faces": { - "north": {"uv": [4.875, 2.25, 5.75, 2.75], "texture": "#0"}, - "east": {"uv": [4, 2.25, 4.875, 2.75], "texture": "#0"}, - "south": {"uv": [6.625, 2.25, 7.5, 2.75], "texture": "#0"}, - "west": {"uv": [5.75, 2.25, 6.625, 2.75], "texture": "#0"}, - "up": {"uv": [5.75, 2.25, 4.875, 1.375], "texture": "#0"}, - "down": {"uv": [6.625, 1.375, 5.75, 2.25], "texture": "#0"} + "north": {"uv": [11.25, 6.5, 12, 8], "texture": "#1"}, + "east": {"uv": [3.5, 8.5, 4, 10], "texture": "#1"}, + "south": {"uv": [7.75, 11.25, 8.5, 12.75], "texture": "#1"}, + "west": {"uv": [9, 11.25, 9.5, 12.75], "texture": "#1"}, + "up": {"uv": [4.25, 12.25, 3.5, 11.75], "texture": "#1"}, + "down": {"uv": [5, 11.75, 4.25, 12.25], "texture": "#1"} } }, { "name": "Sequencing chamber 1", - "from": [7.1, 9.7, 7], + "from": [7.1, 0.7, 7], "to": [14.1, 13.7, 14], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0, 8]}, "faces": { - "north": {"uv": [4.875, 2.25, 5.75, 2.75], "texture": "#0"}, - "east": {"uv": [4, 2.25, 4.875, 2.75], "texture": "#0"}, - "south": {"uv": [6.625, 2.25, 7.5, 2.75], "texture": "#0"}, - "west": {"uv": [5.75, 2.25, 6.625, 2.75], "texture": "#0"}, - "up": {"uv": [5.75, 2.25, 4.875, 1.375], "texture": "#0"}, - "down": {"uv": [6.625, 1.375, 5.75, 2.25], "texture": "#0"} + "north": {"uv": [6, 0, 7.75, 3.25], "texture": "#1"}, + "east": {"uv": [6, 3.25, 7.75, 6.5], "texture": "#1"}, + "south": {"uv": [6, 6.5, 7.75, 9.75], "texture": "#1"}, + "west": {"uv": [4, 7, 5.75, 10.25], "texture": "#1"}, + "up": {"uv": [11.25, 8.5, 9.5, 6.75], "texture": "#1"}, + "down": {"uv": [11.25, 8.5, 9.5, 10.25], "texture": "#1"} } }, { @@ -113,12 +85,12 @@ "to": [7.1, 14.15, 14.5], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0.15, 8]}, "faces": { - "north": {"uv": [1, 4.625, 1.375, 6.375], "texture": "#0"}, - "east": {"uv": [0, 4.625, 1, 6.375], "texture": "#0"}, - "south": {"uv": [2.375, 4.625, 2.75, 6.375], "texture": "#0"}, - "west": {"uv": [1.375, 4.625, 2.375, 6.375], "texture": "#0"}, - "up": {"uv": [1.375, 4.625, 1, 3.625], "texture": "#0"}, - "down": {"uv": [1.75, 3.625, 1.375, 4.625], "texture": "#0"} + "north": {"uv": [5.75, 9.75, 6.5, 13.25], "texture": "#1"}, + "east": {"uv": [4, 0, 6, 3.5], "texture": "#1"}, + "south": {"uv": [6.5, 9.75, 7.25, 13.25], "texture": "#1"}, + "west": {"uv": [4, 3.5, 6, 7], "texture": "#1"}, + "up": {"uv": [0.75, 12.75, 0, 10.75], "texture": "#1"}, + "down": {"uv": [1.5, 10.75, 0.75, 12.75], "texture": "#1"} } }, { @@ -127,12 +99,12 @@ "to": [7, 10, 15], "rotation": {"angle": 0, "axis": "y", "origin": [8.4, 0, 8]}, "faces": { - "north": {"uv": [1.125, 2.5, 2, 3.625], "texture": "#0"}, - "east": {"uv": [0, 2.5, 1.125, 3.625], "texture": "#0"}, - "south": {"uv": [3.125, 2.5, 4, 3.625], "texture": "#0"}, - "west": {"uv": [2, 2.5, 3.125, 3.625], "texture": "#0"}, - "up": {"uv": [2, 2.5, 1.125, 1.375], "texture": "#0"}, - "down": {"uv": [2.875, 1.375, 2, 2.5], "texture": "#0"} + "north": {"uv": [0, 8.5, 1.75, 10.75], "texture": "#1"}, + "east": {"uv": [7.75, 0, 10, 2.25], "texture": "#1"}, + "south": {"uv": [1.75, 8.5, 3.5, 10.75], "texture": "#1"}, + "west": {"uv": [7.75, 2.25, 10, 4.5], "texture": "#1"}, + "up": {"uv": [9.5, 11.25, 7.75, 9], "texture": "#1"}, + "down": {"uv": [11.25, 4.5, 9.5, 6.75], "texture": "#1"} } }, { @@ -141,12 +113,96 @@ "to": [15.9, 14.15, 14.5], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0.15, 8]}, "faces": { - "north": {"uv": [3.75, 4.625, 4, 6.375], "texture": "#0"}, - "east": {"uv": [2.75, 4.625, 3.75, 6.375], "texture": "#0"}, - "south": {"uv": [5, 4.625, 5.25, 6.375], "texture": "#0"}, - "west": {"uv": [4, 4.625, 5, 6.375], "texture": "#0"}, - "up": {"uv": [4, 4.625, 3.75, 3.625], "texture": "#0"}, - "down": {"uv": [4.25, 3.625, 4, 4.625], "texture": "#0"} + "north": {"uv": [7.25, 9.75, 7.75, 13.25], "texture": "#1"}, + "east": {"uv": [0, 5, 2, 8.5], "texture": "#1"}, + "south": {"uv": [5.25, 10.25, 5.75, 13.75], "texture": "#1"}, + "west": {"uv": [2, 5, 4, 8.5], "texture": "#1"}, + "up": {"uv": [11.75, 10, 11.25, 8], "texture": "#1"}, + "down": {"uv": [9, 11.25, 8.5, 13.25], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [6.9, 0.15, 13.5], + "to": [13.9, 2.15, 14.5], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 0.15, 8]}, + "faces": { + "north": {"uv": [11.5, 0, 13.25, 0.5], "texture": "#1"}, + "east": {"uv": [5.75, 9.25, 6, 9.75], "texture": "#1"}, + "south": {"uv": [11.5, 0.5, 13.25, 1], "texture": "#1"}, + "west": {"uv": [11.75, 8, 12, 8.5], "texture": "#1"}, + "up": {"uv": [13.25, 2.25, 11.5, 2], "texture": "#1"}, + "down": {"uv": [13.25, 2.25, 11.5, 2.5], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [6.9, 11.15, 11.5], + "to": [13.9, 12.15, 12.5], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 11.15, 6]}, + "faces": { + "north": {"uv": [11.5, 2.5, 13.25, 2.75], "texture": "#1"}, + "east": {"uv": [11.75, 9.75, 12, 10], "texture": "#1"}, + "south": {"uv": [11.5, 2.75, 13.25, 3], "texture": "#1"}, + "west": {"uv": [10, 11.75, 10.25, 12], "texture": "#1"}, + "up": {"uv": [13.25, 3.25, 11.5, 3], "texture": "#1"}, + "down": {"uv": [13.25, 3.25, 11.5, 3.5], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [6.9, 11.15, 8.5], + "to": [13.9, 12.15, 9.5], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 11.15, 3]}, + "faces": { + "north": {"uv": [3.5, 11.5, 5.25, 11.75], "texture": "#1"}, + "east": {"uv": [10.25, 11.75, 10.5, 12], "texture": "#1"}, + "south": {"uv": [11.5, 3.5, 13.25, 3.75], "texture": "#1"}, + "west": {"uv": [10.5, 11.75, 10.75, 12], "texture": "#1"}, + "up": {"uv": [13.25, 4, 11.5, 3.75], "texture": "#1"}, + "down": {"uv": [13.25, 4, 11.5, 4.25], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [9.9, 11.15, 9.5], + "to": [10.9, 12.15, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 11.15, 4]}, + "faces": { + "north": {"uv": [10.75, 11.75, 11, 12], "texture": "#1"}, + "east": {"uv": [3.5, 10, 4, 10.25], "texture": "#1"}, + "south": {"uv": [11, 11.75, 11.25, 12], "texture": "#1"}, + "west": {"uv": [11.75, 8.5, 12.25, 8.75], "texture": "#1"}, + "up": {"uv": [12, 9.25, 11.75, 8.75], "texture": "#1"}, + "down": {"uv": [12, 9.25, 11.75, 9.75], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [9.9, 8.15, 10], + "to": [10.9, 11.15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 10.15, 3.5]}, + "faces": { + "north": {"uv": [5.75, 8.5, 6, 9.25], "texture": "#1"}, + "east": {"uv": [5, 11.75, 5.25, 12.5], "texture": "#1"}, + "south": {"uv": [11.75, 5, 12, 5.75], "texture": "#1"}, + "west": {"uv": [11.75, 5.75, 12, 6.5], "texture": "#1"}, + "up": {"uv": [11.5, 12, 11.25, 11.75], "texture": "#1"}, + "down": {"uv": [11.75, 11.75, 11.5, 12], "texture": "#1"} + } + }, + { + "name": "Sequencing attachment end", + "from": [7.9, 6.15, 11.6], + "to": [7.9, 8.15, 12.6], + "rotation": {"angle": 22.5, "axis": "y", "origin": [5, 7.15, 5.1]}, + "faces": { + "north": {"uv": [0, 0, 0, 0.5], "texture": "#1"}, + "east": {"uv": [9.5, 11.75, 9.75, 12.25], "texture": "#1"}, + "south": {"uv": [0, 0, 0, 0.5], "texture": "#1"}, + "west": {"uv": [9.75, 11.75, 10, 12.25], "texture": "#1"}, + "up": {"uv": [0, 0.25, 0, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 0, 0.25], "texture": "#1"} } }, { @@ -155,12 +211,26 @@ "to": [16, 1, 15.5], "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 0, 8]}, "faces": { - "north": {"uv": [1.25, 1.25, 3.25, 1.375], "texture": "#0"}, - "east": {"uv": [0, 1.25, 1.25, 1.375], "texture": "#0"}, - "south": {"uv": [4.5, 1.25, 6.5, 1.375], "texture": "#0"}, - "west": {"uv": [3.25, 1.25, 4.5, 1.375], "texture": "#0"}, - "up": {"uv": [3.25, 1.25, 1.25, 0], "texture": "#0"}, - "down": {"uv": [5.25, 0, 3.25, 1.25], "texture": "#0"} + "north": {"uv": [11.25, 10, 15.25, 10.25], "texture": "#1"}, + "east": {"uv": [11.5, 1, 14, 1.25], "texture": "#1"}, + "south": {"uv": [11.25, 10.25, 15.25, 10.5], "texture": "#1"}, + "west": {"uv": [11.5, 1.25, 14, 1.5], "texture": "#1"}, + "up": {"uv": [4, 2.5, 0, 0], "texture": "#1"}, + "down": {"uv": [4, 2.5, 0, 5], "texture": "#1"} + } + }, + { + "name": "Base", + "from": [7.5, 1, 7.2], + "to": [13.5, 2, 14.2], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 1, 7.7]}, + "faces": { + "north": {"uv": [11.75, 4.25, 13.25, 4.5], "texture": "#1"}, + "east": {"uv": [9.5, 11.5, 11.25, 11.75], "texture": "#1"}, + "south": {"uv": [11.75, 4.5, 13.25, 4.75], "texture": "#1"}, + "west": {"uv": [11.25, 11.5, 13, 11.75], "texture": "#1"}, + "up": {"uv": [11.5, 1.75, 10, 0], "texture": "#1"}, + "down": {"uv": [11.5, 1.75, 10, 3.5], "texture": "#1"} } } ], @@ -199,22 +269,26 @@ { "name": "root", "origin": [0, 24, 0], + "scope": 0, "color": 0, "children": [ { "name": "Base", "origin": [0, 0.5, 1.5], + "scope": 0, "color": 0, "children": [ { "name": "Keyboardback", "origin": [-4.5, 0.5, -2.5], + "scope": 0, "color": 0, "children": [ { "name": "Keyboard", "origin": [-4.5, 0.8, -5], "rotation": [-20.87, 0, 0], + "scope": 0, "color": 0, "children": [0] }, @@ -224,18 +298,21 @@ { "name": "HardDrive", "origin": [-4.9, 0, 1.5], + "scope": 0, "color": 0, "children": [ { "name": "Screenattachment", "origin": [-6, 9.5, -0.5], "rotation": [-36.52, 0, 0], + "scope": 0, "color": 0, "children": [ { "name": "Screen", "origin": [-6, 12.9, -0.5], "rotation": [52.17, 0, 0], + "scope": 0, "color": 0, "children": [2] }, @@ -245,39 +322,45 @@ { "name": "Sequencingattachmentbase", "origin": [-1.9, 0, 2.5], + "scope": 0, "color": 0, "children": [ { "name": "Sequencingchamber3", "origin": [-0.4, 3.1, 2.5], + "scope": 0, "color": 0, - "children": [4] + "children": [] }, { "name": "Sequencingchamber2", "origin": [-0.4, 7.4, 2.5], + "scope": 0, "color": 0, - "children": [5] + "children": [] }, { "name": "Sequencingchamber1", "origin": [-0.4, 11.7, 2.5], + "scope": 0, "color": 0, - "children": [6] + "children": [4] }, - 7 + 5 ] }, - 8 + 6 ] }, { "name": "Sequencingattachmentend", "origin": [7.4, 0, 2.5], + "scope": 0, "color": 0, - "children": [9] + "children": [7, 8, 9, 10, 11, 12, 13] }, - 10 + 14, + 15 ] } ] diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_hybridizer.json b/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_hybridizer.json index a5210a3..43689f6 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_hybridizer.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/white_dna_hybridizer.json @@ -3,23 +3,49 @@ "credit": "Made with Blockbench", "ambientocclusion": false, "render_type": "translucent", - "texture_size": [32, 32], + "texture_size": [64, 64], "textures": { "1": "jurassicrevived:block/white_dna_hybridizer", "particle": "jurassicrevived:block/white_dna_hybridizer" }, "elements": [ { - "from": [6.5, 6.56066, 5.89645], - "to": [14.5, 7.56066, 13.89645], - "rotation": {"angle": 45, "axis": "x", "origin": [8, 7.06066, 10.89645]}, + "from": [11.2, 5.56066, 5.89645], + "to": [15.2, 7.56066, 13.89645], + "rotation": {"angle": 45, "axis": "x", "origin": [13.7, 7.06066, 10.89645]}, "faces": { - "north": {"uv": [7, 1.5, 9, 1.75], "texture": "#1"}, - "east": {"uv": [7, 1.75, 9, 2], "texture": "#1"}, - "south": {"uv": [7, 2, 9, 2.25], "texture": "#1"}, - "west": {"uv": [7, 2.25, 9, 2.5], "texture": "#1"}, - "up": {"uv": [4.5, 7, 2.5, 5], "texture": "#1"}, - "down": {"uv": [6.5, 5, 4.5, 7], "texture": "#1"} + "north": {"uv": [8, 2.5, 9, 3], "texture": "#1"}, + "east": {"uv": [7.5, 5, 9.5, 5.5], "texture": "#1"}, + "south": {"uv": [8, 3, 9, 3.5], "texture": "#1"}, + "west": {"uv": [7.5, 5.5, 9.5, 6], "texture": "#1"}, + "up": {"uv": [5.5, 8.5, 4.5, 6.5], "texture": "#1"}, + "down": {"uv": [8, 6, 7, 8], "texture": "#1"} + } + }, + { + "from": [6.2, 5.56066, 5.89645], + "to": [9.2, 7.56066, 13.89645], + "rotation": {"angle": 45, "axis": "x", "origin": [8.7, 7.06066, 10.89645]}, + "faces": { + "north": {"uv": [8, 7.5, 8.75, 8], "texture": "#1"}, + "east": {"uv": [8, 0, 10, 0.5], "texture": "#1"}, + "south": {"uv": [8, 8, 8.75, 8.5], "texture": "#1"}, + "west": {"uv": [8, 0.5, 10, 1], "texture": "#1"}, + "up": {"uv": [0.75, 9.5, 0, 7.5], "texture": "#1"}, + "down": {"uv": [1.5, 7.5, 0.75, 9.5], "texture": "#1"} + } + }, + { + "from": [2.2, 5.56066, 5.89645], + "to": [6.2, 7.56066, 7.89645], + "rotation": {"angle": 45, "axis": "x", "origin": [8.7, 7.06066, 10.89645]}, + "faces": { + "north": {"uv": [8, 3.5, 9, 4], "texture": "#1"}, + "east": {"uv": [5, 4.5, 5.5, 5], "texture": "#1"}, + "south": {"uv": [8, 6, 9, 6.5], "texture": "#1"}, + "west": {"uv": [3, 8.25, 3.5, 8.75], "texture": "#1"}, + "up": {"uv": [9, 7, 8, 6.5], "texture": "#1"}, + "down": {"uv": [8, 8, 7, 8.5], "texture": "#1"} } }, { @@ -27,38 +53,51 @@ "to": [16, 1.7, 8.7], "rotation": {"angle": -22.5, "axis": "x", "origin": [9, 0.7, 4.7]}, "faces": { - "north": {"uv": [7, 1, 10.5, 1.25], "texture": "#1"}, - "east": {"uv": [7, 2.5, 8.5, 2.75], "texture": "#1"}, - "south": {"uv": [7, 1.25, 10.5, 1.5], "texture": "#1"}, - "west": {"uv": [7, 2.75, 8.5, 3], "texture": "#1"}, - "up": {"uv": [7, 1.5, 3.5, 0], "texture": "#1"}, - "down": {"uv": [7, 1.5, 3.5, 3], "texture": "#1"} + "north": {"uv": [8, 1, 11.5, 1.25], "texture": "#1"}, + "east": {"uv": [8, 7, 9.5, 7.25], "texture": "#1"}, + "south": {"uv": [8, 1.25, 11.5, 1.5], "texture": "#1"}, + "west": {"uv": [8, 7.25, 9.5, 7.5], "texture": "#1"}, + "up": {"uv": [3.5, 1.5, 0, 0], "texture": "#1"}, + "down": {"uv": [3.5, 1.5, 0, 3], "texture": "#1"} } }, { "from": [6, 0, 8], "to": [16, 6, 16], - "rotation": {"angle": 0, "axis": "z", "origin": [10.5, 3, 12]}, + "rotation": {"angle": 0, "axis": "y", "origin": [10.5, 3, 12]}, "faces": { - "north": {"uv": [6, 3, 8.5, 4.5], "texture": "#1"}, - "east": {"uv": [6.5, 4.5, 8.5, 6], "texture": "#1"}, - "south": {"uv": [0, 6.5, 2.5, 8], "texture": "#1"}, - "west": {"uv": [6.5, 6, 8.5, 7.5], "texture": "#1"}, - "up": {"uv": [6, 5, 3.5, 3], "texture": "#1"}, - "down": {"uv": [2.5, 4.5, 0, 6.5], "texture": "#1"} + "north": {"uv": [3.5, 0, 6, 1.5], "texture": "#1"}, + "east": {"uv": [5.5, 4.5, 7.5, 6], "texture": "#1"}, + "south": {"uv": [3.5, 1.5, 6, 3], "texture": "#1"}, + "west": {"uv": [6, 0, 8, 1.5], "texture": "#1"}, + "up": {"uv": [2.5, 5, 0, 3], "texture": "#1"}, + "down": {"uv": [5, 3, 2.5, 5], "texture": "#1"} } }, { - "from": [2, 7.5, 6], - "to": [16, 16.5, 8], + "from": [10, 7.5, 6], + "to": [16, 17.5, 8], "rotation": {"angle": 22.5, "axis": "x", "origin": [9.5, 11.5, 7]}, "faces": { - "north": {"uv": [0, 0, 3.5, 2.25], "texture": "#1"}, - "east": {"uv": [2.5, 7, 3, 9.25], "texture": "#1"}, - "south": {"uv": [0, 2.25, 3.5, 4.5], "texture": "#1"}, - "west": {"uv": [3, 7, 3.5, 9.25], "texture": "#1"}, - "up": {"uv": [10.5, 0.5, 7, 0], "texture": "#1"}, - "down": {"uv": [10.5, 0.5, 7, 1], "texture": "#1"} + "north": {"uv": [0, 5, 1.5, 7.5], "texture": "#1"}, + "east": {"uv": [1.5, 7.5, 2, 10], "texture": "#1"}, + "south": {"uv": [1.5, 5, 3, 7.5], "texture": "#1"}, + "west": {"uv": [7.5, 1.5, 8, 4], "texture": "#1"}, + "up": {"uv": [7.5, 2, 6, 1.5], "texture": "#1"}, + "down": {"uv": [7.5, 2, 6, 2.5], "texture": "#1"} + } + }, + { + "from": [-0.4, 7.5, 7.1], + "to": [9.6, 13.5, 9.1], + "rotation": {"angle": 22.5, "axis": "x", "origin": [3.1, 11.5, 8.1]}, + "faces": { + "north": {"uv": [3, 5, 5.5, 6.5], "texture": "#1"}, + "east": {"uv": [2, 7.5, 2.5, 9], "texture": "#1"}, + "south": {"uv": [5, 3, 7.5, 4.5], "texture": "#1"}, + "west": {"uv": [2.5, 7.5, 3, 9], "texture": "#1"}, + "up": {"uv": [10, 4.5, 7.5, 4], "texture": "#1"}, + "down": {"uv": [10, 4.5, 7.5, 5], "texture": "#1"} } }, { @@ -66,90 +105,90 @@ "to": [6, 2, 16], "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 9]}, "faces": { - "north": {"uv": [8.5, 4.5, 11.5, 5.5], "texture": "#1"}, - "east": {"uv": [8.5, 2.5, 12, 3.5], "texture": "#1"}, - "south": {"uv": [8.5, 5.5, 11.5, 6.5], "texture": "#1"}, - "west": {"uv": [8.5, 3.5, 12, 4.5], "texture": "#1"}, - "up": {"uv": [6.5, 10.5, 3.5, 7], "texture": "#1"}, - "down": {"uv": [9.5, 7.5, 6.5, 11], "texture": "#1"} + "north": {"uv": [6, 2.5, 7.5, 3], "texture": "#1"}, + "east": {"uv": [8, 1.5, 9.75, 2], "texture": "#1"}, + "south": {"uv": [5.5, 7.75, 7, 8.25], "texture": "#1"}, + "west": {"uv": [8, 2, 9.75, 2.5], "texture": "#1"}, + "up": {"uv": [7, 7.75, 5.5, 6], "texture": "#1"}, + "down": {"uv": [4.5, 6.5, 3, 8.25], "texture": "#1"} } }, { - "from": [5, 2, 10], - "to": [6, 5, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [5.5, 3.5, 10.5]}, + "from": [4, 2, 10], + "to": [5, 5, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [4.5, 3.5, 10.5]}, "faces": { - "north": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "east": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "south": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "west": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 180, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 180, "texture": "#1"} + "north": {"uv": [3.5, 8.25, 3.75, 9], "texture": "#1"}, + "east": {"uv": [3.75, 8.25, 4, 9], "texture": "#1"}, + "south": {"uv": [4, 8.25, 4.25, 9], "texture": "#1"}, + "west": {"uv": [4.25, 8.25, 4.5, 9], "texture": "#1"}, + "up": {"uv": [6, 9.25, 5.75, 9], "texture": "#1"}, + "down": {"uv": [6.25, 9, 6, 9.25], "texture": "#1"} } }, { - "from": [5, 2, 12], - "to": [6, 5, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [5.5, 3.5, 12.5]}, + "from": [4, 2, 12], + "to": [5, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [4.5, 3.5, 12.5]}, "faces": { - "north": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "east": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "south": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "west": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 90, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 270, "texture": "#1"} + "north": {"uv": [5.5, 8.25, 5.75, 9], "texture": "#1"}, + "east": {"uv": [5.75, 8.25, 6, 9], "texture": "#1"}, + "south": {"uv": [6, 8.25, 6.25, 9], "texture": "#1"}, + "west": {"uv": [6.25, 8.25, 6.5, 9], "texture": "#1"}, + "up": {"uv": [9.25, 6.25, 9, 6], "texture": "#1"}, + "down": {"uv": [6.5, 9, 6.25, 9.25], "texture": "#1"} } }, { - "from": [5, 2, 14], - "to": [6, 5, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [5.5, 3.5, 14.5]}, + "from": [4, 2, 14], + "to": [5, 5, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [4.5, 3.5, 14.5]}, "faces": { - "north": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "east": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "south": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "west": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 270, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 90, "texture": "#1"} + "north": {"uv": [6.5, 8.25, 6.75, 9], "texture": "#1"}, + "east": {"uv": [6.75, 8.25, 7, 9], "texture": "#1"}, + "south": {"uv": [4.5, 8.5, 4.75, 9.25], "texture": "#1"}, + "west": {"uv": [4.75, 8.5, 5, 9.25], "texture": "#1"}, + "up": {"uv": [9.25, 6.5, 9, 6.25], "texture": "#1"}, + "down": {"uv": [6.75, 9, 6.5, 9.25], "texture": "#1"} } }, { - "from": [3, 2, 14], - "to": [4, 5, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [3.5, 3.5, 14.5]}, + "from": [2.5, 2, 14], + "to": [3.5, 5, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 3.5, 14.5]}, "faces": { - "north": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "east": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "south": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "west": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "texture": "#1"} + "north": {"uv": [5, 8.5, 5.25, 9.25], "texture": "#1"}, + "east": {"uv": [5.25, 8.5, 5.5, 9.25], "texture": "#1"}, + "south": {"uv": [7, 8.5, 7.25, 9.25], "texture": "#1"}, + "west": {"uv": [7.25, 8.5, 7.5, 9.25], "texture": "#1"}, + "up": {"uv": [9.25, 6.75, 9, 6.5], "texture": "#1"}, + "down": {"uv": [7, 9, 6.75, 9.25], "texture": "#1"} } }, { - "from": [3, 2, 12], - "to": [4, 5, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [3.5, 3.5, 12.5]}, + "from": [2.5, 2, 12], + "to": [3.5, 5, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 3.5, 12.5]}, "faces": { - "north": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "east": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "south": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "west": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 270, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 90, "texture": "#1"} + "north": {"uv": [7.5, 8.5, 7.75, 9.25], "texture": "#1"}, + "east": {"uv": [7.75, 8.5, 8, 9.25], "texture": "#1"}, + "south": {"uv": [8, 8.5, 8.25, 9.25], "texture": "#1"}, + "west": {"uv": [8.25, 8.5, 8.5, 9.25], "texture": "#1"}, + "up": {"uv": [9.25, 7, 9, 6.75], "texture": "#1"}, + "down": {"uv": [9.25, 7.5, 9, 7.75], "texture": "#1"} } }, { - "from": [3, 2, 10], - "to": [4, 5, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [3.5, 3.5, 10.5]}, + "from": [2.5, 2, 10], + "to": [3.5, 5, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 3.5, 10.5]}, "faces": { - "north": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "east": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "south": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "west": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 270, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 90, "texture": "#1"} + "north": {"uv": [8.5, 8.5, 8.75, 9.25], "texture": "#1"}, + "east": {"uv": [3, 8.75, 3.25, 9.5], "texture": "#1"}, + "south": {"uv": [3.25, 8.75, 3.5, 9.5], "texture": "#1"}, + "west": {"uv": [8.75, 7.5, 9, 8.25], "texture": "#1"}, + "up": {"uv": [9.25, 8, 9, 7.75], "texture": "#1"}, + "down": {"uv": [9.25, 8, 9, 8.25], "texture": "#1"} } }, { @@ -157,12 +196,12 @@ "to": [2, 5, 15], "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 3.5, 14.5]}, "faces": { - "north": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "east": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "south": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "west": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 270, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 90, "texture": "#1"} + "north": {"uv": [8.75, 8.25, 9, 9], "texture": "#1"}, + "east": {"uv": [2, 9, 2.25, 9.75], "texture": "#1"}, + "south": {"uv": [2.25, 9, 2.5, 9.75], "texture": "#1"}, + "west": {"uv": [2.5, 9, 2.75, 9.75], "texture": "#1"}, + "up": {"uv": [9.25, 8.5, 9, 8.25], "texture": "#1"}, + "down": {"uv": [9.25, 8.5, 9, 8.75], "texture": "#1"} } }, { @@ -170,12 +209,12 @@ "to": [2, 5, 13], "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 3.5, 12.5]}, "faces": { - "north": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "east": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "south": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "west": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "rotation": 270, "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "rotation": 90, "texture": "#1"} + "north": {"uv": [9, 2.5, 9.25, 3.25], "texture": "#1"}, + "east": {"uv": [2.75, 9, 3, 9.75], "texture": "#1"}, + "south": {"uv": [9, 3.25, 9.25, 4], "texture": "#1"}, + "west": {"uv": [3.5, 9, 3.75, 9.75], "texture": "#1"}, + "up": {"uv": [9, 9.25, 8.75, 9], "texture": "#1"}, + "down": {"uv": [9.25, 8.75, 9, 9], "texture": "#1"} } }, { @@ -183,12 +222,12 @@ "to": [2, 5, 11], "rotation": {"angle": 0, "axis": "y", "origin": [1.5, 3.5, 10.5]}, "faces": { - "north": {"uv": [0, 8, 0.5, 9.5], "texture": "#1"}, - "east": {"uv": [0.5, 8, 1, 9.5], "texture": "#1"}, - "south": {"uv": [1, 8, 1.5, 9.5], "texture": "#1"}, - "west": {"uv": [1.5, 8, 2, 9.5], "texture": "#1"}, - "up": {"uv": [3, 5, 2.5, 4.5], "texture": "#1"}, - "down": {"uv": [3.5, 4.5, 3, 5], "texture": "#1"} + "north": {"uv": [3.75, 9, 4, 9.75], "texture": "#1"}, + "east": {"uv": [4, 9, 4.25, 9.75], "texture": "#1"}, + "south": {"uv": [4.25, 9, 4.5, 9.75], "texture": "#1"}, + "west": {"uv": [5.5, 9, 5.75, 9.75], "texture": "#1"}, + "up": {"uv": [9.25, 9.25, 9, 9], "texture": "#1"}, + "down": {"uv": [9.5, 2.5, 9.25, 2.75], "texture": "#1"} } } ], diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/white_embryo_calcification_machine.json b/common/src/main/resources/assets/jurassicrevived/models/block/white_embryo_calcification_machine.json index 3c0faaf..0626214 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/white_embryo_calcification_machine.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/white_embryo_calcification_machine.json @@ -5,7 +5,7 @@ "render_type": "cutout", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/white_embryo_calcification_machine", + "1": "jurassicrevived:block/white_embryo_calcification_machine", "particle": "jurassicrevived:block/white_embryo_calcification_machine" }, "elements": [ @@ -14,12 +14,12 @@ "to": [15, 6, 12], "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, "faces": { - "north": {"uv": [3.5, 0, 7, 1.5], "texture": "#0"}, - "east": {"uv": [2.5, 4.25, 4.5, 5.75], "texture": "#0"}, - "south": {"uv": [3.5, 1.5, 7, 3], "texture": "#0"}, - "west": {"uv": [4.5, 4.25, 6.5, 5.75], "texture": "#0"}, - "up": {"uv": [3.5, 2, 0, 0], "texture": "#0"}, - "down": {"uv": [3.5, 2, 0, 4], "texture": "#0"} + "north": {"uv": [3.5, 0, 7, 1.5], "texture": "#1"}, + "east": {"uv": [2.5, 4.25, 4.5, 5.75], "texture": "#1"}, + "south": {"uv": [3.5, 1.5, 7, 3], "texture": "#1"}, + "west": {"uv": [4.5, 4.25, 6.5, 5.75], "texture": "#1"}, + "up": {"uv": [3.5, 2, 0, 0], "texture": "#1"}, + "down": {"uv": [3.5, 2, 0, 4], "texture": "#1"} } }, { @@ -27,12 +27,12 @@ "to": [4.2, 8, 11.8], "rotation": {"angle": 0, "axis": "y", "origin": [7.2, 6, 6.8]}, "faces": { - "north": {"uv": [3, 7.25, 3.75, 7.75], "texture": "#0"}, - "east": {"uv": [0.5, 7.5, 1.25, 8], "texture": "#0"}, - "south": {"uv": [7.5, 1.5, 8.25, 2], "texture": "#0"}, - "west": {"uv": [7.5, 2, 8.25, 2.5], "texture": "#0"}, - "up": {"uv": [4.5, 7.5, 3.75, 6.75], "texture": "#0"}, - "down": {"uv": [7.25, 6.75, 6.5, 7.5], "texture": "#0"} + "north": {"uv": [7.5, 3.25, 8.25, 3.75], "texture": "#1"}, + "east": {"uv": [7.5, 3.75, 8.25, 4.25], "texture": "#1"}, + "south": {"uv": [4, 7.5, 4.75, 8], "texture": "#1"}, + "west": {"uv": [7.5, 4.25, 8.25, 4.75], "texture": "#1"}, + "up": {"uv": [4.75, 7.5, 4, 6.75], "texture": "#1"}, + "down": {"uv": [7.75, 1, 7, 1.75], "texture": "#1"} } }, { @@ -40,12 +40,12 @@ "to": [4.2, 8, 8.3], "rotation": {"angle": 0, "axis": "y", "origin": [7.2, 6, 3.3]}, "faces": { - "north": {"uv": [7.5, 2.5, 8.25, 3], "texture": "#0"}, - "east": {"uv": [7.5, 3, 8.25, 3.5], "texture": "#0"}, - "south": {"uv": [3.75, 7.5, 4.5, 8], "texture": "#0"}, - "west": {"uv": [7.5, 4, 8.25, 4.5], "texture": "#0"}, - "up": {"uv": [7.75, 0.75, 7, 0], "texture": "#0"}, - "down": {"uv": [7.75, 0.75, 7, 1.5], "texture": "#0"} + "north": {"uv": [7.5, 4.75, 8.25, 5.25], "texture": "#1"}, + "east": {"uv": [7.5, 5.75, 8.25, 6.25], "texture": "#1"}, + "south": {"uv": [7.5, 6.25, 8.25, 6.75], "texture": "#1"}, + "west": {"uv": [0, 7.75, 0.75, 8.25], "texture": "#1"}, + "up": {"uv": [7.75, 2.5, 7, 1.75], "texture": "#1"}, + "down": {"uv": [7.75, 2.5, 7, 3.25], "texture": "#1"} } }, { @@ -53,130 +53,143 @@ "to": [10, 7, 10], "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, "faces": { - "north": {"uv": [2.5, 4, 3.5, 4.25], "texture": "#0"}, - "east": {"uv": [2, 7.75, 3, 8], "texture": "#0"}, - "south": {"uv": [7.75, 5.25, 8.75, 5.5], "texture": "#0"}, - "west": {"uv": [7.75, 5.5, 8.75, 5.75], "texture": "#0"}, - "up": {"uv": [2.5, 7.25, 1.5, 6.25], "texture": "#0"}, - "down": {"uv": [7.5, 4.25, 6.5, 5.25], "texture": "#0"} + "north": {"uv": [2.5, 4, 3.5, 4.25], "texture": "#1"}, + "east": {"uv": [7.75, 5.25, 8.75, 5.5], "texture": "#1"}, + "south": {"uv": [7.75, 5.5, 8.75, 5.75], "texture": "#1"}, + "west": {"uv": [5.75, 7.75, 6.75, 8], "texture": "#1"}, + "up": {"uv": [7, 6.75, 6, 5.75], "texture": "#1"}, + "down": {"uv": [1, 6.25, 0, 7.25], "texture": "#1"} } }, { - "from": [4, 7.6, 6], - "to": [6, 7.6, 10], - "rotation": {"angle": -22.5, "axis": "z", "origin": [4, 1.6, 7]}, + "from": [3.8, 7.8, 6], + "to": [5.8, 7.8, 10], + "rotation": {"angle": -22.5, "axis": "z", "origin": [3.8, 1.8, 7]}, "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "up": {"uv": [8.75, 6.75, 8.25, 5.75], "texture": "#0"}, - "down": {"uv": [7.5, 1.5, 7, 2.5], "texture": "#0"} + "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [7.5, 4.25, 7, 3.25], "texture": "#1"}, + "down": {"uv": [5.25, 7, 4.75, 8], "texture": "#1"} } }, { - "from": [10, 7.6, 6], - "to": [12, 7.6, 10], - "rotation": {"angle": 22.5, "axis": "z", "origin": [12, 1.6, 7]}, + "from": [10.2, 7.8, 6], + "to": [12.2, 7.8, 10], + "rotation": {"angle": 22.5, "axis": "z", "origin": [12.2, 1.8, 7]}, "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "up": {"uv": [8.75, 6.75, 8.25, 5.75], "texture": "#0"}, - "down": {"uv": [2, 7.25, 1.5, 8.25], "texture": "#0"} + "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [5.75, 8, 5.25, 7], "texture": "#1"}, + "down": {"uv": [7.5, 5.75, 7, 6.75], "texture": "#1"} } }, { - "from": [6.1, 7.1, 10.1], - "to": [10.1, 7.1, 12.1], - "rotation": {"angle": -22.5, "axis": "x", "origin": [7.1, 1.1, 10.1]}, + "from": [6, 7.1, 10.4], + "to": [10, 7.1, 12.4], + "rotation": {"angle": -22.5, "axis": "x", "origin": [7, 1.1, 10.4]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "up": {"uv": [9.25, 7.75, 8.25, 7.25], "texture": "#0"}, - "down": {"uv": [3, 7.25, 2, 7.75], "texture": "#0"} + "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "up": {"uv": [1, 7.75, 0, 7.25], "texture": "#1"}, + "down": {"uv": [6.75, 7.25, 5.75, 7.75], "texture": "#1"} } }, { - "from": [6.1, 7.1, 3.9], - "to": [10.1, 7.1, 5.9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [7.1, 1.1, 5.9]}, + "from": [6, 7.1, 3.6], + "to": [10, 7.1, 5.6], + "rotation": {"angle": 22.5, "axis": "x", "origin": [7, 1.1, 5.6]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "up": {"uv": [9.25, 7.75, 8.25, 7.25], "texture": "#0"}, - "down": {"uv": [9.25, 7.25, 8.25, 7.75], "texture": "#0"} + "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "up": {"uv": [7.75, 7.75, 6.75, 7.25], "texture": "#1"}, + "down": {"uv": [8.25, 6.75, 7.25, 7.25], "texture": "#1"} } }, { "name": "Egg", - "from": [7, 7, 7], - "to": [9, 10, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [7, 1, 7]}, + "from": [9.8, 6.3, 7], + "to": [11.8, 9.3, 9], + "rotation": {"angle": 22.5, "axis": "z", "origin": [9.8, 0.3, 7]}, "faces": { - "north": {"uv": [7.5, 4.5, 8, 5.25], "texture": "#0"}, - "east": {"uv": [6.5, 7.5, 7, 8.25], "texture": "#0"}, - "south": {"uv": [7.75, 0, 8.25, 0.75], "texture": "#0"}, - "west": {"uv": [7.75, 0.75, 8.25, 1.5], "texture": "#0"}, - "up": {"uv": [3.5, 8.25, 3, 7.75], "texture": "#0"}, - "down": {"uv": [5, 7.75, 4.5, 8.25], "texture": "#0"} + "north": {"uv": [7.75, 1, 8.25, 1.75], "texture": "#1"}, + "east": {"uv": [7.75, 1.75, 8.25, 2.5], "texture": "#1"}, + "south": {"uv": [7.75, 2.5, 8.25, 3.25], "texture": "#1"}, + "west": {"uv": [3, 7.75, 3.5, 8.5], "texture": "#1"}, + "up": {"uv": [4, 8.25, 3.5, 7.75], "texture": "#1"}, + "down": {"uv": [7.25, 7.75, 6.75, 8.25], "texture": "#1"} } }, { - "from": [12, 6, 7], - "to": [14, 17, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 7, 7]}, + "from": [12, 6, 6.9], + "to": [14, 14, 8.9], + "rotation": {"angle": 22.5, "axis": "x", "origin": [9, 7, 6.9]}, "faces": { - "north": {"uv": [5, 5.75, 5.5, 8.5], "texture": "#0"}, - "east": {"uv": [5.5, 5.75, 6, 8.5], "texture": "#0"}, - "south": {"uv": [6, 5.75, 6.5, 8.5], "texture": "#0"}, - "west": {"uv": [0, 6.25, 0.5, 9], "texture": "#0"}, - "up": {"uv": [8.25, 6.25, 7.75, 5.75], "texture": "#0"}, - "down": {"uv": [8.25, 6.25, 7.75, 6.75], "texture": "#0"} + "north": {"uv": [1, 6.25, 1.5, 8.25], "texture": "#1"}, + "east": {"uv": [1.5, 6.25, 2, 8.25], "texture": "#1"}, + "south": {"uv": [2, 6.25, 2.5, 8.25], "texture": "#1"}, + "west": {"uv": [2.5, 6.75, 3, 8.75], "texture": "#1"}, + "up": {"uv": [7.75, 8.25, 7.25, 7.75], "texture": "#1"}, + "down": {"uv": [8.25, 7.25, 7.75, 7.75], "texture": "#1"} } }, { - "from": [7, 15, 7], - "to": [12, 17, 9], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 7]}, + "from": [10.9, 6, 6.1], + "to": [14.9, 7, 10.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8.9, 7, 7.1]}, "faces": { - "north": {"uv": [6.5, 5.25, 7.75, 5.75], "texture": "#0"}, - "east": {"uv": [7, 7.75, 7.5, 8.25], "texture": "#0"}, - "south": {"uv": [6.5, 5.75, 7.75, 6.25], "texture": "#0"}, - "west": {"uv": [7.5, 7.75, 8, 8.25], "texture": "#0"}, - "up": {"uv": [7.75, 6.75, 6.5, 6.25], "texture": "#0"}, - "down": {"uv": [3.75, 6.75, 2.5, 7.25], "texture": "#0"} + "north": {"uv": [7.75, 7.75, 8.75, 8], "texture": "#1"}, + "east": {"uv": [4, 8, 5, 8.25], "texture": "#1"}, + "south": {"uv": [5, 8, 6, 8.25], "texture": "#1"}, + "west": {"uv": [7.75, 8, 8.75, 8.25], "texture": "#1"}, + "up": {"uv": [7.5, 5.25, 6.5, 4.25], "texture": "#1"}, + "down": {"uv": [4, 6.75, 3, 7.75], "texture": "#1"} } }, { - "from": [7.5, 13, 7.5], - "to": [8.5, 15, 8.5], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 8, 6.5]}, + "from": [9.3, 11.7, 8.1], + "to": [14.3, 13.7, 10.1], + "rotation": {"angle": -22.5, "axis": "y", "origin": [10.3, 6.7, 8.1]}, "faces": { - "north": {"uv": [1.25, 7.5, 1.5, 8], "texture": "#0"}, - "east": {"uv": [3.5, 7.75, 3.75, 8.25], "texture": "#0"}, - "south": {"uv": [0.5, 8, 0.75, 8.5], "texture": "#0"}, - "west": {"uv": [0.75, 8, 1, 8.5], "texture": "#0"}, - "up": {"uv": [7.25, 4.25, 7, 4], "texture": "#0"}, - "down": {"uv": [7.5, 4, 7.25, 4.25], "texture": "#0"} + "north": {"uv": [6.5, 5.25, 7.75, 5.75], "texture": "#1"}, + "east": {"uv": [6, 8, 6.5, 8.5], "texture": "#1"}, + "south": {"uv": [6, 6.75, 7.25, 7.25], "texture": "#1"}, + "west": {"uv": [0, 8.25, 0.5, 8.75], "texture": "#1"}, + "up": {"uv": [8.25, 0.5, 7, 0], "texture": "#1"}, + "down": {"uv": [8.25, 0.5, 7, 1], "texture": "#1"} } }, { - "from": [7.5, 11, 8], - "to": [8.5, 13, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 6, 6.5]}, + "from": [6.4, 11.2, 8.2], + "to": [7.4, 13.2, 9.2], + "rotation": {"angle": -22.5, "axis": "z", "origin": [7.4, 6.2, 7.2]}, "faces": { - "north": {"uv": [1, 8, 1.25, 8.5], "texture": "#0"}, - "east": {"uv": [0, 0, 0, 0.5], "texture": "#0"}, - "south": {"uv": [1.25, 8, 1.5, 8.5], "texture": "#0"}, - "west": {"uv": [0, 0, 0, 0.5], "texture": "#0"}, - "up": {"uv": [0.25, 0, 0, 0], "texture": "#0"}, - "down": {"uv": [0.25, 0, 0, 0], "texture": "#0"} + "north": {"uv": [0.75, 7.75, 1, 8.25], "texture": "#1"}, + "east": {"uv": [6.5, 8, 6.75, 8.5], "texture": "#1"}, + "south": {"uv": [8.25, 0, 8.5, 0.5], "texture": "#1"}, + "west": {"uv": [0.5, 8.25, 0.75, 8.75], "texture": "#1"}, + "up": {"uv": [5, 7, 4.75, 6.75], "texture": "#1"}, + "down": {"uv": [6, 7, 5.75, 7.25], "texture": "#1"} + } + }, + { + "from": [6.4, 10.2, 8.7], + "to": [7.4, 11.2, 8.7], + "rotation": {"angle": -22.5, "axis": "z", "origin": [7.4, 6.2, 7.2]}, + "faces": { + "north": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#1"}, + "east": {"uv": [0, 0, 0, 0.25], "texture": "#1"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#1"}, + "west": {"uv": [0, 0, 0, 0.25], "texture": "#1"}, + "up": {"uv": [0.25, 0, 0, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 0.25, 0], "texture": "#1"} } }, { @@ -184,12 +197,12 @@ "to": [13, 6, 5], "rotation": {"angle": 22.5, "axis": "x", "origin": [7, 0, 4]}, "faces": { - "north": {"uv": [3.5, 3, 6, 4.25], "texture": "#0"}, - "east": {"uv": [6, 3, 7, 4.25], "texture": "#0"}, - "south": {"uv": [0, 4, 2.5, 5.25], "texture": "#0"}, - "west": {"uv": [0.5, 6.25, 1.5, 7.5], "texture": "#0"}, - "up": {"uv": [2.5, 6.25, 0, 5.25], "texture": "#0"}, - "down": {"uv": [5, 5.75, 2.5, 6.75], "texture": "#0"} + "north": {"uv": [3.5, 3, 6, 4.25], "texture": "#1"}, + "east": {"uv": [5, 5.75, 6, 7], "texture": "#1"}, + "south": {"uv": [0, 4, 2.5, 5.25], "texture": "#1"}, + "west": {"uv": [6, 3, 7, 4.25], "texture": "#1"}, + "up": {"uv": [2.5, 6.25, 0, 5.25], "texture": "#1"}, + "down": {"uv": [5, 5.75, 2.5, 6.75], "texture": "#1"} } } ], @@ -228,8 +241,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/white_embryonic_machine.json b/common/src/main/resources/assets/jurassicrevived/models/block/white_embryonic_machine.json index 835ebfe..e0c7d58 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/white_embryonic_machine.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/white_embryonic_machine.json @@ -5,7 +5,7 @@ "render_type": "cutout", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/white_embryonic_machine", + "1": "jurassicrevived:block/white_embryonic_machine", "particle": "jurassicrevived:block/white_embryonic_machine" }, "elements": [ @@ -14,168 +14,168 @@ "to": [15, 4, 16], "rotation": {"angle": 0, "axis": "y", "origin": [7, 1, 7]}, "faces": { - "north": {"uv": [6.5, 5, 10, 5.75], "texture": "#0"}, - "east": {"uv": [6.5, 6.5, 9, 7.25], "texture": "#0"}, - "south": {"uv": [6.5, 5.75, 10, 6.5], "texture": "#0"}, - "west": {"uv": [7, 0, 9.5, 0.75], "texture": "#0"}, - "up": {"uv": [3.5, 2.5, 0, 0], "texture": "#0"}, - "down": {"uv": [3.5, 2.5, 0, 5], "texture": "#0"} + "north": {"uv": [6.5, 5, 10, 5.75], "texture": "#1"}, + "east": {"uv": [6.5, 6.5, 9, 7.25], "texture": "#1"}, + "south": {"uv": [6.5, 5.75, 10, 6.5], "texture": "#1"}, + "west": {"uv": [7, 0, 9.5, 0.75], "texture": "#1"}, + "up": {"uv": [3.5, 2.5, 0, 0], "texture": "#1"}, + "down": {"uv": [3.5, 2.5, 0, 5], "texture": "#1"} } }, { - "from": [10.3, 4, 9], - "to": [12.3, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [9.3, 4, 7]}, + "from": [10.3, 4, 8.7], + "to": [12.3, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [9.3, 4, 6.7]}, "faces": { - "north": {"uv": [3, 9.5, 3.5, 9.75], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [3.5, 9.5, 4, 9.75], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [7, 7.25, 6.5, 9], "texture": "#0"} + "north": {"uv": [3, 9.5, 3.5, 9.75], "texture": "#1"}, + "east": {"uv": [8, 4.25, 9.75, 4.5], "texture": "#1"}, + "south": {"uv": [3.5, 9.5, 4, 9.75], "texture": "#1"}, + "west": {"uv": [8, 7.25, 9.75, 7.5], "texture": "#1"}, + "up": {"uv": [7.5, 4.5, 7, 2.75], "texture": "#1"}, + "down": {"uv": [7, 7.25, 6.5, 9], "texture": "#1"} } }, { - "from": [12.5, 4, 9], - "to": [14.5, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [11.5, 4, 7]}, + "from": [12.5, 4, 8.7], + "to": [14.5, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [11.5, 4, 6.7]}, "faces": { - "north": {"uv": [4, 9.5, 4.5, 9.75], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [4.5, 9.5, 5, 9.75], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [8, 2.75, 7.5, 4.5], "texture": "#0"} + "north": {"uv": [4, 9.5, 4.5, 9.75], "texture": "#1"}, + "east": {"uv": [8, 7.5, 9.75, 7.75], "texture": "#1"}, + "south": {"uv": [4.5, 9.5, 5, 9.75], "texture": "#1"}, + "west": {"uv": [8, 7.75, 9.75, 8], "texture": "#1"}, + "up": {"uv": [7.5, 9, 7, 7.25], "texture": "#1"}, + "down": {"uv": [8, 2.75, 7.5, 4.5], "texture": "#1"} } }, { - "from": [3.7, 4, 9], - "to": [5.7, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [2.7, 4, 7]}, + "from": [3.7, 4, 8.7], + "to": [5.7, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [2.7, 4, 6.7]}, "faces": { - "north": {"uv": [9.5, 6.5, 10, 6.75], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [9.5, 6.75, 10, 7], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [0.5, 7.75, 0, 9.5], "texture": "#0"} + "north": {"uv": [9.5, 6.5, 10, 6.75], "texture": "#1"}, + "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#1"}, + "south": {"uv": [9.5, 6.75, 10, 7], "texture": "#1"}, + "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#1"}, + "up": {"uv": [8, 9, 7.5, 7.25], "texture": "#1"}, + "down": {"uv": [0.5, 7.75, 0, 9.5], "texture": "#1"} } }, { - "from": [1.5, 4, 9], - "to": [3.5, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 4, 7]}, + "from": [1.5, 4, 8.7], + "to": [3.5, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 4, 6.7]}, "faces": { - "north": {"uv": [9.5, 7, 10, 7.25], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [9.25, 9.5, 9.75, 9.75], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [1.5, 7.75, 1, 9.5], "texture": "#0"} + "north": {"uv": [9.5, 7, 10, 7.25], "texture": "#1"}, + "east": {"uv": [8, 8.25, 9.75, 8.5], "texture": "#1"}, + "south": {"uv": [9.25, 9.5, 9.75, 9.75], "texture": "#1"}, + "west": {"uv": [3.5, 8.5, 5.25, 8.75], "texture": "#1"}, + "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#1"}, + "down": {"uv": [1.5, 7.75, 1, 9.5], "texture": "#1"} } }, { - "from": [3.7, 2.225, 6.7], - "to": [5.7, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [2.7, 2.225, 4.7]}, + "from": [3.725, 2.2, 6.525], + "to": [5.675, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [2.7, 2.175, 4.5]}, "faces": { - "north": {"uv": [0, 9.75, 0.5, 10], "texture": "#0"}, - "east": {"uv": [3.5, 9.25, 4.25, 9.5], "texture": "#0"}, - "south": {"uv": [0.5, 9.75, 1, 10], "texture": "#0"}, - "west": {"uv": [9.25, 4, 10, 4.25], "texture": "#0"}, - "up": {"uv": [5.75, 9, 5.25, 8.25], "texture": "#0"}, - "down": {"uv": [6.25, 8.25, 5.75, 9], "texture": "#0"} + "north": {"uv": [0, 9.75, 0.5, 10], "texture": "#1"}, + "east": {"uv": [3.5, 9.25, 4.25, 9.5], "texture": "#1"}, + "south": {"uv": [0.5, 9.75, 1, 10], "texture": "#1"}, + "west": {"uv": [9.25, 4, 10, 4.25], "texture": "#1"}, + "up": {"uv": [5.75, 9, 5.25, 8.25], "texture": "#1"}, + "down": {"uv": [6.25, 8.25, 5.75, 9], "texture": "#1"} } }, { - "from": [10.3, 2.225, 6.7], - "to": [12.3, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [9.3, 2.225, 4.7]}, + "from": [10.325, 2.2, 6.525], + "to": [12.275, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [9.3, 2.175, 4.5]}, "faces": { - "north": {"uv": [1, 9.75, 1.5, 10], "texture": "#0"}, - "east": {"uv": [4.25, 9.25, 5, 9.5], "texture": "#0"}, - "south": {"uv": [1.5, 9.75, 2, 10], "texture": "#0"}, - "west": {"uv": [9.25, 9, 10, 9.25], "texture": "#0"}, - "up": {"uv": [5.75, 9.75, 5.25, 9], "texture": "#0"}, - "down": {"uv": [6.25, 9, 5.75, 9.75], "texture": "#0"} + "north": {"uv": [1, 9.75, 1.5, 10], "texture": "#1"}, + "east": {"uv": [4.25, 9.25, 5, 9.5], "texture": "#1"}, + "south": {"uv": [1.5, 9.75, 2, 10], "texture": "#1"}, + "west": {"uv": [9.25, 9, 10, 9.25], "texture": "#1"}, + "up": {"uv": [5.75, 9.75, 5.25, 9], "texture": "#1"}, + "down": {"uv": [6.25, 9, 5.75, 9.75], "texture": "#1"} } }, { - "from": [8.1, 4, 9], - "to": [10.1, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [7.1, 4, 7]}, + "from": [8.1, 4, 8.7], + "to": [10.1, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [7.1, 4, 6.7]}, "faces": { - "north": {"uv": [2, 9.75, 2.5, 10], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [2.5, 9.75, 3, 10], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [2.5, 7.75, 2, 9.5], "texture": "#0"} + "north": {"uv": [2, 9.75, 2.5, 10], "texture": "#1"}, + "east": {"uv": [8, 8.5, 9.75, 8.75], "texture": "#1"}, + "south": {"uv": [2.5, 9.75, 3, 10], "texture": "#1"}, + "west": {"uv": [3.5, 8.75, 5.25, 9], "texture": "#1"}, + "up": {"uv": [2, 9.5, 1.5, 7.75], "texture": "#1"}, + "down": {"uv": [2.5, 7.75, 2, 9.5], "texture": "#1"} } }, { - "from": [8.1, 2.225, 6.7], - "to": [10.1, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [7.1, 2.225, 4.7]}, + "from": [8.125, 2.2, 6.525], + "to": [10.075, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [7.1, 2.175, 4.5]}, "faces": { - "north": {"uv": [3, 9.75, 3.5, 10], "texture": "#0"}, - "east": {"uv": [9.25, 9.25, 10, 9.5], "texture": "#0"}, - "south": {"uv": [9.75, 3.25, 10.25, 3.5], "texture": "#0"}, - "west": {"uv": [0, 9.5, 0.75, 9.75], "texture": "#0"}, - "up": {"uv": [6.75, 9.75, 6.25, 9], "texture": "#0"}, - "down": {"uv": [9.5, 6.5, 9, 7.25], "texture": "#0"} + "north": {"uv": [3, 9.75, 3.5, 10], "texture": "#1"}, + "east": {"uv": [9.25, 9.25, 10, 9.5], "texture": "#1"}, + "south": {"uv": [9.75, 3.25, 10.25, 3.5], "texture": "#1"}, + "west": {"uv": [0, 9.5, 0.75, 9.75], "texture": "#1"}, + "up": {"uv": [6.75, 9.75, 6.25, 9], "texture": "#1"}, + "down": {"uv": [9.5, 6.5, 9, 7.25], "texture": "#1"} } }, { - "from": [5.9, 4, 9], - "to": [7.9, 5, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [4.9, 4, 7]}, + "from": [5.9, 4, 8.7], + "to": [7.9, 5, 15.7], + "rotation": {"angle": 0, "axis": "y", "origin": [4.9, 4, 6.7]}, "faces": { - "north": {"uv": [3.5, 9.75, 4, 10], "texture": "#0"}, - "east": {"uv": [8, 8, 9.75, 8.25], "texture": "#0"}, - "south": {"uv": [9.75, 3.5, 10.25, 3.75], "texture": "#0"}, - "west": {"uv": [3.5, 8.25, 5.25, 8.5], "texture": "#0"}, - "up": {"uv": [1, 9.5, 0.5, 7.75], "texture": "#0"}, - "down": {"uv": [3.5, 7.75, 3, 9.5], "texture": "#0"} + "north": {"uv": [3.5, 9.75, 4, 10], "texture": "#1"}, + "east": {"uv": [8, 8.75, 9.75, 9], "texture": "#1"}, + "south": {"uv": [9.75, 3.5, 10.25, 3.75], "texture": "#1"}, + "west": {"uv": [3.5, 9, 5.25, 9.25], "texture": "#1"}, + "up": {"uv": [3, 9.5, 2.5, 7.75], "texture": "#1"}, + "down": {"uv": [3.5, 7.75, 3, 9.5], "texture": "#1"} } }, { - "from": [5.9, 2.225, 6.7], - "to": [7.9, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [4.9, 2.225, 4.7]}, + "from": [5.925, 2.2, 6.525], + "to": [7.875, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [4.9, 2.175, 4.5]}, "faces": { - "north": {"uv": [9.75, 3.75, 10.25, 4], "texture": "#0"}, - "east": {"uv": [9.5, 0, 10.25, 0.25], "texture": "#0"}, - "south": {"uv": [4, 9.75, 4.5, 10], "texture": "#0"}, - "west": {"uv": [9.5, 0.25, 10.25, 0.5], "texture": "#0"}, - "up": {"uv": [7.25, 9.75, 6.75, 9], "texture": "#0"}, - "down": {"uv": [7.75, 9, 7.25, 9.75], "texture": "#0"} + "north": {"uv": [9.75, 3.75, 10.25, 4], "texture": "#1"}, + "east": {"uv": [9.5, 0, 10.25, 0.25], "texture": "#1"}, + "south": {"uv": [4, 9.75, 4.5, 10], "texture": "#1"}, + "west": {"uv": [9.5, 0.25, 10.25, 0.5], "texture": "#1"}, + "up": {"uv": [7.25, 9.75, 6.75, 9], "texture": "#1"}, + "down": {"uv": [7.75, 9, 7.25, 9.75], "texture": "#1"} } }, { - "from": [12.5, 2.225, 6.7], - "to": [14.5, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [11.5, 2.225, 4.7]}, + "from": [12.525, 2.2, 6.525], + "to": [14.475, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [11.5, 2.175, 4.5]}, "faces": { - "north": {"uv": [9.75, 4.25, 10.25, 4.5], "texture": "#0"}, - "east": {"uv": [9.5, 0.5, 10.25, 0.75], "texture": "#0"}, - "south": {"uv": [4.5, 9.75, 5, 10], "texture": "#0"}, - "west": {"uv": [0.75, 9.5, 1.5, 9.75], "texture": "#0"}, - "up": {"uv": [8.25, 9.75, 7.75, 9], "texture": "#0"}, - "down": {"uv": [8.75, 9, 8.25, 9.75], "texture": "#0"} + "north": {"uv": [9.75, 4.25, 10.25, 4.5], "texture": "#1"}, + "east": {"uv": [9.5, 0.5, 10.25, 0.75], "texture": "#1"}, + "south": {"uv": [4.5, 9.75, 5, 10], "texture": "#1"}, + "west": {"uv": [0.75, 9.5, 1.5, 9.75], "texture": "#1"}, + "up": {"uv": [8.25, 9.75, 7.75, 9], "texture": "#1"}, + "down": {"uv": [8.75, 9, 8.25, 9.75], "texture": "#1"} } }, { - "from": [1.5, 2.225, 6.7], - "to": [3.5, 3.225, 9.7], - "rotation": {"angle": -22.5, "axis": "x", "origin": [0.5, 2.225, 4.7]}, + "from": [1.525, 2.2, 6.525], + "to": [3.475, 3.15, 9.475], + "rotation": {"angle": -22.5, "axis": "x", "origin": [0.5, 2.175, 4.5]}, "faces": { - "north": {"uv": [5, 9.75, 5.5, 10], "texture": "#0"}, - "east": {"uv": [1.5, 9.5, 2.25, 9.75], "texture": "#0"}, - "south": {"uv": [5.5, 9.75, 6, 10], "texture": "#0"}, - "west": {"uv": [2.25, 9.5, 3, 9.75], "texture": "#0"}, - "up": {"uv": [9.25, 9.75, 8.75, 9], "texture": "#0"}, - "down": {"uv": [9.75, 3.25, 9.25, 4], "texture": "#0"} + "north": {"uv": [5, 9.75, 5.5, 10], "texture": "#1"}, + "east": {"uv": [1.5, 9.5, 2.25, 9.75], "texture": "#1"}, + "south": {"uv": [5.5, 9.75, 6, 10], "texture": "#1"}, + "west": {"uv": [2.25, 9.5, 3, 9.75], "texture": "#1"}, + "up": {"uv": [9.25, 9.75, 8.75, 9], "texture": "#1"}, + "down": {"uv": [9.75, 3.25, 9.25, 4], "texture": "#1"} } }, { @@ -183,12 +183,12 @@ "to": [14.4, 0.8, 8.5], "rotation": {"angle": -22.5, "axis": "x", "origin": [7.5, -2.1, -0.4]}, "faces": { - "north": {"uv": [7, 0.75, 10.25, 1.25], "texture": "#0"}, - "east": {"uv": [3.5, 7.75, 5, 8.25], "texture": "#0"}, - "south": {"uv": [7, 1.25, 10.25, 1.75], "texture": "#0"}, - "west": {"uv": [5, 7.75, 6.5, 8.25], "texture": "#0"}, - "up": {"uv": [3.25, 6.5, 0, 5], "texture": "#0"}, - "down": {"uv": [6.5, 5, 3.25, 6.5], "texture": "#0"} + "north": {"uv": [7, 0.75, 10.25, 1.25], "texture": "#1"}, + "east": {"uv": [3.5, 7.75, 5, 8.25], "texture": "#1"}, + "south": {"uv": [7, 1.25, 10.25, 1.75], "texture": "#1"}, + "west": {"uv": [5, 7.75, 6.5, 8.25], "texture": "#1"}, + "up": {"uv": [3.25, 6.5, 0, 5], "texture": "#1"}, + "down": {"uv": [6.5, 5, 3.25, 6.5], "texture": "#1"} } }, { @@ -196,12 +196,12 @@ "to": [15, 1, 16], "rotation": {"angle": 0, "axis": "y", "origin": [7, 1, 7]}, "faces": { - "north": {"uv": [7, 4.5, 10.5, 4.75], "texture": "#0"}, - "east": {"uv": [8, 2.75, 10.5, 3], "texture": "#0"}, - "south": {"uv": [7, 4.75, 10.5, 5], "texture": "#0"}, - "west": {"uv": [8, 3, 10.5, 3.25], "texture": "#0"}, - "up": {"uv": [7, 2.5, 3.5, 0], "texture": "#0"}, - "down": {"uv": [7, 2.5, 3.5, 5], "texture": "#0"} + "north": {"uv": [7, 4.5, 10.5, 4.75], "texture": "#1"}, + "east": {"uv": [8, 2.75, 10.5, 3], "texture": "#1"}, + "south": {"uv": [7, 4.75, 10.5, 5], "texture": "#1"}, + "west": {"uv": [8, 3, 10.5, 3.25], "texture": "#1"}, + "up": {"uv": [7, 2.5, 3.5, 0], "texture": "#1"}, + "down": {"uv": [7, 2.5, 3.5, 5], "texture": "#1"} } }, { @@ -209,12 +209,12 @@ "to": [14.5, 2, 6], "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 2, 11]}, "faces": { - "north": {"uv": [7, 1.75, 10.25, 2.25], "texture": "#0"}, - "east": {"uv": [8, 3.25, 9.25, 3.75], "texture": "#0"}, - "south": {"uv": [7, 2.25, 10.25, 2.75], "texture": "#0"}, - "west": {"uv": [8, 3.75, 9.25, 4.25], "texture": "#0"}, - "up": {"uv": [3.25, 7.75, 0, 6.5], "texture": "#0"}, - "down": {"uv": [6.5, 6.5, 3.25, 7.75], "texture": "#0"} + "north": {"uv": [7, 1.75, 10.25, 2.25], "texture": "#1"}, + "east": {"uv": [8, 3.25, 9.25, 3.75], "texture": "#1"}, + "south": {"uv": [7, 2.25, 10.25, 2.75], "texture": "#1"}, + "west": {"uv": [8, 3.75, 9.25, 4.25], "texture": "#1"}, + "up": {"uv": [3.25, 7.75, 0, 6.5], "texture": "#1"}, + "down": {"uv": [6.5, 6.5, 3.25, 7.75], "texture": "#1"} } } ], @@ -253,6 +253,7 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] } diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/white_fossil_cleaner.json b/common/src/main/resources/assets/jurassicrevived/models/block/white_fossil_cleaner.json index 4dee8e4..bc88a17 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/white_fossil_cleaner.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/white_fossil_cleaner.json @@ -5,7 +5,7 @@ "render_type": "cutout", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/white_fossil_cleaner", + "1": "jurassicrevived:block/white_fossil_cleaner", "particle": "jurassicrevived:block/white_fossil_cleaner" }, "elements": [ @@ -14,12 +14,12 @@ "to": [13, 3, 11], "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, "faces": { - "north": {"uv": [9, 4.25, 11.5, 5], "texture": "#0"}, - "east": {"uv": [2.75, 9.5, 5.25, 10.25], "texture": "#0"}, - "south": {"uv": [5.25, 9.5, 7.75, 10.25], "texture": "#0"}, - "west": {"uv": [7.75, 9.5, 10.25, 10.25], "texture": "#0"}, - "up": {"uv": [9, 5.25, 6.5, 2.75], "texture": "#0"}, - "down": {"uv": [10.75, 5.25, 8.25, 7.75], "texture": "#0"} + "north": {"uv": [9, 4.25, 11.5, 5], "texture": "#1"}, + "east": {"uv": [2.75, 9.5, 5.25, 10.25], "texture": "#1"}, + "south": {"uv": [5.25, 9.5, 7.75, 10.25], "texture": "#1"}, + "west": {"uv": [7.75, 9.5, 10.25, 10.25], "texture": "#1"}, + "up": {"uv": [9, 5.25, 6.5, 2.75], "texture": "#1"}, + "down": {"uv": [10.75, 5.25, 8.25, 7.75], "texture": "#1"} } }, { @@ -27,12 +27,12 @@ "to": [12, 5, 10.3], "rotation": {"angle": 0, "axis": "y", "origin": [7, 3, 6.3]}, "faces": { - "north": {"uv": [10, 1.5, 12, 2], "texture": "#0"}, - "east": {"uv": [6.5, 5.25, 8.25, 5.75], "texture": "#0"}, - "south": {"uv": [10, 2, 12, 2.5], "texture": "#0"}, - "west": {"uv": [2.75, 10.25, 4.5, 10.75], "texture": "#0"}, - "up": {"uv": [10.25, 9.5, 8.25, 7.75], "texture": "#0"}, - "down": {"uv": [2, 8.75, 0, 10.5], "texture": "#0"} + "north": {"uv": [10, 1.5, 12, 2], "texture": "#1"}, + "east": {"uv": [6.5, 5.25, 8.25, 5.75], "texture": "#1"}, + "south": {"uv": [10, 2, 12, 2.5], "texture": "#1"}, + "west": {"uv": [2.75, 10.25, 4.5, 10.75], "texture": "#1"}, + "up": {"uv": [10.25, 9.5, 8.25, 7.75], "texture": "#1"}, + "down": {"uv": [2, 8.75, 0, 10.5], "texture": "#1"} } }, { @@ -40,25 +40,25 @@ "to": [8.5, 11, 7], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 7, 7]}, "faces": { - "north": {"uv": [9, 10.25, 9.25, 11.25], "texture": "#0"}, - "east": {"uv": [9.25, 10.25, 9.5, 11.25], "texture": "#0"}, - "south": {"uv": [9.5, 10.25, 9.75, 11.25], "texture": "#0"}, - "west": {"uv": [10.25, 9.5, 10.5, 10.5], "texture": "#0"}, - "up": {"uv": [6.25, 3, 6, 2.75], "texture": "#0"}, - "down": {"uv": [6.25, 3, 6, 3.25], "texture": "#0"} + "north": {"uv": [9, 10.25, 9.25, 11.25], "texture": "#1"}, + "east": {"uv": [9.25, 10.25, 9.5, 11.25], "texture": "#1"}, + "south": {"uv": [9.5, 10.25, 9.75, 11.25], "texture": "#1"}, + "west": {"uv": [10.25, 9.5, 10.5, 10.5], "texture": "#1"}, + "up": {"uv": [6.25, 3, 6, 2.75], "texture": "#1"}, + "down": {"uv": [6.25, 3, 6, 3.25], "texture": "#1"} } }, { - "from": [7.5, 7, 4], + "from": [7.5, 8, 4], "to": [8.5, 11, 5], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 7, 7]}, "faces": { - "north": {"uv": [9.75, 10.25, 10, 11.25], "texture": "#0"}, - "east": {"uv": [10, 10.25, 10.25, 11.25], "texture": "#0"}, - "south": {"uv": [0, 10.5, 0.25, 11.5], "texture": "#0"}, - "west": {"uv": [0.25, 10.5, 0.5, 11.5], "texture": "#0"}, - "up": {"uv": [6.5, 3, 6.25, 2.75], "texture": "#0"}, - "down": {"uv": [6.5, 3, 6.25, 3.25], "texture": "#0"} + "north": {"uv": [0.5, 10.5, 0.75, 11.25], "texture": "#1"}, + "east": {"uv": [0.75, 10.5, 1, 11.25], "texture": "#1"}, + "south": {"uv": [1, 10.5, 1.25, 11.25], "texture": "#1"}, + "west": {"uv": [1.25, 10.5, 1.5, 11.25], "texture": "#1"}, + "up": {"uv": [6.5, 3, 6.25, 2.75], "texture": "#1"}, + "down": {"uv": [6.5, 3, 6.25, 3.25], "texture": "#1"} } }, { @@ -66,12 +66,12 @@ "to": [6.5, 10, 11], "rotation": {"angle": 0, "axis": "y", "origin": [5.5, 7, 7]}, "faces": { - "north": {"uv": [7.5, 10.5, 7.75, 10.75], "texture": "#0"}, - "east": {"uv": [6.5, 5.75, 8.25, 6], "texture": "#0"}, - "south": {"uv": [7.75, 10.5, 8, 10.75], "texture": "#0"}, - "west": {"uv": [9, 5, 10.75, 5.25], "texture": "#0"}, - "up": {"uv": [6.75, 12, 6.5, 10.25], "texture": "#0"}, - "down": {"uv": [7, 10.25, 6.75, 12], "texture": "#0"} + "north": {"uv": [7.5, 10.5, 7.75, 10.75], "texture": "#1"}, + "east": {"uv": [6.5, 5.75, 8.25, 6], "texture": "#1"}, + "south": {"uv": [7.75, 10.5, 8, 10.75], "texture": "#1"}, + "west": {"uv": [9, 5, 10.75, 5.25], "texture": "#1"}, + "up": {"uv": [6.75, 12, 6.5, 10.25], "texture": "#1"}, + "down": {"uv": [7, 10.25, 6.75, 12], "texture": "#1"} } }, { @@ -79,25 +79,25 @@ "to": [10.5, 10, 11], "rotation": {"angle": 0, "axis": "y", "origin": [9.5, 7, 7]}, "faces": { - "north": {"uv": [10.5, 7.75, 10.75, 8], "texture": "#0"}, - "east": {"uv": [10, 2.5, 11.75, 2.75], "texture": "#0"}, - "south": {"uv": [8, 10.5, 8.25, 10.75], "texture": "#0"}, - "west": {"uv": [7, 10.25, 8.75, 10.5], "texture": "#0"}, - "up": {"uv": [10.5, 9.5, 10.25, 7.75], "texture": "#0"}, - "down": {"uv": [9, 10.25, 8.75, 12], "texture": "#0"} + "north": {"uv": [10.5, 7.75, 10.75, 8], "texture": "#1"}, + "east": {"uv": [10, 2.5, 11.75, 2.75], "texture": "#1"}, + "south": {"uv": [8, 10.5, 8.25, 10.75], "texture": "#1"}, + "west": {"uv": [7, 10.25, 8.75, 10.5], "texture": "#1"}, + "up": {"uv": [10.5, 9.5, 10.25, 7.75], "texture": "#1"}, + "down": {"uv": [9, 10.25, 8.75, 12], "texture": "#1"} } }, { - "from": [7.5, 7, 10], + "from": [7.5, 8, 10], "to": [8.5, 11, 11], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 7, 11]}, "faces": { - "north": {"uv": [0.5, 10.5, 0.75, 11.5], "texture": "#0"}, - "east": {"uv": [0.75, 10.5, 1, 11.5], "texture": "#0"}, - "south": {"uv": [1, 10.5, 1.25, 11.5], "texture": "#0"}, - "west": {"uv": [1.25, 10.5, 1.5, 11.5], "texture": "#0"}, - "up": {"uv": [10.75, 8.25, 10.5, 8], "texture": "#0"}, - "down": {"uv": [8.5, 10.5, 8.25, 10.75], "texture": "#0"} + "north": {"uv": [1.5, 10.5, 1.75, 11.25], "texture": "#1"}, + "east": {"uv": [1.75, 10.5, 2, 11.25], "texture": "#1"}, + "south": {"uv": [7, 10.5, 7.25, 11.25], "texture": "#1"}, + "west": {"uv": [7.25, 10.5, 7.5, 11.25], "texture": "#1"}, + "up": {"uv": [10.75, 8.25, 10.5, 8], "texture": "#1"}, + "down": {"uv": [8.5, 10.5, 8.25, 10.75], "texture": "#1"} } }, { @@ -105,12 +105,12 @@ "to": [8.5, 11, 9], "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 7, 11]}, "faces": { - "north": {"uv": [1.5, 10.5, 1.75, 11.5], "texture": "#0"}, - "east": {"uv": [1.75, 10.5, 2, 11.5], "texture": "#0"}, - "south": {"uv": [7, 10.5, 7.25, 11.5], "texture": "#0"}, - "west": {"uv": [7.25, 10.5, 7.5, 11.5], "texture": "#0"}, - "up": {"uv": [10.75, 8.5, 10.5, 8.25], "texture": "#0"}, - "down": {"uv": [8.75, 10.5, 8.5, 10.75], "texture": "#0"} + "north": {"uv": [9.75, 10.25, 10, 11.25], "texture": "#1"}, + "east": {"uv": [10, 10.25, 10.25, 11.25], "texture": "#1"}, + "south": {"uv": [0, 10.5, 0.25, 11.5], "texture": "#1"}, + "west": {"uv": [0.25, 10.5, 0.5, 11.5], "texture": "#1"}, + "up": {"uv": [10.75, 8.5, 10.5, 8.25], "texture": "#1"}, + "down": {"uv": [8.75, 10.5, 8.5, 10.75], "texture": "#1"} } }, { @@ -118,12 +118,12 @@ "to": [7.5, 9.5, 5], "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 6.5, 7]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [10.75, 8.75, 10.5, 8.5], "texture": "#0"}, - "down": {"uv": [10.75, 8.75, 10.5, 9], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [10.75, 8.75, 10.5, 8.5], "texture": "#1"}, + "down": {"uv": [10.75, 8.75, 10.5, 9], "texture": "#1"} } }, { @@ -131,12 +131,12 @@ "to": [7.5, 9.5, 7], "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 6.5, 7]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [10.75, 9.25, 10.5, 9], "texture": "#0"}, - "down": {"uv": [10.75, 9.25, 10.5, 9.5], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [10.75, 9.25, 10.5, 9], "texture": "#1"}, + "down": {"uv": [10.75, 9.25, 10.5, 9.5], "texture": "#1"} } }, { @@ -144,12 +144,12 @@ "to": [7.5, 9.5, 9], "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 6.5, 11]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [10.75, 9.75, 10.5, 9.5], "texture": "#0"}, - "down": {"uv": [10.75, 9.75, 10.5, 10], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [10.75, 9.75, 10.5, 9.5], "texture": "#1"}, + "down": {"uv": [10.75, 9.75, 10.5, 10], "texture": "#1"} } }, { @@ -157,12 +157,12 @@ "to": [7.5, 9.5, 11], "rotation": {"angle": 0, "axis": "y", "origin": [6.5, 6.5, 11]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [10.75, 10.25, 10.5, 10], "texture": "#0"}, - "down": {"uv": [10.5, 10.5, 10.25, 10.75], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [10.75, 10.25, 10.5, 10], "texture": "#1"}, + "down": {"uv": [10.5, 10.5, 10.25, 10.75], "texture": "#1"} } }, { @@ -170,12 +170,12 @@ "to": [9.5, 9.5, 5], "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 6.5, 7]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [10.75, 10.5, 10.5, 10.25], "texture": "#0"}, - "down": {"uv": [10.75, 10.5, 10.5, 10.75], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [10.75, 10.5, 10.5, 10.25], "texture": "#1"}, + "down": {"uv": [10.75, 10.5, 10.5, 10.75], "texture": "#1"} } }, { @@ -183,12 +183,12 @@ "to": [9.5, 9.5, 7], "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 6.5, 7]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [3, 11, 2.75, 10.75], "texture": "#0"}, - "down": {"uv": [3.25, 10.75, 3, 11], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [3, 11, 2.75, 10.75], "texture": "#1"}, + "down": {"uv": [3.25, 10.75, 3, 11], "texture": "#1"} } }, { @@ -196,12 +196,12 @@ "to": [9.5, 9.5, 9], "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 6.5, 11]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [3.5, 11, 3.25, 10.75], "texture": "#0"}, - "down": {"uv": [3.75, 10.75, 3.5, 11], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [3.5, 11, 3.25, 10.75], "texture": "#1"}, + "down": {"uv": [3.75, 10.75, 3.5, 11], "texture": "#1"} } }, { @@ -209,12 +209,12 @@ "to": [9.5, 9.5, 11], "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 6.5, 11]}, "faces": { - "north": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.25, 0], "texture": "#0"}, - "up": {"uv": [4, 11, 3.75, 10.75], "texture": "#0"}, - "down": {"uv": [4.25, 10.75, 4, 11], "texture": "#0"} + "north": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 0.25, 0], "texture": "#1"}, + "up": {"uv": [4, 11, 3.75, 10.75], "texture": "#1"}, + "down": {"uv": [4.25, 10.75, 4, 11], "texture": "#1"} } }, { @@ -222,12 +222,12 @@ "to": [14, 11, 14], "rotation": {"angle": 0, "axis": "y", "origin": [17, 3, 7]}, "faces": { - "north": {"uv": [5.5, 10.25, 5.75, 13], "texture": "#0"}, - "east": {"uv": [0, 3.25, 3.25, 6], "texture": "#0"}, - "south": {"uv": [5.75, 10.25, 6, 13], "texture": "#0"}, - "west": {"uv": [3.25, 3.25, 6.5, 6], "texture": "#0"}, - "up": {"uv": [4.75, 13.5, 4.5, 10.25], "texture": "#0"}, - "down": {"uv": [5, 10.25, 4.75, 13.5], "texture": "#0"} + "north": {"uv": [5.5, 10.25, 5.75, 13], "texture": "#1"}, + "east": {"uv": [0, 3.25, 3.25, 6], "texture": "#1"}, + "south": {"uv": [5.75, 10.25, 6, 13], "texture": "#1"}, + "west": {"uv": [3.25, 3.25, 6.5, 6], "texture": "#1"}, + "up": {"uv": [4.75, 13.5, 4.5, 10.25], "texture": "#1"}, + "down": {"uv": [5, 10.25, 4.75, 13.5], "texture": "#1"} } }, { @@ -235,12 +235,12 @@ "to": [13, 11, 14], "rotation": {"angle": 0, "axis": "y", "origin": [9, 3, 7]}, "faces": { - "north": {"uv": [3.25, 6, 5.75, 8.75], "texture": "#0"}, - "east": {"uv": [9.25, 0, 10, 2.75], "texture": "#0"}, - "south": {"uv": [5.75, 6, 8.25, 8.75], "texture": "#0"}, - "west": {"uv": [2, 9.5, 2.75, 12.25], "texture": "#0"}, - "up": {"uv": [12.5, 0.75, 10, 0], "texture": "#0"}, - "down": {"uv": [12.5, 0.75, 10, 1.5], "texture": "#0"} + "north": {"uv": [3.25, 6, 5.75, 8.75], "texture": "#1"}, + "east": {"uv": [9.25, 0, 10, 2.75], "texture": "#1"}, + "south": {"uv": [5.75, 6, 8.25, 8.75], "texture": "#1"}, + "west": {"uv": [2, 9.5, 2.75, 12.25], "texture": "#1"}, + "up": {"uv": [12.5, 0.75, 10, 0], "texture": "#1"}, + "down": {"uv": [12.5, 0.75, 10, 1.5], "texture": "#1"} } }, { @@ -248,12 +248,12 @@ "to": [3, 11, 14], "rotation": {"angle": 0, "axis": "y", "origin": [7, 3, 7]}, "faces": { - "north": {"uv": [6, 10.25, 6.25, 13], "texture": "#0"}, - "east": {"uv": [0, 6, 3.25, 8.75], "texture": "#0"}, - "south": {"uv": [6.25, 10.25, 6.5, 13], "texture": "#0"}, - "west": {"uv": [6, 0, 9.25, 2.75], "texture": "#0"}, - "up": {"uv": [5.25, 13.5, 5, 10.25], "texture": "#0"}, - "down": {"uv": [5.5, 10.25, 5.25, 13.5], "texture": "#0"} + "north": {"uv": [6, 10.25, 6.25, 13], "texture": "#1"}, + "east": {"uv": [0, 6, 3.25, 8.75], "texture": "#1"}, + "south": {"uv": [6.25, 10.25, 6.5, 13], "texture": "#1"}, + "west": {"uv": [6, 0, 9.25, 2.75], "texture": "#1"}, + "up": {"uv": [5.25, 13.5, 5, 10.25], "texture": "#1"}, + "down": {"uv": [5.5, 10.25, 5.25, 13.5], "texture": "#1"} } }, { @@ -261,12 +261,12 @@ "to": [14, 14, 14], "rotation": {"angle": 0, "axis": "y", "origin": [7, 11, 7]}, "faces": { - "north": {"uv": [5.25, 8.75, 8.25, 9.5], "texture": "#0"}, - "east": {"uv": [2, 8.75, 5.25, 9.5], "texture": "#0"}, - "south": {"uv": [9, 3.5, 12, 4.25], "texture": "#0"}, - "west": {"uv": [9, 2.75, 12.25, 3.5], "texture": "#0"}, - "up": {"uv": [3, 3.25, 0, 0], "texture": "#0"}, - "down": {"uv": [6, 0, 3, 3.25], "texture": "#0"} + "north": {"uv": [5.25, 8.75, 8.25, 9.5], "texture": "#1"}, + "east": {"uv": [2, 8.75, 5.25, 9.5], "texture": "#1"}, + "south": {"uv": [9, 3.5, 12, 4.25], "texture": "#1"}, + "west": {"uv": [9, 2.75, 12.25, 3.5], "texture": "#1"}, + "up": {"uv": [3, 3.25, 0, 0], "texture": "#1"}, + "down": {"uv": [6, 0, 3, 3.25], "texture": "#1"} } } ], @@ -305,6 +305,7 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] } diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/white_fossil_grinder.json b/common/src/main/resources/assets/jurassicrevived/models/block/white_fossil_grinder.json index 1f4eb30..3f1e56c 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/white_fossil_grinder.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/white_fossil_grinder.json @@ -5,7 +5,7 @@ "render_type": "translucent", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/white_fossil_grinder", + "1": "jurassicrevived:block/white_fossil_grinder", "particle": "jurassicrevived:block/white_fossil_grinder" }, "elements": [ @@ -14,38 +14,25 @@ "to": [15, 2, 15], "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, "faces": { - "north": {"uv": [7, 6.25, 10.5, 6.75], "texture": "#0"}, - "east": {"uv": [7, 6.75, 10.5, 7.25], "texture": "#0"}, - "south": {"uv": [7, 7.25, 10.5, 7.75], "texture": "#0"}, - "west": {"uv": [7, 7.75, 10.5, 8.25], "texture": "#0"}, - "up": {"uv": [3.5, 3.5, 0, 0], "texture": "#0"}, - "down": {"uv": [3.5, 3.5, 0, 7], "texture": "#0"} + "north": {"uv": [7, 6.5, 10.5, 7], "texture": "#1"}, + "east": {"uv": [0, 8.25, 3.5, 8.75], "texture": "#1"}, + "south": {"uv": [3.5, 8.25, 7, 8.75], "texture": "#1"}, + "west": {"uv": [7, 8.25, 10.5, 8.75], "texture": "#1"}, + "up": {"uv": [3.5, 3.5, 0, 0], "texture": "#1"}, + "down": {"uv": [3.5, 3.5, 0, 7], "texture": "#1"} } }, { - "from": [6.6, 3.1, 3], - "to": [8.6, 3.1, 11], + "from": [3.6, 3.1, 3], + "to": [11.6, 3.1, 11], "rotation": {"angle": -45, "axis": "y", "origin": [6.6, 3.1, 8]}, "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 0], "texture": "#0"}, - "up": {"uv": [9.5, 2, 9, 0], "texture": "#0"}, - "down": {"uv": [9.5, 8.25, 9, 10.25], "texture": "#0"} - } - }, - { - "from": [3.6, 3.1, 6], - "to": [11.6, 3.1, 8], - "rotation": {"angle": -45, "axis": "y", "origin": [6.6, 3.1, 8]}, - "faces": { - "north": {"uv": [0, 0, 2, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#0"}, - "up": {"uv": [11, 2.5, 9, 2], "texture": "#0"}, - "down": {"uv": [11, 2.5, 9, 3], "texture": "#0"} + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "up": {"uv": [8, 2, 6, 0], "texture": "#1"}, + "down": {"uv": [8, 2, 6, 4], "texture": "#1"} } }, { @@ -53,12 +40,12 @@ "to": [8.6, 4, 8], "rotation": {"angle": -45, "axis": "y", "origin": [6.6, 2, 8]}, "faces": { - "north": {"uv": [6, 3.75, 6.5, 4.25], "texture": "#0"}, - "east": {"uv": [6.5, 3.75, 7, 4.25], "texture": "#0"}, - "south": {"uv": [10.25, 10, 10.75, 10.5], "texture": "#0"}, - "west": {"uv": [10.5, 3.75, 11, 4.25], "texture": "#0"}, - "up": {"uv": [11, 4.75, 10.5, 4.25], "texture": "#0"}, - "down": {"uv": [5.5, 10.5, 5, 11], "texture": "#0"} + "north": {"uv": [6, 4, 6.5, 4.5], "texture": "#1"}, + "east": {"uv": [6.5, 4, 7, 4.5], "texture": "#1"}, + "south": {"uv": [10, 6, 10.5, 6.5], "texture": "#1"}, + "west": {"uv": [8.5, 10.25, 9, 10.75], "texture": "#1"}, + "up": {"uv": [9.5, 10.75, 9, 10.25], "texture": "#1"}, + "down": {"uv": [10, 10.25, 9.5, 10.75], "texture": "#1"} } }, { @@ -66,77 +53,77 @@ "to": [15, 7, 15], "rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 7]}, "faces": { - "north": {"uv": [3.5, 4.5, 7, 5.75], "texture": "#0"}, - "east": {"uv": [5, 9.25, 5.5, 10.5], "texture": "#0"}, - "south": {"uv": [3.5, 5.75, 7, 7], "texture": "#0"}, - "west": {"uv": [5.5, 9.25, 6, 10.5], "texture": "#0"}, - "up": {"uv": [3.5, 8.75, 0, 8.25], "texture": "#0"}, - "down": {"uv": [7, 8.25, 3.5, 8.75], "texture": "#0"} + "north": {"uv": [3.5, 4.5, 7, 5.75], "texture": "#1"}, + "east": {"uv": [10, 1.75, 10.5, 3], "texture": "#1"}, + "south": {"uv": [3.5, 5.75, 7, 7], "texture": "#1"}, + "west": {"uv": [3, 10, 3.5, 11.25], "texture": "#1"}, + "up": {"uv": [12, 7.5, 8.5, 7], "texture": "#1"}, + "down": {"uv": [12, 7.5, 8.5, 8], "texture": "#1"} } }, { - "from": [13, 7.9, -2.1], - "to": [15, 8.9, 9.9], - "rotation": {"angle": 45, "axis": "x", "origin": [7, 0.9, 9.9]}, + "from": [12.975, 7.975, -2.325], + "to": [15.025, 9.025, 9.725], + "rotation": {"angle": 45, "axis": "x", "origin": [7, 1, 9.7]}, "faces": { - "north": {"uv": [6, 4.25, 6.5, 4.5], "texture": "#0"}, - "east": {"uv": [8.5, 6, 11.5, 6.25], "texture": "#0"}, - "south": {"uv": [6.5, 4.25, 7, 4.5], "texture": "#0"}, - "west": {"uv": [9, 3, 12, 3.25], "texture": "#0"}, - "up": {"uv": [7.5, 11.25, 7, 8.25], "texture": "#0"}, - "down": {"uv": [8, 8.25, 7.5, 11.25], "texture": "#0"} + "north": {"uv": [10, 10.25, 10.5, 10.5], "texture": "#1"}, + "east": {"uv": [8, 3.75, 11, 4], "texture": "#1"}, + "south": {"uv": [10.5, 0, 11, 0.25], "texture": "#1"}, + "west": {"uv": [8.5, 8, 11.5, 8.25], "texture": "#1"}, + "up": {"uv": [0.5, 11.75, 0, 8.75], "texture": "#1"}, + "down": {"uv": [1, 8.75, 0.5, 11.75], "texture": "#1"} } }, { - "from": [3, 7.9, 8.9], - "to": [13, 8.9, 9.9], - "rotation": {"angle": 45, "axis": "x", "origin": [7, 0.9, 9.9]}, + "from": [3, 8, 8.7], + "to": [13, 9, 9.7], + "rotation": {"angle": 45, "axis": "x", "origin": [7, 1, 9.7]}, "faces": { - "north": {"uv": [9.5, 0, 12, 0.25], "texture": "#0"}, - "east": {"uv": [9.25, 10.25, 9.5, 10.5], "texture": "#0"}, - "south": {"uv": [9.5, 0.25, 12, 0.5], "texture": "#0"}, - "west": {"uv": [6.5, 10.5, 6.75, 10.75], "texture": "#0"}, - "up": {"uv": [12, 0.75, 9.5, 0.5], "texture": "#0"}, - "down": {"uv": [12, 0.75, 9.5, 1], "texture": "#0"} + "north": {"uv": [10, 3, 12.5, 3.25], "texture": "#1"}, + "east": {"uv": [10.5, 1.75, 10.75, 2], "texture": "#1"}, + "south": {"uv": [10, 3.25, 12.5, 3.5], "texture": "#1"}, + "west": {"uv": [10.5, 2, 10.75, 2.25], "texture": "#1"}, + "up": {"uv": [12.5, 3.75, 10, 3.5], "texture": "#1"}, + "down": {"uv": [12.5, 4, 10, 4.25], "texture": "#1"} } }, { - "from": [3, 8.4, -0.1], - "to": [13, 8.4, 8.9], - "rotation": {"angle": 45, "axis": "x", "origin": [7, 0.9, 9.9]}, + "from": [3, 8.5, -0.3], + "to": [13, 8.5, 8.7], + "rotation": {"angle": 45, "axis": "x", "origin": [7, 1, 9.7]}, "faces": { - "north": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, - "east": {"uv": [0, 0, 2.25, 0], "texture": "#0"}, - "south": {"uv": [0, 0, 2.5, 0], "texture": "#0"}, - "west": {"uv": [0, 0, 2.25, 0], "texture": "#0"}, - "up": {"uv": [6, 2.25, 3.5, 0], "texture": "#0"}, - "down": {"uv": [6, 2.25, 3.5, 4.5], "texture": "#0"} + "north": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 2.25, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2.5, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 2.25, 0], "texture": "#1"}, + "up": {"uv": [6, 2.25, 3.5, 0], "texture": "#1"}, + "down": {"uv": [6, 2.25, 3.5, 4.5], "texture": "#1"} } }, { - "from": [3, 7.9, -2.1], - "to": [13, 8.9, -0.1], - "rotation": {"angle": 45, "axis": "x", "origin": [7, 0.9, 9.9]}, + "from": [3, 8, -2.3], + "to": [13, 9, -0.3], + "rotation": {"angle": 45, "axis": "x", "origin": [7, 1, 9.7]}, "faces": { - "north": {"uv": [9.5, 1, 12, 1.25], "texture": "#0"}, - "east": {"uv": [10.5, 4.75, 11, 5], "texture": "#0"}, - "south": {"uv": [9.5, 1.25, 12, 1.5], "texture": "#0"}, - "west": {"uv": [5.5, 10.5, 6, 10.75], "texture": "#0"}, - "up": {"uv": [11, 5.5, 8.5, 5], "texture": "#0"}, - "down": {"uv": [11, 5.5, 8.5, 6], "texture": "#0"} + "north": {"uv": [10, 4.25, 12.5, 4.5], "texture": "#1"}, + "east": {"uv": [10.5, 0.25, 11, 0.5], "texture": "#1"}, + "south": {"uv": [10, 4.5, 12.5, 4.75], "texture": "#1"}, + "west": {"uv": [10.5, 0.5, 11, 0.75], "texture": "#1"}, + "up": {"uv": [10.5, 9.25, 8, 8.75], "texture": "#1"}, + "down": {"uv": [10.5, 9.25, 8, 9.75], "texture": "#1"} } }, { - "from": [1, 7.9, -2.1], - "to": [3, 8.9, 9.9], - "rotation": {"angle": 45, "axis": "x", "origin": [7, 0.9, 9.9]}, + "from": [0.975, 7.975, -2.325], + "to": [3.025, 9.025, 9.725], + "rotation": {"angle": 45, "axis": "x", "origin": [7, 1, 9.7]}, "faces": { - "north": {"uv": [6, 10.5, 6.5, 10.75], "texture": "#0"}, - "east": {"uv": [9, 3.25, 12, 3.5], "texture": "#0"}, - "south": {"uv": [10.5, 6.25, 11, 6.5], "texture": "#0"}, - "west": {"uv": [9, 3.5, 12, 3.75], "texture": "#0"}, - "up": {"uv": [8.5, 11.25, 8, 8.25], "texture": "#0"}, - "down": {"uv": [9, 8.25, 8.5, 11.25], "texture": "#0"} + "north": {"uv": [10.5, 0.75, 11, 1], "texture": "#1"}, + "east": {"uv": [10, 1.25, 13, 1.5], "texture": "#1"}, + "south": {"uv": [10.5, 1, 11, 1.25], "texture": "#1"}, + "west": {"uv": [10, 1.5, 13, 1.75], "texture": "#1"}, + "up": {"uv": [1.5, 11.75, 1, 8.75], "texture": "#1"}, + "down": {"uv": [2, 8.75, 1.5, 11.75], "texture": "#1"} } }, { @@ -144,64 +131,12 @@ "to": [3, 7, 13], "rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 7]}, "faces": { - "north": {"uv": [6, 9.25, 6.5, 10.5], "texture": "#0"}, - "east": {"uv": [6, 0, 9, 1.25], "texture": "#0"}, - "south": {"uv": [6.5, 9.25, 7, 10.5], "texture": "#0"}, - "west": {"uv": [6, 1.25, 9, 2.5], "texture": "#0"}, - "up": {"uv": [0.5, 11.75, 0, 8.75], "texture": "#0"}, - "down": {"uv": [1, 8.75, 0.5, 11.75], "texture": "#0"} - } - }, - { - "from": [0, 0, 12], - "to": [1, 7, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 7]}, - "faces": { - "north": {"uv": [3.5, 9.75, 3.75, 11.5], "texture": "#0"}, - "east": {"uv": [3.75, 9.75, 4, 11.5], "texture": "#0"}, - "south": {"uv": [4, 9.75, 4.25, 11.5], "texture": "#0"}, - "west": {"uv": [4.25, 9.75, 4.5, 11.5], "texture": "#0"}, - "up": {"uv": [10.75, 6.75, 10.5, 6.5], "texture": "#0"}, - "down": {"uv": [7, 10.5, 6.75, 10.75], "texture": "#0"} - } - }, - { - "from": [0, 0, 6], - "to": [1, 7, 7], - "rotation": {"angle": 0, "axis": "y", "origin": [7, 2, 1]}, - "faces": { - "north": {"uv": [4.5, 9.75, 4.75, 11.5], "texture": "#0"}, - "east": {"uv": [4.75, 9.75, 5, 11.5], "texture": "#0"}, - "south": {"uv": [10, 8.25, 10.25, 10], "texture": "#0"}, - "west": {"uv": [10, 10, 10.25, 11.75], "texture": "#0"}, - "up": {"uv": [10.75, 7, 10.5, 6.75], "texture": "#0"}, - "down": {"uv": [10.75, 7, 10.5, 7.25], "texture": "#0"} - } - }, - { - "from": [0.5, 5, 7], - "to": [1.5, 6, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [7.5, 2, 2]}, - "faces": { - "north": {"uv": [10.5, 7.25, 10.75, 7.5], "texture": "#0"}, - "east": {"uv": [9.5, 1.5, 10.75, 1.75], "texture": "#0"}, - "south": {"uv": [10.5, 7.5, 10.75, 7.75], "texture": "#0"}, - "west": {"uv": [9.5, 1.75, 10.75, 2], "texture": "#0"}, - "up": {"uv": [10.25, 5, 10, 3.75], "texture": "#0"}, - "down": {"uv": [10.5, 3.75, 10.25, 5], "texture": "#0"} - } - }, - { - "from": [0.5, 1, 7], - "to": [1.5, 2, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [7.5, -2, 2]}, - "faces": { - "north": {"uv": [10.5, 7.75, 10.75, 8], "texture": "#0"}, - "east": {"uv": [10.25, 8.25, 11.5, 8.5], "texture": "#0"}, - "south": {"uv": [10.5, 8, 10.75, 8.25], "texture": "#0"}, - "west": {"uv": [10.25, 8.5, 11.5, 8.75], "texture": "#0"}, - "up": {"uv": [10.5, 10, 10.25, 8.75], "texture": "#0"}, - "down": {"uv": [9.25, 10.25, 9, 11.5], "texture": "#0"} + "north": {"uv": [3.5, 10, 4, 11.25], "texture": "#1"}, + "east": {"uv": [0, 7, 3, 8.25], "texture": "#1"}, + "south": {"uv": [4, 10, 4.5, 11.25], "texture": "#1"}, + "west": {"uv": [3, 7, 6, 8.25], "texture": "#1"}, + "up": {"uv": [2.5, 11.75, 2, 8.75], "texture": "#1"}, + "down": {"uv": [3, 8.75, 2.5, 11.75], "texture": "#1"} } }, { @@ -209,25 +144,25 @@ "to": [13, 7, 3], "rotation": {"angle": 0, "axis": "y", "origin": [9, 2, 7]}, "faces": { - "north": {"uv": [3, 7, 5.5, 8.25], "texture": "#0"}, - "east": {"uv": [9.5, 3.75, 10, 5], "texture": "#0"}, - "south": {"uv": [7, 3.75, 9.5, 5], "texture": "#0"}, - "west": {"uv": [9.5, 8.25, 10, 9.5], "texture": "#0"}, - "up": {"uv": [4.5, 9.25, 2, 8.75], "texture": "#0"}, - "down": {"uv": [7, 8.75, 4.5, 9.25], "texture": "#0"} + "north": {"uv": [6, 7, 8.5, 8.25], "texture": "#1"}, + "east": {"uv": [4.5, 10, 5, 11.25], "texture": "#1"}, + "south": {"uv": [8, 0, 10.5, 1.25], "texture": "#1"}, + "west": {"uv": [10, 4.75, 10.5, 6], "texture": "#1"}, + "up": {"uv": [5.5, 10, 3, 9.5], "texture": "#1"}, + "down": {"uv": [10.5, 9.75, 8, 10.25], "texture": "#1"} } }, { - "from": [5, 1.3, -1.6], - "to": [11, 6.3, 0.4], + "from": [4, 1.3, -1.6], + "to": [12, 6.3, 1.4], "rotation": {"angle": 22.5, "axis": "x", "origin": [9, 1.3, 4.4]}, "faces": { - "north": {"uv": [7, 5, 8.5, 6.25], "texture": "#0"}, - "east": {"uv": [9.5, 9.5, 10, 10.75], "texture": "#0"}, - "south": {"uv": [5.5, 7, 7, 8.25], "texture": "#0"}, - "west": {"uv": [2, 9.75, 2.5, 11], "texture": "#0"}, - "up": {"uv": [3.5, 9.75, 2, 9.25], "texture": "#0"}, - "down": {"uv": [5, 9.25, 3.5, 9.75], "texture": "#0"} + "north": {"uv": [8, 1.25, 10, 2.5], "texture": "#1"}, + "east": {"uv": [5.5, 9.5, 6.25, 10.75], "texture": "#1"}, + "south": {"uv": [8, 2.5, 10, 3.75], "texture": "#1"}, + "west": {"uv": [6.25, 9.5, 7, 10.75], "texture": "#1"}, + "up": {"uv": [5, 9.5, 3, 8.75], "texture": "#1"}, + "down": {"uv": [7, 8.75, 5, 9.5], "texture": "#1"} } }, { @@ -235,12 +170,12 @@ "to": [15, 7, 13], "rotation": {"angle": 0, "axis": "y", "origin": [19, 2, 7]}, "faces": { - "north": {"uv": [2.5, 9.75, 3, 11], "texture": "#0"}, - "east": {"uv": [6, 2.5, 9, 3.75], "texture": "#0"}, - "south": {"uv": [3, 9.75, 3.5, 11], "texture": "#0"}, - "west": {"uv": [0, 7, 3, 8.25], "texture": "#0"}, - "up": {"uv": [1.5, 11.75, 1, 8.75], "texture": "#0"}, - "down": {"uv": [2, 8.75, 1.5, 11.75], "texture": "#0"} + "north": {"uv": [5, 10, 5.5, 11.25], "texture": "#1"}, + "east": {"uv": [7, 4, 10, 5.25], "texture": "#1"}, + "south": {"uv": [8, 10.25, 8.5, 11.5], "texture": "#1"}, + "west": {"uv": [7, 5.25, 10, 6.5], "texture": "#1"}, + "up": {"uv": [7.5, 11.75, 7, 8.75], "texture": "#1"}, + "down": {"uv": [8, 8.75, 7.5, 11.75], "texture": "#1"} } } ], @@ -279,8 +214,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/white_generator.json b/common/src/main/resources/assets/jurassicrevived/models/block/white_generator.json old mode 100755 new mode 100644 index c278242..4d37ab8 --- a/common/src/main/resources/assets/jurassicrevived/models/block/white_generator.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/white_generator.json @@ -5,164 +5,255 @@ "render_type": "cutout", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/white_generator", + "1": "jurassicrevived:block/white_generator", "particle": "jurassicrevived:block/white_generator" }, "elements": [ { - "from": [2, 0, 2], - "to": [14, 8, 14], + "from": [2, 0, 4], + "to": [14, 9, 14], "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, "faces": { - "north": {"uv": [3, 0, 6, 2], "texture": "#0"}, - "east": {"uv": [3, 2, 6, 4], "texture": "#0"}, - "south": {"uv": [3, 4, 6, 6], "texture": "#0"}, - "west": {"uv": [0, 6, 3, 8], "texture": "#0"}, - "up": {"uv": [3, 3, 0, 0], "texture": "#0"}, - "down": {"uv": [3, 3, 0, 6], "texture": "#0"} + "north": {"uv": [3, 0, 6, 2.25], "texture": "#1"}, + "east": {"uv": [3, 4.5, 5.5, 6.75], "texture": "#1"}, + "south": {"uv": [3, 2.25, 6, 4.5], "texture": "#1"}, + "west": {"uv": [0, 5, 2.5, 7.25], "texture": "#1"}, + "up": {"uv": [3, 2.5, 0, 0], "texture": "#1"}, + "down": {"uv": [3, 2.5, 0, 5], "texture": "#1"} } }, { - "from": [-1.425, 9.7, 3.5], - "to": [6.575, 17.7, 12.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.575, 7.7, -0.5]}, + "from": [2, 0, 2], + "to": [14, 2, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -9]}, "faces": { - "north": {"uv": [5, 6.25, 7, 8.25], "texture": "#0"}, - "east": {"uv": [6, 0, 8.25, 2], "texture": "#0"}, - "south": {"uv": [7, 6.25, 9, 8.25], "texture": "#0"}, - "west": {"uv": [6, 2, 8.25, 4], "texture": "#0"}, - "up": {"uv": [5, 8.25, 3, 6], "texture": "#0"}, - "down": {"uv": [8, 4, 6, 6.25], "texture": "#0"} + "north": {"uv": [7.75, 4.25, 10.75, 4.75], "texture": "#1"}, + "east": {"uv": [11.25, 10.5, 11.75, 11], "texture": "#1"}, + "south": {"uv": [7.75, 4.75, 10.75, 5.25], "texture": "#1"}, + "west": {"uv": [11.25, 11, 11.75, 11.5], "texture": "#1"}, + "up": {"uv": [10.75, 5.75, 7.75, 5.25], "texture": "#1"}, + "down": {"uv": [10.75, 5.75, 7.75, 6.25], "texture": "#1"} + } + }, + { + "from": [6, -4.175, 2.825], + "to": [10, -2.175, 4.825], + "rotation": {"angle": -22.5, "axis": "x", "origin": [0, -4.175, -8.175]}, + "faces": { + "north": {"uv": [10.5, 7.25, 11.5, 7.75], "texture": "#1"}, + "east": {"uv": [11.5, 2, 12, 2.5], "texture": "#1"}, + "south": {"uv": [10.75, 1.5, 11.75, 2], "texture": "#1"}, + "west": {"uv": [11.5, 2.5, 12, 3], "texture": "#1"}, + "up": {"uv": [11.75, 5.5, 10.75, 5], "texture": "#1"}, + "down": {"uv": [11.75, 5.5, 10.75, 6], "texture": "#1"} + } + }, + { + "from": [2, 2, 2], + "to": [5, 6, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, -9]}, + "faces": { + "north": {"uv": [10.5, 6.25, 11.25, 7.25], "texture": "#1"}, + "east": {"uv": [10.75, 10.5, 11.25, 11.5], "texture": "#1"}, + "south": {"uv": [7.5, 10.5, 8.25, 11.5], "texture": "#1"}, + "west": {"uv": [11, 2, 11.5, 3], "texture": "#1"}, + "up": {"uv": [12, 1.5, 11.25, 1], "texture": "#1"}, + "down": {"uv": [3.25, 11.25, 2.5, 11.75], "texture": "#1"} + } + }, + { + "from": [11, 2, 2], + "to": [14, 6, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 2, -9]}, + "faces": { + "north": {"uv": [8.25, 10.5, 9, 11.5], "texture": "#1"}, + "east": {"uv": [11.25, 0, 11.75, 1], "texture": "#1"}, + "south": {"uv": [9, 10.5, 9.75, 11.5], "texture": "#1"}, + "west": {"uv": [2, 11.25, 2.5, 12.25], "texture": "#1"}, + "up": {"uv": [4, 11.75, 3.25, 11.25], "texture": "#1"}, + "down": {"uv": [12, 3.5, 11.25, 4], "texture": "#1"} + } + }, + { + "from": [2, 6, 2], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 7, -9]}, + "faces": { + "north": {"uv": [7.5, 6.5, 10.5, 7.25], "texture": "#1"}, + "east": {"uv": [4, 11.25, 4.5, 12], "texture": "#1"}, + "south": {"uv": [7.5, 7.25, 10.5, 8], "texture": "#1"}, + "west": {"uv": [11.25, 4, 11.75, 4.75], "texture": "#1"}, + "up": {"uv": [11, 2.5, 8, 2], "texture": "#1"}, + "down": {"uv": [11, 2.5, 8, 3], "texture": "#1"} + } + }, + { + "from": [-1.425, 10.7, 3.5], + "to": [6.575, 18.7, 12.5], + "rotation": {"angle": -45, "axis": "z", "origin": [6.575, 8.7, -0.5]}, + "faces": { + "north": {"uv": [2.5, 6.75, 4.5, 8.75], "texture": "#1"}, + "east": {"uv": [5.5, 4.5, 7.75, 6.5], "texture": "#1"}, + "south": {"uv": [0, 7.25, 2, 9.25], "texture": "#1"}, + "west": {"uv": [6, 0, 8.25, 2], "texture": "#1"}, + "up": {"uv": [8, 4.25, 6, 2], "texture": "#1"}, + "down": {"uv": [7.5, 6.5, 5.5, 8.75], "texture": "#1"} } }, { "from": [1, 0, 1], - "to": [3, 9, 3], + "to": [3, 10, 3], "rotation": {"angle": 0, "axis": "y", "origin": [-1, 0, 0]}, "faces": { - "north": {"uv": [4, 8.75, 4.5, 11], "texture": "#0"}, - "east": {"uv": [4.5, 8.75, 5, 11], "texture": "#0"}, - "south": {"uv": [5, 8.75, 5.5, 11], "texture": "#0"}, - "west": {"uv": [5.5, 8.75, 6, 11], "texture": "#0"}, - "up": {"uv": [9.25, 2.5, 8.75, 2], "texture": "#0"}, - "down": {"uv": [9.75, 2, 9.25, 2.5], "texture": "#0"} + "north": {"uv": [4.5, 6.75, 5, 9.25], "texture": "#1"}, + "east": {"uv": [5, 6.75, 5.5, 9.25], "texture": "#1"}, + "south": {"uv": [2, 7.25, 2.5, 9.75], "texture": "#1"}, + "west": {"uv": [7.5, 8, 8, 10.5], "texture": "#1"}, + "up": {"uv": [12, 6.5, 11.5, 6], "texture": "#1"}, + "down": {"uv": [12, 6.5, 11.5, 7], "texture": "#1"} } }, { "from": [1, 0, 13], - "to": [3, 9, 15], + "to": [3, 10, 15], "rotation": {"angle": 0, "axis": "y", "origin": [-1, 0, 12]}, "faces": { - "north": {"uv": [6, 8.75, 6.5, 11], "texture": "#0"}, - "east": {"uv": [6.5, 8.75, 7, 11], "texture": "#0"}, - "south": {"uv": [7, 8.75, 7.5, 11], "texture": "#0"}, - "west": {"uv": [7.5, 8.75, 8, 11], "texture": "#0"}, - "up": {"uv": [10.25, 2.5, 9.75, 2], "texture": "#0"}, - "down": {"uv": [10.5, 6, 10, 6.5], "texture": "#0"} + "north": {"uv": [8, 8, 8.5, 10.5], "texture": "#1"}, + "east": {"uv": [8.5, 8, 9, 10.5], "texture": "#1"}, + "south": {"uv": [2.5, 8.75, 3, 11.25], "texture": "#1"}, + "west": {"uv": [3, 8.75, 3.5, 11.25], "texture": "#1"}, + "up": {"uv": [12, 7.5, 11.5, 7], "texture": "#1"}, + "down": {"uv": [7.75, 11.5, 7.25, 12], "texture": "#1"} } }, { "from": [13, 0, 13], - "to": [15, 9, 15], + "to": [15, 10, 15], "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 12]}, "faces": { - "north": {"uv": [8, 8.75, 8.5, 11], "texture": "#0"}, - "east": {"uv": [8.5, 8.75, 9, 11], "texture": "#0"}, - "south": {"uv": [0, 9, 0.5, 11.25], "texture": "#0"}, - "west": {"uv": [0.5, 9, 1, 11.25], "texture": "#0"}, - "up": {"uv": [10.5, 7, 10, 6.5], "texture": "#0"}, - "down": {"uv": [10.5, 7, 10, 7.5], "texture": "#0"} + "north": {"uv": [3.5, 8.75, 4, 11.25], "texture": "#1"}, + "east": {"uv": [4, 8.75, 4.5, 11.25], "texture": "#1"}, + "south": {"uv": [5.5, 8.75, 6, 11.25], "texture": "#1"}, + "west": {"uv": [6, 8.75, 6.5, 11.25], "texture": "#1"}, + "up": {"uv": [12, 8, 11.5, 7.5], "texture": "#1"}, + "down": {"uv": [8.25, 11.5, 7.75, 12], "texture": "#1"} } }, { - "from": [13, 7, 3], - "to": [15, 9, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [11, 8, 12]}, + "from": [1.2, 8.5, 3], + "to": [3.2, 10.5, 13], + "rotation": {"angle": -22.5, "axis": "z", "origin": [-0.8, 9.5, 12]}, "faces": { - "north": {"uv": [10, 7.5, 10.5, 8], "texture": "#0"}, - "east": {"uv": [0, 8, 2.5, 8.5], "texture": "#0"}, - "south": {"uv": [10, 8, 10.5, 8.5], "texture": "#0"}, - "west": {"uv": [8, 4, 10.5, 4.5], "texture": "#0"}, - "up": {"uv": [3, 10.5, 2.5, 8], "texture": "#0"}, - "down": {"uv": [8.75, 0, 8.25, 2.5], "texture": "#0"} + "north": {"uv": [8.25, 11.5, 8.75, 12], "texture": "#1"}, + "east": {"uv": [8, 3, 10.5, 3.5], "texture": "#1"}, + "south": {"uv": [8.75, 11.5, 9.25, 12], "texture": "#1"}, + "west": {"uv": [8, 3.5, 10.5, 4], "texture": "#1"}, + "up": {"uv": [7, 11.25, 6.5, 8.75], "texture": "#1"}, + "down": {"uv": [7.5, 8.75, 7, 11.25], "texture": "#1"} } }, { - "from": [1, 7, 3], - "to": [3, 9, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [-1, 8, 12]}, + "from": [12.8, 8.5, 3], + "to": [14.8, 10.5, 13], + "rotation": {"angle": 22.5, "axis": "z", "origin": [16.8, 9.5, 12]}, "faces": { - "north": {"uv": [10, 8.5, 10.5, 9], "texture": "#0"}, - "east": {"uv": [8, 4.5, 10.5, 5], "texture": "#0"}, - "south": {"uv": [10, 9, 10.5, 9.5], "texture": "#0"}, - "west": {"uv": [8, 5, 10.5, 5.5], "texture": "#0"}, - "up": {"uv": [3.5, 10.75, 3, 8.25], "texture": "#0"}, - "down": {"uv": [4, 8.25, 3.5, 10.75], "texture": "#0"} + "north": {"uv": [9.25, 11.5, 9.75, 12], "texture": "#1"}, + "east": {"uv": [8.25, 0, 10.75, 0.5], "texture": "#1"}, + "south": {"uv": [10.75, 11.5, 11.25, 12], "texture": "#1"}, + "west": {"uv": [8.25, 0.5, 10.75, 1], "texture": "#1"}, + "up": {"uv": [9.5, 10.5, 9, 8], "texture": "#1"}, + "down": {"uv": [0.5, 9.25, 0, 11.75], "texture": "#1"} } }, { - "from": [4, 8, 9], - "to": [6, 14, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [2, 9, 14]}, + "from": [4, 9, 9], + "to": [6, 15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 10, 14]}, "faces": { - "north": {"uv": [8.75, 0.5, 9.25, 2], "texture": "#0"}, - "east": {"uv": [9, 8.25, 9.5, 9.75], "texture": "#0"}, - "south": {"uv": [9.25, 0.5, 9.75, 2], "texture": "#0"}, - "west": {"uv": [9.5, 6, 10, 7.5], "texture": "#0"}, - "up": {"uv": [10.5, 10, 10, 9.5], "texture": "#0"}, - "down": {"uv": [10.5, 10, 10, 10.5], "texture": "#0"} + "north": {"uv": [2.5, 5, 3, 6.5], "texture": "#1"}, + "east": {"uv": [5, 9.25, 5.5, 10.75], "texture": "#1"}, + "south": {"uv": [2, 9.75, 2.5, 11.25], "texture": "#1"}, + "west": {"uv": [9.75, 10.5, 10.25, 12], "texture": "#1"}, + "up": {"uv": [11.75, 12, 11.25, 11.5], "texture": "#1"}, + "down": {"uv": [0.5, 11.75, 0, 12.25], "texture": "#1"} } }, { - "from": [10, 8, 5], - "to": [12, 14, 7], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 10]}, + "from": [10, 9, 5], + "to": [12, 15, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 10]}, "faces": { - "north": {"uv": [9.5, 7.5, 10, 9], "texture": "#0"}, - "east": {"uv": [9.5, 9, 10, 10.5], "texture": "#0"}, - "south": {"uv": [9.75, 0.5, 10.25, 2], "texture": "#0"}, - "west": {"uv": [9, 9.75, 9.5, 11.25], "texture": "#0"}, - "up": {"uv": [10.75, 1, 10.25, 0.5], "texture": "#0"}, - "down": {"uv": [10.75, 1, 10.25, 1.5], "texture": "#0"} + "north": {"uv": [10.25, 10.5, 10.75, 12], "texture": "#1"}, + "east": {"uv": [10.75, 0, 11.25, 1.5], "texture": "#1"}, + "south": {"uv": [10.75, 3.5, 11.25, 5], "texture": "#1"}, + "west": {"uv": [5, 10.75, 5.5, 12.25], "texture": "#1"}, + "up": {"uv": [12.25, 0.5, 11.75, 0], "texture": "#1"}, + "down": {"uv": [1, 11.75, 0.5, 12.25], "texture": "#1"} + } + }, + { + "from": [9, 17, 10], + "to": [10, 23, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 18, 15]}, + "faces": { + "north": {"uv": [5.5, 11.25, 5.75, 12.75], "texture": "#1"}, + "east": {"uv": [5.75, 11.25, 6, 12.75], "texture": "#1"}, + "south": {"uv": [6, 11.25, 6.25, 12.75], "texture": "#1"}, + "west": {"uv": [6.25, 11.25, 6.5, 12.75], "texture": "#1"}, + "up": {"uv": [6.25, 4.5, 6, 4.25], "texture": "#1"}, + "down": {"uv": [6.5, 4.25, 6.25, 4.5], "texture": "#1"} + } + }, + { + "from": [7.8, 17, 8.8], + "to": [8.8, 22, 9.8], + "rotation": {"angle": 0, "axis": "y", "origin": [5.8, 18, 13.8]}, + "faces": { + "north": {"uv": [11.25, 6, 11.5, 7.25], "texture": "#1"}, + "east": {"uv": [6.5, 11.25, 6.75, 12.5], "texture": "#1"}, + "south": {"uv": [6.75, 11.25, 7, 12.5], "texture": "#1"}, + "west": {"uv": [7, 11.25, 7.25, 12.5], "texture": "#1"}, + "up": {"uv": [2.75, 6.75, 2.5, 6.5], "texture": "#1"}, + "down": {"uv": [3, 6.5, 2.75, 6.75], "texture": "#1"} } }, { "from": [13, 0, 1], - "to": [15, 9, 3], + "to": [15, 10, 3], "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 0]}, "faces": { - "north": {"uv": [1, 9, 1.5, 11.25], "texture": "#0"}, - "east": {"uv": [1.5, 9, 2, 11.25], "texture": "#0"}, - "south": {"uv": [2, 9, 2.5, 11.25], "texture": "#0"}, - "west": {"uv": [9, 6, 9.5, 8.25], "texture": "#0"}, - "up": {"uv": [10.75, 2, 10.25, 1.5], "texture": "#0"}, - "down": {"uv": [10.75, 2, 10.25, 2.5], "texture": "#0"} + "north": {"uv": [0.5, 9.25, 1, 11.75], "texture": "#1"}, + "east": {"uv": [1, 9.25, 1.5, 11.75], "texture": "#1"}, + "south": {"uv": [1.5, 9.25, 2, 11.75], "texture": "#1"}, + "west": {"uv": [4.5, 9.25, 5, 11.75], "texture": "#1"}, + "up": {"uv": [12.25, 1, 11.75, 0.5], "texture": "#1"}, + "down": {"uv": [1.5, 11.75, 1, 12.25], "texture": "#1"} } }, { - "from": [3, 7, 1], - "to": [13, 9, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 0]}, + "from": [3, 8.7, -2], + "to": [13, 10.7, 0], + "rotation": {"angle": 22.5, "axis": "x", "origin": [9, 1.7, -3]}, "faces": { - "north": {"uv": [8, 5.5, 10.5, 6], "texture": "#0"}, - "east": {"uv": [2.5, 10.5, 3, 11], "texture": "#0"}, - "south": {"uv": [8.25, 2.5, 10.75, 3], "texture": "#0"}, - "west": {"uv": [10.5, 4, 11, 4.5], "texture": "#0"}, - "up": {"uv": [10.75, 3.5, 8.25, 3], "texture": "#0"}, - "down": {"uv": [10.75, 3.5, 8.25, 4], "texture": "#0"} + "north": {"uv": [8.25, 1, 10.75, 1.5], "texture": "#1"}, + "east": {"uv": [1.5, 11.75, 2, 12.25], "texture": "#1"}, + "south": {"uv": [8.25, 1.5, 10.75, 2], "texture": "#1"}, + "west": {"uv": [11.75, 1.5, 12.25, 2], "texture": "#1"}, + "up": {"uv": [12, 8.5, 9.5, 8], "texture": "#1"}, + "down": {"uv": [12, 8.5, 9.5, 9], "texture": "#1"} } }, { - "from": [3, 7, 13], - "to": [13, 9, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 12]}, + "from": [3, 8.7, 16], + "to": [13, 10.7, 18], + "rotation": {"angle": -22.5, "axis": "x", "origin": [9, 1.7, 19]}, "faces": { - "north": {"uv": [4, 8.25, 6.5, 8.75], "texture": "#0"}, - "east": {"uv": [10.5, 4.5, 11, 5], "texture": "#0"}, - "south": {"uv": [6.5, 8.25, 9, 8.75], "texture": "#0"}, - "west": {"uv": [10.5, 5, 11, 5.5], "texture": "#0"}, - "up": {"uv": [2.5, 9, 0, 8.5], "texture": "#0"}, - "down": {"uv": [11.25, 0, 8.75, 0.5], "texture": "#0"} + "north": {"uv": [9.5, 9, 12, 9.5], "texture": "#1"}, + "east": {"uv": [2.5, 11.75, 3, 12.25], "texture": "#1"}, + "south": {"uv": [9.5, 9.5, 12, 10], "texture": "#1"}, + "west": {"uv": [3, 11.75, 3.5, 12.25], "texture": "#1"}, + "up": {"uv": [12, 10.5, 9.5, 10], "texture": "#1"}, + "down": {"uv": [13, 3, 10.5, 3.5], "texture": "#1"} } } ], @@ -201,8 +292,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/white_generator_lit.json b/common/src/main/resources/assets/jurassicrevived/models/block/white_generator_lit.json old mode 100755 new mode 100644 index c278242..4d37ab8 --- a/common/src/main/resources/assets/jurassicrevived/models/block/white_generator_lit.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/white_generator_lit.json @@ -5,164 +5,255 @@ "render_type": "cutout", "texture_size": [64, 64], "textures": { - "0": "jurassicrevived:block/white_generator", + "1": "jurassicrevived:block/white_generator", "particle": "jurassicrevived:block/white_generator" }, "elements": [ { - "from": [2, 0, 2], - "to": [14, 8, 14], + "from": [2, 0, 4], + "to": [14, 9, 14], "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 1]}, "faces": { - "north": {"uv": [3, 0, 6, 2], "texture": "#0"}, - "east": {"uv": [3, 2, 6, 4], "texture": "#0"}, - "south": {"uv": [3, 4, 6, 6], "texture": "#0"}, - "west": {"uv": [0, 6, 3, 8], "texture": "#0"}, - "up": {"uv": [3, 3, 0, 0], "texture": "#0"}, - "down": {"uv": [3, 3, 0, 6], "texture": "#0"} + "north": {"uv": [3, 0, 6, 2.25], "texture": "#1"}, + "east": {"uv": [3, 4.5, 5.5, 6.75], "texture": "#1"}, + "south": {"uv": [3, 2.25, 6, 4.5], "texture": "#1"}, + "west": {"uv": [0, 5, 2.5, 7.25], "texture": "#1"}, + "up": {"uv": [3, 2.5, 0, 0], "texture": "#1"}, + "down": {"uv": [3, 2.5, 0, 5], "texture": "#1"} } }, { - "from": [-1.425, 9.7, 3.5], - "to": [6.575, 17.7, 12.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.575, 7.7, -0.5]}, + "from": [2, 0, 2], + "to": [14, 2, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -9]}, "faces": { - "north": {"uv": [5, 6.25, 7, 8.25], "texture": "#0"}, - "east": {"uv": [6, 0, 8.25, 2], "texture": "#0"}, - "south": {"uv": [7, 6.25, 9, 8.25], "texture": "#0"}, - "west": {"uv": [6, 2, 8.25, 4], "texture": "#0"}, - "up": {"uv": [5, 8.25, 3, 6], "texture": "#0"}, - "down": {"uv": [8, 4, 6, 6.25], "texture": "#0"} + "north": {"uv": [7.75, 4.25, 10.75, 4.75], "texture": "#1"}, + "east": {"uv": [11.25, 10.5, 11.75, 11], "texture": "#1"}, + "south": {"uv": [7.75, 4.75, 10.75, 5.25], "texture": "#1"}, + "west": {"uv": [11.25, 11, 11.75, 11.5], "texture": "#1"}, + "up": {"uv": [10.75, 5.75, 7.75, 5.25], "texture": "#1"}, + "down": {"uv": [10.75, 5.75, 7.75, 6.25], "texture": "#1"} + } + }, + { + "from": [6, -4.175, 2.825], + "to": [10, -2.175, 4.825], + "rotation": {"angle": -22.5, "axis": "x", "origin": [0, -4.175, -8.175]}, + "faces": { + "north": {"uv": [10.5, 7.25, 11.5, 7.75], "texture": "#1"}, + "east": {"uv": [11.5, 2, 12, 2.5], "texture": "#1"}, + "south": {"uv": [10.75, 1.5, 11.75, 2], "texture": "#1"}, + "west": {"uv": [11.5, 2.5, 12, 3], "texture": "#1"}, + "up": {"uv": [11.75, 5.5, 10.75, 5], "texture": "#1"}, + "down": {"uv": [11.75, 5.5, 10.75, 6], "texture": "#1"} + } + }, + { + "from": [2, 2, 2], + "to": [5, 6, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 2, -9]}, + "faces": { + "north": {"uv": [10.5, 6.25, 11.25, 7.25], "texture": "#1"}, + "east": {"uv": [10.75, 10.5, 11.25, 11.5], "texture": "#1"}, + "south": {"uv": [7.5, 10.5, 8.25, 11.5], "texture": "#1"}, + "west": {"uv": [11, 2, 11.5, 3], "texture": "#1"}, + "up": {"uv": [12, 1.5, 11.25, 1], "texture": "#1"}, + "down": {"uv": [3.25, 11.25, 2.5, 11.75], "texture": "#1"} + } + }, + { + "from": [11, 2, 2], + "to": [14, 6, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 2, -9]}, + "faces": { + "north": {"uv": [8.25, 10.5, 9, 11.5], "texture": "#1"}, + "east": {"uv": [11.25, 0, 11.75, 1], "texture": "#1"}, + "south": {"uv": [9, 10.5, 9.75, 11.5], "texture": "#1"}, + "west": {"uv": [2, 11.25, 2.5, 12.25], "texture": "#1"}, + "up": {"uv": [4, 11.75, 3.25, 11.25], "texture": "#1"}, + "down": {"uv": [12, 3.5, 11.25, 4], "texture": "#1"} + } + }, + { + "from": [2, 6, 2], + "to": [14, 9, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 7, -9]}, + "faces": { + "north": {"uv": [7.5, 6.5, 10.5, 7.25], "texture": "#1"}, + "east": {"uv": [4, 11.25, 4.5, 12], "texture": "#1"}, + "south": {"uv": [7.5, 7.25, 10.5, 8], "texture": "#1"}, + "west": {"uv": [11.25, 4, 11.75, 4.75], "texture": "#1"}, + "up": {"uv": [11, 2.5, 8, 2], "texture": "#1"}, + "down": {"uv": [11, 2.5, 8, 3], "texture": "#1"} + } + }, + { + "from": [-1.425, 10.7, 3.5], + "to": [6.575, 18.7, 12.5], + "rotation": {"angle": -45, "axis": "z", "origin": [6.575, 8.7, -0.5]}, + "faces": { + "north": {"uv": [2.5, 6.75, 4.5, 8.75], "texture": "#1"}, + "east": {"uv": [5.5, 4.5, 7.75, 6.5], "texture": "#1"}, + "south": {"uv": [0, 7.25, 2, 9.25], "texture": "#1"}, + "west": {"uv": [6, 0, 8.25, 2], "texture": "#1"}, + "up": {"uv": [8, 4.25, 6, 2], "texture": "#1"}, + "down": {"uv": [7.5, 6.5, 5.5, 8.75], "texture": "#1"} } }, { "from": [1, 0, 1], - "to": [3, 9, 3], + "to": [3, 10, 3], "rotation": {"angle": 0, "axis": "y", "origin": [-1, 0, 0]}, "faces": { - "north": {"uv": [4, 8.75, 4.5, 11], "texture": "#0"}, - "east": {"uv": [4.5, 8.75, 5, 11], "texture": "#0"}, - "south": {"uv": [5, 8.75, 5.5, 11], "texture": "#0"}, - "west": {"uv": [5.5, 8.75, 6, 11], "texture": "#0"}, - "up": {"uv": [9.25, 2.5, 8.75, 2], "texture": "#0"}, - "down": {"uv": [9.75, 2, 9.25, 2.5], "texture": "#0"} + "north": {"uv": [4.5, 6.75, 5, 9.25], "texture": "#1"}, + "east": {"uv": [5, 6.75, 5.5, 9.25], "texture": "#1"}, + "south": {"uv": [2, 7.25, 2.5, 9.75], "texture": "#1"}, + "west": {"uv": [7.5, 8, 8, 10.5], "texture": "#1"}, + "up": {"uv": [12, 6.5, 11.5, 6], "texture": "#1"}, + "down": {"uv": [12, 6.5, 11.5, 7], "texture": "#1"} } }, { "from": [1, 0, 13], - "to": [3, 9, 15], + "to": [3, 10, 15], "rotation": {"angle": 0, "axis": "y", "origin": [-1, 0, 12]}, "faces": { - "north": {"uv": [6, 8.75, 6.5, 11], "texture": "#0"}, - "east": {"uv": [6.5, 8.75, 7, 11], "texture": "#0"}, - "south": {"uv": [7, 8.75, 7.5, 11], "texture": "#0"}, - "west": {"uv": [7.5, 8.75, 8, 11], "texture": "#0"}, - "up": {"uv": [10.25, 2.5, 9.75, 2], "texture": "#0"}, - "down": {"uv": [10.5, 6, 10, 6.5], "texture": "#0"} + "north": {"uv": [8, 8, 8.5, 10.5], "texture": "#1"}, + "east": {"uv": [8.5, 8, 9, 10.5], "texture": "#1"}, + "south": {"uv": [2.5, 8.75, 3, 11.25], "texture": "#1"}, + "west": {"uv": [3, 8.75, 3.5, 11.25], "texture": "#1"}, + "up": {"uv": [12, 7.5, 11.5, 7], "texture": "#1"}, + "down": {"uv": [7.75, 11.5, 7.25, 12], "texture": "#1"} } }, { "from": [13, 0, 13], - "to": [15, 9, 15], + "to": [15, 10, 15], "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 12]}, "faces": { - "north": {"uv": [8, 8.75, 8.5, 11], "texture": "#0"}, - "east": {"uv": [8.5, 8.75, 9, 11], "texture": "#0"}, - "south": {"uv": [0, 9, 0.5, 11.25], "texture": "#0"}, - "west": {"uv": [0.5, 9, 1, 11.25], "texture": "#0"}, - "up": {"uv": [10.5, 7, 10, 6.5], "texture": "#0"}, - "down": {"uv": [10.5, 7, 10, 7.5], "texture": "#0"} + "north": {"uv": [3.5, 8.75, 4, 11.25], "texture": "#1"}, + "east": {"uv": [4, 8.75, 4.5, 11.25], "texture": "#1"}, + "south": {"uv": [5.5, 8.75, 6, 11.25], "texture": "#1"}, + "west": {"uv": [6, 8.75, 6.5, 11.25], "texture": "#1"}, + "up": {"uv": [12, 8, 11.5, 7.5], "texture": "#1"}, + "down": {"uv": [8.25, 11.5, 7.75, 12], "texture": "#1"} } }, { - "from": [13, 7, 3], - "to": [15, 9, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [11, 8, 12]}, + "from": [1.2, 8.5, 3], + "to": [3.2, 10.5, 13], + "rotation": {"angle": -22.5, "axis": "z", "origin": [-0.8, 9.5, 12]}, "faces": { - "north": {"uv": [10, 7.5, 10.5, 8], "texture": "#0"}, - "east": {"uv": [0, 8, 2.5, 8.5], "texture": "#0"}, - "south": {"uv": [10, 8, 10.5, 8.5], "texture": "#0"}, - "west": {"uv": [8, 4, 10.5, 4.5], "texture": "#0"}, - "up": {"uv": [3, 10.5, 2.5, 8], "texture": "#0"}, - "down": {"uv": [8.75, 0, 8.25, 2.5], "texture": "#0"} + "north": {"uv": [8.25, 11.5, 8.75, 12], "texture": "#1"}, + "east": {"uv": [8, 3, 10.5, 3.5], "texture": "#1"}, + "south": {"uv": [8.75, 11.5, 9.25, 12], "texture": "#1"}, + "west": {"uv": [8, 3.5, 10.5, 4], "texture": "#1"}, + "up": {"uv": [7, 11.25, 6.5, 8.75], "texture": "#1"}, + "down": {"uv": [7.5, 8.75, 7, 11.25], "texture": "#1"} } }, { - "from": [1, 7, 3], - "to": [3, 9, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [-1, 8, 12]}, + "from": [12.8, 8.5, 3], + "to": [14.8, 10.5, 13], + "rotation": {"angle": 22.5, "axis": "z", "origin": [16.8, 9.5, 12]}, "faces": { - "north": {"uv": [10, 8.5, 10.5, 9], "texture": "#0"}, - "east": {"uv": [8, 4.5, 10.5, 5], "texture": "#0"}, - "south": {"uv": [10, 9, 10.5, 9.5], "texture": "#0"}, - "west": {"uv": [8, 5, 10.5, 5.5], "texture": "#0"}, - "up": {"uv": [3.5, 10.75, 3, 8.25], "texture": "#0"}, - "down": {"uv": [4, 8.25, 3.5, 10.75], "texture": "#0"} + "north": {"uv": [9.25, 11.5, 9.75, 12], "texture": "#1"}, + "east": {"uv": [8.25, 0, 10.75, 0.5], "texture": "#1"}, + "south": {"uv": [10.75, 11.5, 11.25, 12], "texture": "#1"}, + "west": {"uv": [8.25, 0.5, 10.75, 1], "texture": "#1"}, + "up": {"uv": [9.5, 10.5, 9, 8], "texture": "#1"}, + "down": {"uv": [0.5, 9.25, 0, 11.75], "texture": "#1"} } }, { - "from": [4, 8, 9], - "to": [6, 14, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [2, 9, 14]}, + "from": [4, 9, 9], + "to": [6, 15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 10, 14]}, "faces": { - "north": {"uv": [8.75, 0.5, 9.25, 2], "texture": "#0"}, - "east": {"uv": [9, 8.25, 9.5, 9.75], "texture": "#0"}, - "south": {"uv": [9.25, 0.5, 9.75, 2], "texture": "#0"}, - "west": {"uv": [9.5, 6, 10, 7.5], "texture": "#0"}, - "up": {"uv": [10.5, 10, 10, 9.5], "texture": "#0"}, - "down": {"uv": [10.5, 10, 10, 10.5], "texture": "#0"} + "north": {"uv": [2.5, 5, 3, 6.5], "texture": "#1"}, + "east": {"uv": [5, 9.25, 5.5, 10.75], "texture": "#1"}, + "south": {"uv": [2, 9.75, 2.5, 11.25], "texture": "#1"}, + "west": {"uv": [9.75, 10.5, 10.25, 12], "texture": "#1"}, + "up": {"uv": [11.75, 12, 11.25, 11.5], "texture": "#1"}, + "down": {"uv": [0.5, 11.75, 0, 12.25], "texture": "#1"} } }, { - "from": [10, 8, 5], - "to": [12, 14, 7], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 10]}, + "from": [10, 9, 5], + "to": [12, 15, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 10]}, "faces": { - "north": {"uv": [9.5, 7.5, 10, 9], "texture": "#0"}, - "east": {"uv": [9.5, 9, 10, 10.5], "texture": "#0"}, - "south": {"uv": [9.75, 0.5, 10.25, 2], "texture": "#0"}, - "west": {"uv": [9, 9.75, 9.5, 11.25], "texture": "#0"}, - "up": {"uv": [10.75, 1, 10.25, 0.5], "texture": "#0"}, - "down": {"uv": [10.75, 1, 10.25, 1.5], "texture": "#0"} + "north": {"uv": [10.25, 10.5, 10.75, 12], "texture": "#1"}, + "east": {"uv": [10.75, 0, 11.25, 1.5], "texture": "#1"}, + "south": {"uv": [10.75, 3.5, 11.25, 5], "texture": "#1"}, + "west": {"uv": [5, 10.75, 5.5, 12.25], "texture": "#1"}, + "up": {"uv": [12.25, 0.5, 11.75, 0], "texture": "#1"}, + "down": {"uv": [1, 11.75, 0.5, 12.25], "texture": "#1"} + } + }, + { + "from": [9, 17, 10], + "to": [10, 23, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 18, 15]}, + "faces": { + "north": {"uv": [5.5, 11.25, 5.75, 12.75], "texture": "#1"}, + "east": {"uv": [5.75, 11.25, 6, 12.75], "texture": "#1"}, + "south": {"uv": [6, 11.25, 6.25, 12.75], "texture": "#1"}, + "west": {"uv": [6.25, 11.25, 6.5, 12.75], "texture": "#1"}, + "up": {"uv": [6.25, 4.5, 6, 4.25], "texture": "#1"}, + "down": {"uv": [6.5, 4.25, 6.25, 4.5], "texture": "#1"} + } + }, + { + "from": [7.8, 17, 8.8], + "to": [8.8, 22, 9.8], + "rotation": {"angle": 0, "axis": "y", "origin": [5.8, 18, 13.8]}, + "faces": { + "north": {"uv": [11.25, 6, 11.5, 7.25], "texture": "#1"}, + "east": {"uv": [6.5, 11.25, 6.75, 12.5], "texture": "#1"}, + "south": {"uv": [6.75, 11.25, 7, 12.5], "texture": "#1"}, + "west": {"uv": [7, 11.25, 7.25, 12.5], "texture": "#1"}, + "up": {"uv": [2.75, 6.75, 2.5, 6.5], "texture": "#1"}, + "down": {"uv": [3, 6.5, 2.75, 6.75], "texture": "#1"} } }, { "from": [13, 0, 1], - "to": [15, 9, 3], + "to": [15, 10, 3], "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 0]}, "faces": { - "north": {"uv": [1, 9, 1.5, 11.25], "texture": "#0"}, - "east": {"uv": [1.5, 9, 2, 11.25], "texture": "#0"}, - "south": {"uv": [2, 9, 2.5, 11.25], "texture": "#0"}, - "west": {"uv": [9, 6, 9.5, 8.25], "texture": "#0"}, - "up": {"uv": [10.75, 2, 10.25, 1.5], "texture": "#0"}, - "down": {"uv": [10.75, 2, 10.25, 2.5], "texture": "#0"} + "north": {"uv": [0.5, 9.25, 1, 11.75], "texture": "#1"}, + "east": {"uv": [1, 9.25, 1.5, 11.75], "texture": "#1"}, + "south": {"uv": [1.5, 9.25, 2, 11.75], "texture": "#1"}, + "west": {"uv": [4.5, 9.25, 5, 11.75], "texture": "#1"}, + "up": {"uv": [12.25, 1, 11.75, 0.5], "texture": "#1"}, + "down": {"uv": [1.5, 11.75, 1, 12.25], "texture": "#1"} } }, { - "from": [3, 7, 1], - "to": [13, 9, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 0]}, + "from": [3, 8.7, -2], + "to": [13, 10.7, 0], + "rotation": {"angle": 22.5, "axis": "x", "origin": [9, 1.7, -3]}, "faces": { - "north": {"uv": [8, 5.5, 10.5, 6], "texture": "#0"}, - "east": {"uv": [2.5, 10.5, 3, 11], "texture": "#0"}, - "south": {"uv": [8.25, 2.5, 10.75, 3], "texture": "#0"}, - "west": {"uv": [10.5, 4, 11, 4.5], "texture": "#0"}, - "up": {"uv": [10.75, 3.5, 8.25, 3], "texture": "#0"}, - "down": {"uv": [10.75, 3.5, 8.25, 4], "texture": "#0"} + "north": {"uv": [8.25, 1, 10.75, 1.5], "texture": "#1"}, + "east": {"uv": [1.5, 11.75, 2, 12.25], "texture": "#1"}, + "south": {"uv": [8.25, 1.5, 10.75, 2], "texture": "#1"}, + "west": {"uv": [11.75, 1.5, 12.25, 2], "texture": "#1"}, + "up": {"uv": [12, 8.5, 9.5, 8], "texture": "#1"}, + "down": {"uv": [12, 8.5, 9.5, 9], "texture": "#1"} } }, { - "from": [3, 7, 13], - "to": [13, 9, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 12]}, + "from": [3, 8.7, 16], + "to": [13, 10.7, 18], + "rotation": {"angle": -22.5, "axis": "x", "origin": [9, 1.7, 19]}, "faces": { - "north": {"uv": [4, 8.25, 6.5, 8.75], "texture": "#0"}, - "east": {"uv": [10.5, 4.5, 11, 5], "texture": "#0"}, - "south": {"uv": [6.5, 8.25, 9, 8.75], "texture": "#0"}, - "west": {"uv": [10.5, 5, 11, 5.5], "texture": "#0"}, - "up": {"uv": [2.5, 9, 0, 8.5], "texture": "#0"}, - "down": {"uv": [11.25, 0, 8.75, 0.5], "texture": "#0"} + "north": {"uv": [9.5, 9, 12, 9.5], "texture": "#1"}, + "east": {"uv": [2.5, 11.75, 3, 12.25], "texture": "#1"}, + "south": {"uv": [9.5, 9.5, 12, 10], "texture": "#1"}, + "west": {"uv": [3, 11.75, 3.5, 12.25], "texture": "#1"}, + "up": {"uv": [12, 10.5, 9.5, 10], "texture": "#1"}, + "down": {"uv": [13, 3, 10.5, 3.5], "texture": "#1"} } } ], @@ -201,8 +292,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/white_incubator.json b/common/src/main/resources/assets/jurassicrevived/models/block/white_incubator.json index e2b7a87..55e9257 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/white_incubator.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/white_incubator.json @@ -2,7 +2,7 @@ "format_version": "1.9.0", "credit": "Made with Blockbench", "render_type": "cutout", - "texture_size": [128, 128], + "texture_size": [64, 64], "textures": { "1": "jurassicrevived:block/white_incubator", "particle": "jurassicrevived:block/white_incubator" @@ -12,223 +12,194 @@ "from": [0, 0, 0], "to": [16, 3, 16], "faces": { - "north": {"uv": [3.5, 5.625, 5.5, 6], "texture": "#1"}, - "east": {"uv": [6, 0, 8, 0.375], "texture": "#1"}, - "south": {"uv": [6, 0.375, 8, 0.75], "texture": "#1"}, - "west": {"uv": [6, 0.75, 8, 1.125], "texture": "#1"}, - "up": {"uv": [2, 2, 0, 0], "texture": "#1"}, - "down": {"uv": [2, 2, 0, 4], "texture": "#1"} + "north": {"uv": [11, 2.5, 15, 3.25], "texture": "#1"}, + "east": {"uv": [12, 11, 16, 11.75], "texture": "#1"}, + "south": {"uv": [12, 11.75, 16, 12.5], "texture": "#1"}, + "west": {"uv": [0, 12.5, 4, 13.25], "texture": "#1"}, + "up": {"uv": [4, 4, 0, 0], "texture": "#1"}, + "down": {"uv": [4, 4, 0, 8], "texture": "#1"} } }, { "from": [2, 3, 2], - "to": [14, 6, 14], + "to": [14, 8, 14], "rotation": {"angle": 0, "axis": "y", "origin": [0, 3, 0]}, "faces": { - "north": {"uv": [0, 5.75, 1.5, 6.125], "texture": "#1"}, - "east": {"uv": [6, 1.125, 7.5, 1.5], "texture": "#1"}, - "south": {"uv": [3.5, 6, 5, 6.375], "texture": "#1"}, - "west": {"uv": [6, 4.25, 7.5, 4.625], "texture": "#1"}, - "up": {"uv": [5.25, 3.25, 3.75, 1.75], "texture": "#1"}, - "down": {"uv": [5.25, 3.25, 3.75, 4.75], "texture": "#1"} + "north": {"uv": [11, 0, 14, 1.25], "texture": "#1"}, + "east": {"uv": [11, 1.25, 14, 2.5], "texture": "#1"}, + "south": {"uv": [11, 8.5, 14, 9.75], "texture": "#1"}, + "west": {"uv": [11, 9.75, 14, 11], "texture": "#1"}, + "up": {"uv": [10.5, 6.5, 7.5, 3.5], "texture": "#1"}, + "down": {"uv": [10.5, 6.5, 7.5, 9.5], "texture": "#1"} } }, { - "from": [1, 6, 1], - "to": [15, 11, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 0]}, + "from": [1, 8, 1], + "to": [15, 13, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 0]}, "faces": { - "north": {"uv": [5.25, 1.75, 7, 2.375], "texture": "#1"}, - "east": {"uv": [5.25, 2.375, 7, 3], "texture": "#1"}, - "south": {"uv": [5.25, 3, 7, 3.625], "texture": "#1"}, - "west": {"uv": [5.25, 3.625, 7, 4.25], "texture": "#1"}, - "up": {"uv": [3.75, 1.75, 2, 0], "texture": "#1"}, - "down": {"uv": [3.75, 1.75, 2, 3.5], "texture": "#1"} + "north": {"uv": [10.5, 3.5, 14, 4.75], "texture": "#1"}, + "east": {"uv": [10.5, 4.75, 14, 6], "texture": "#1"}, + "south": {"uv": [10.5, 6, 14, 7.25], "texture": "#1"}, + "west": {"uv": [10.5, 7.25, 14, 8.5], "texture": "#1"}, + "up": {"uv": [7.5, 3.5, 4, 0], "texture": "#1"}, + "down": {"uv": [7.5, 3.5, 4, 7], "texture": "#1"} } }, { - "from": [6, 6, 14.1], - "to": [10, 20, 16.1], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 9, 0.1]}, + "from": [4, 10, -1.6], + "to": [12, 14, 1.4], + "rotation": {"angle": 22.5, "axis": "x", "origin": [0, 9, -2.6]}, "faces": { - "north": {"uv": [5.5, 0, 6, 1.75], "texture": "#1"}, - "east": {"uv": [3, 6.875, 3.25, 8.625], "texture": "#1"}, - "south": {"uv": [5.5, 4.25, 6, 6], "texture": "#1"}, - "west": {"uv": [3.25, 6.875, 3.5, 8.625], "texture": "#1"}, - "up": {"uv": [6.5, 1.75, 6, 1.5], "texture": "#1"}, - "down": {"uv": [3.5, 6.125, 3, 6.375], "texture": "#1"} + "north": {"uv": [8, 11.5, 10, 12.5], "texture": "#1"}, + "east": {"uv": [14, 8.75, 14.75, 9.75], "texture": "#1"}, + "south": {"uv": [4, 12.5, 6, 13.5], "texture": "#1"}, + "west": {"uv": [14, 9.75, 14.75, 10.75], "texture": "#1"}, + "up": {"uv": [16, 1.75, 14, 1], "texture": "#1"}, + "down": {"uv": [16, 1.75, 14, 2.5], "texture": "#1"} } }, { - "from": [1, 16, 1], - "to": [15, 23, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 16, 0]}, + "from": [5, 9.9, 4.5], + "to": [11, 11.9, 6.5], + "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 9.9, -1.5]}, "faces": { - "north": {"uv": [0, 4, 1.75, 4.875], "texture": "#1"}, - "east": {"uv": [3.75, 4.75, 5.5, 5.625], "texture": "#1"}, - "south": {"uv": [0, 4.875, 1.75, 5.75], "texture": "#1"}, - "west": {"uv": [1.75, 5.25, 3.5, 6.125], "texture": "#1"}, - "up": {"uv": [3.75, 5.25, 2, 3.5], "texture": "#1"}, - "down": {"uv": [5.5, 0, 3.75, 1.75], "texture": "#1"} + "north": {"uv": [2, 12, 3.5, 12.5], "texture": "#1"}, + "east": {"uv": [3.5, 10, 4, 10.5], "texture": "#1"}, + "south": {"uv": [14, 12.5, 15.5, 13], "texture": "#1"}, + "west": {"uv": [11.5, 14.5, 12, 15], "texture": "#1"}, + "up": {"uv": [15.5, 13.5, 14, 13], "texture": "#1"}, + "down": {"uv": [15.5, 13.5, 14, 14], "texture": "#1"} } }, { - "from": [6, 10.5, 6], - "to": [10, 11.5, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 10.5, 0]}, + "from": [5, 9.9, 9.5], + "to": [11, 11.9, 11.5], + "rotation": {"angle": 22.5, "axis": "x", "origin": [0, 9.9, 17.5]}, "faces": { - "north": {"uv": [6.5, 1.5, 7, 1.625], "texture": "#1"}, - "east": {"uv": [6.5, 1.625, 7, 1.75], "texture": "#1"}, - "south": {"uv": [7, 2, 7.5, 2.125], "texture": "#1"}, - "west": {"uv": [7, 2.125, 7.5, 2.25], "texture": "#1"}, - "up": {"uv": [4, 7.375, 3.5, 6.875], "texture": "#1"}, - "down": {"uv": [7.5, 1.5, 7, 2], "texture": "#1"} + "north": {"uv": [14, 14, 15.5, 14.5], "texture": "#1"}, + "east": {"uv": [12, 14.5, 12.5, 15], "texture": "#1"}, + "south": {"uv": [0, 14.25, 1.5, 14.75], "texture": "#1"}, + "west": {"uv": [12.5, 14.5, 13, 15], "texture": "#1"}, + "up": {"uv": [3, 14.75, 1.5, 14.25], "texture": "#1"}, + "down": {"uv": [4.5, 14.5, 3, 15], "texture": "#1"} } }, { - "name": "Egg1", - "from": [7.5, 11.4, 8.2], - "to": [9.5, 14.4, 10.2], - "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 12.4, 1.2]}, + "from": [6, 10, 4], + "to": [8, 12, 12], + "rotation": {"angle": 22.5, "axis": "z", "origin": [0, 8, 0]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [13, 14.5, 13.5, 15], "texture": "#1"}, + "east": {"uv": [0, 12, 2, 12.5], "texture": "#1"}, + "south": {"uv": [13.5, 14.5, 14, 15], "texture": "#1"}, + "west": {"uv": [14, 3.25, 16, 3.75], "texture": "#1"}, + "up": {"uv": [4, 10, 3.5, 8], "texture": "#1"}, + "down": {"uv": [6.5, 12.5, 6, 14.5], "texture": "#1"} } }, { - "name": "Egg2", - "from": [9.5, 10.5, 5.8], - "to": [11.5, 13.5, 7.8], - "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 11.5, -1.2]}, + "from": [8, 10, 4], + "to": [10, 12, 12], + "rotation": {"angle": -22.5, "axis": "z", "origin": [16, 8, 0]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [14, 14.5, 14.5, 15], "texture": "#1"}, + "east": {"uv": [14, 3.75, 16, 4.25], "texture": "#1"}, + "south": {"uv": [14.5, 14.5, 15, 15], "texture": "#1"}, + "west": {"uv": [14, 4.25, 16, 4.75], "texture": "#1"}, + "up": {"uv": [7, 14.5, 6.5, 12.5], "texture": "#1"}, + "down": {"uv": [14.5, 4.75, 14, 6.75], "texture": "#1"} } }, { - "name": "Egg3", - "from": [5, 10.9, 6.2], - "to": [7, 13.9, 8.2], - "rotation": {"angle": 0, "axis": "y", "origin": [-2, 11.9, -0.8]}, + "from": [6, 8, 14.1], + "to": [10, 22, 16.1], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11, 0.1]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [11, 11, 12, 14.5], "texture": "#1"}, + "east": {"uv": [10, 11.5, 10.5, 15], "texture": "#1"}, + "south": {"uv": [7, 11.5, 8, 15], "texture": "#1"}, + "west": {"uv": [10.5, 11.5, 11, 15], "texture": "#1"}, + "up": {"uv": [5.5, 15, 4.5, 14.5], "texture": "#1"}, + "down": {"uv": [15.5, 4.75, 14.5, 5.25], "texture": "#1"} + } + }, + { + "from": [1, 18, 1], + "to": [15, 26, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 18, 0]}, + "faces": { + "north": {"uv": [0, 8, 3.5, 10], "texture": "#1"}, + "east": {"uv": [7.5, 9.5, 11, 11.5], "texture": "#1"}, + "south": {"uv": [0, 10, 3.5, 12], "texture": "#1"}, + "west": {"uv": [3.5, 10.5, 7, 12.5], "texture": "#1"}, + "up": {"uv": [7.5, 10.5, 4, 7], "texture": "#1"}, + "down": {"uv": [11, 0, 7.5, 3.5], "texture": "#1"} + } + }, + { + "from": [6, 12.5, 6], + "to": [10, 13.5, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 12.5, 0]}, + "faces": { + "north": {"uv": [11, 3.25, 12, 3.5], "texture": "#1"}, + "east": {"uv": [12, 3.25, 13, 3.5], "texture": "#1"}, + "south": {"uv": [13, 3.25, 14, 3.5], "texture": "#1"}, + "west": {"uv": [14, 10.75, 15, 11], "texture": "#1"}, + "up": {"uv": [15, 7.75, 14, 6.75], "texture": "#1"}, + "down": {"uv": [15, 7.75, 14, 8.75], "texture": "#1"} } }, { "from": [4, 9.2, 9.8], "to": [12, 9.2, 13.8], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.2, -0.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.2, -0.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [10, 13.5, 8, 12.5], "texture": "#1"}, + "down": {"uv": [14, 12.5, 12, 13.5], "texture": "#1"} } }, { "from": [4, 9.2, 2.2], "to": [12, 9.2, 6.2], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.2, 16.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.2, 16.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} - } - }, - { - "from": [2, 12.025, 4], - "to": [6, 12.025, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [0, 11.025, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} - } - }, - { - "from": [10, 12.025, 4], - "to": [14, 12.025, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [16, 11.025, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} - } - }, - { - "from": [10, 12.325, 4], - "to": [14, 12.325, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [16, 11.325, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} + "up": {"uv": [2, 14.25, 0, 13.25], "texture": "#1"}, + "down": {"uv": [4, 13.25, 2, 14.25], "texture": "#1"} } }, { "from": [4, 9.5, 9.8], "to": [12, 9.5, 13.8], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.5, -0.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.5, -0.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} - } - }, - { - "from": [2, 12.325, 4], - "to": [6, 12.325, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [0, 11.325, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} + "up": {"uv": [6, 14.5, 4, 13.5], "texture": "#1"}, + "down": {"uv": [10, 13.5, 8, 14.5], "texture": "#1"} } }, { "from": [4, 9.5, 2.2], "to": [12, 9.5, 6.2], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.5, 16.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.5, 16.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [14, 14.5, 12, 13.5], "texture": "#1"}, + "down": {"uv": [16, 0, 14, 1], "texture": "#1"} } } ], @@ -267,8 +238,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/models/block/white_incubator_lit.json b/common/src/main/resources/assets/jurassicrevived/models/block/white_incubator_lit.json index a62aeff..a9f6028 100755 --- a/common/src/main/resources/assets/jurassicrevived/models/block/white_incubator_lit.json +++ b/common/src/main/resources/assets/jurassicrevived/models/block/white_incubator_lit.json @@ -2,7 +2,7 @@ "format_version": "1.9.0", "credit": "Made with Blockbench", "render_type": "cutout", - "texture_size": [128, 128], + "texture_size": [64, 64], "textures": { "1": "jurassicrevived:block/white_incubator", "particle": "jurassicrevived:block/white_incubator" @@ -12,223 +12,236 @@ "from": [0, 0, 0], "to": [16, 3, 16], "faces": { - "north": {"uv": [3.5, 5.625, 5.5, 6], "texture": "#1"}, - "east": {"uv": [6, 0, 8, 0.375], "texture": "#1"}, - "south": {"uv": [6, 0.375, 8, 0.75], "texture": "#1"}, - "west": {"uv": [6, 0.75, 8, 1.125], "texture": "#1"}, - "up": {"uv": [2, 2, 0, 0], "texture": "#1"}, - "down": {"uv": [2, 2, 0, 4], "texture": "#1"} + "north": {"uv": [11, 2.5, 15, 3.25], "texture": "#1"}, + "east": {"uv": [12, 11, 16, 11.75], "texture": "#1"}, + "south": {"uv": [12, 11.75, 16, 12.5], "texture": "#1"}, + "west": {"uv": [0, 12.5, 4, 13.25], "texture": "#1"}, + "up": {"uv": [4, 4, 0, 0], "texture": "#1"}, + "down": {"uv": [4, 4, 0, 8], "texture": "#1"} } }, { "from": [2, 3, 2], - "to": [14, 6, 14], + "to": [14, 8, 14], "rotation": {"angle": 0, "axis": "y", "origin": [0, 3, 0]}, "faces": { - "north": {"uv": [0, 5.75, 1.5, 6.125], "texture": "#1"}, - "east": {"uv": [6, 1.125, 7.5, 1.5], "texture": "#1"}, - "south": {"uv": [3.5, 6, 5, 6.375], "texture": "#1"}, - "west": {"uv": [6, 4.25, 7.5, 4.625], "texture": "#1"}, - "up": {"uv": [5.25, 3.25, 3.75, 1.75], "texture": "#1"}, - "down": {"uv": [5.25, 3.25, 3.75, 4.75], "texture": "#1"} + "north": {"uv": [11, 0, 14, 1.25], "texture": "#1"}, + "east": {"uv": [11, 1.25, 14, 2.5], "texture": "#1"}, + "south": {"uv": [11, 8.5, 14, 9.75], "texture": "#1"}, + "west": {"uv": [11, 9.75, 14, 11], "texture": "#1"}, + "up": {"uv": [10.5, 6.5, 7.5, 3.5], "texture": "#1"}, + "down": {"uv": [10.5, 6.5, 7.5, 9.5], "texture": "#1"} } }, { - "from": [1, 6, 1], - "to": [15, 11, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 0]}, + "from": [1, 8, 1], + "to": [15, 13, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 0]}, "faces": { - "north": {"uv": [5.25, 1.75, 7, 2.375], "texture": "#1"}, - "east": {"uv": [5.25, 2.375, 7, 3], "texture": "#1"}, - "south": {"uv": [5.25, 3, 7, 3.625], "texture": "#1"}, - "west": {"uv": [5.25, 3.625, 7, 4.25], "texture": "#1"}, - "up": {"uv": [3.75, 1.75, 2, 0], "texture": "#1"}, - "down": {"uv": [3.75, 1.75, 2, 3.5], "texture": "#1"} + "north": {"uv": [10.5, 3.5, 14, 4.75], "texture": "#1"}, + "east": {"uv": [10.5, 4.75, 14, 6], "texture": "#1"}, + "south": {"uv": [10.5, 6, 14, 7.25], "texture": "#1"}, + "west": {"uv": [10.5, 7.25, 14, 8.5], "texture": "#1"}, + "up": {"uv": [7.5, 3.5, 4, 0], "texture": "#1"}, + "down": {"uv": [7.5, 3.5, 4, 7], "texture": "#1"} } }, { - "from": [6, 1, 14.1], - "to": [10, 15, 16.1], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 4, 0.1]}, + "from": [4, 10, -1.6], + "to": [12, 14, 1.4], + "rotation": {"angle": 22.5, "axis": "x", "origin": [0, 9, -2.6]}, "faces": { - "north": {"uv": [5.5, 0, 6, 1.75], "texture": "#1"}, - "east": {"uv": [3, 6.875, 3.25, 8.625], "texture": "#1"}, - "south": {"uv": [5.5, 4.25, 6, 6], "texture": "#1"}, - "west": {"uv": [3.25, 6.875, 3.5, 8.625], "texture": "#1"}, - "up": {"uv": [6.5, 1.75, 6, 1.5], "texture": "#1"}, - "down": {"uv": [3.5, 6.125, 3, 6.375], "texture": "#1"} + "north": {"uv": [8, 11.5, 10, 12.5], "texture": "#1"}, + "east": {"uv": [14, 8.75, 14.75, 9.75], "texture": "#1"}, + "south": {"uv": [4, 12.5, 6, 13.5], "texture": "#1"}, + "west": {"uv": [14, 9.75, 14.75, 10.75], "texture": "#1"}, + "up": {"uv": [16, 1.75, 14, 1], "texture": "#1"}, + "down": {"uv": [16, 1.75, 14, 2.5], "texture": "#1"} } }, { - "from": [1, 11, 1], - "to": [15, 18, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 11, 0]}, + "from": [5, 9.9, 4.5], + "to": [11, 11.9, 6.5], + "rotation": {"angle": -22.5, "axis": "x", "origin": [0, 9.9, -1.5]}, "faces": { - "north": {"uv": [0, 4, 1.75, 4.875], "texture": "#1"}, - "east": {"uv": [3.75, 4.75, 5.5, 5.625], "texture": "#1"}, - "south": {"uv": [0, 4.875, 1.75, 5.75], "texture": "#1"}, - "west": {"uv": [1.75, 5.25, 3.5, 6.125], "texture": "#1"}, - "up": {"uv": [3.75, 5.25, 2, 3.5], "texture": "#1"}, - "down": {"uv": [5.5, 0, 3.75, 1.75], "texture": "#1"} + "north": {"uv": [2, 12, 3.5, 12.5], "texture": "#1"}, + "east": {"uv": [3.5, 10, 4, 10.5], "texture": "#1"}, + "south": {"uv": [14, 12.5, 15.5, 13], "texture": "#1"}, + "west": {"uv": [11.5, 14.5, 12, 15], "texture": "#1"}, + "up": {"uv": [15.5, 13.5, 14, 13], "texture": "#1"}, + "down": {"uv": [15.5, 13.5, 14, 14], "texture": "#1"} } }, { - "from": [6, 10.5, 6], - "to": [10, 11.5, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 10.5, 0]}, + "from": [5, 9.9, 9.5], + "to": [11, 11.9, 11.5], + "rotation": {"angle": 22.5, "axis": "x", "origin": [0, 9.9, 17.5]}, "faces": { - "north": {"uv": [6.5, 1.5, 7, 1.625], "texture": "#1"}, - "east": {"uv": [6.5, 1.625, 7, 1.75], "texture": "#1"}, - "south": {"uv": [7, 2, 7.5, 2.125], "texture": "#1"}, - "west": {"uv": [7, 2.125, 7.5, 2.25], "texture": "#1"}, - "up": {"uv": [4, 7.375, 3.5, 6.875], "texture": "#1"}, - "down": {"uv": [7.5, 1.5, 7, 2], "texture": "#1"} + "north": {"uv": [14, 14, 15.5, 14.5], "texture": "#1"}, + "east": {"uv": [12, 14.5, 12.5, 15], "texture": "#1"}, + "south": {"uv": [0, 14.25, 1.5, 14.75], "texture": "#1"}, + "west": {"uv": [12.5, 14.5, 13, 15], "texture": "#1"}, + "up": {"uv": [3, 14.75, 1.5, 14.25], "texture": "#1"}, + "down": {"uv": [4.5, 14.5, 3, 15], "texture": "#1"} + } + }, + { + "from": [6, 10, 4], + "to": [8, 12, 12], + "rotation": {"angle": 22.5, "axis": "z", "origin": [0, 8, 0]}, + "faces": { + "north": {"uv": [13, 14.5, 13.5, 15], "texture": "#1"}, + "east": {"uv": [0, 12, 2, 12.5], "texture": "#1"}, + "south": {"uv": [13.5, 14.5, 14, 15], "texture": "#1"}, + "west": {"uv": [14, 3.25, 16, 3.75], "texture": "#1"}, + "up": {"uv": [4, 10, 3.5, 8], "texture": "#1"}, + "down": {"uv": [6.5, 12.5, 6, 14.5], "texture": "#1"} + } + }, + { + "from": [8, 10, 4], + "to": [10, 12, 12], + "rotation": {"angle": -22.5, "axis": "z", "origin": [16, 8, 0]}, + "faces": { + "north": {"uv": [14, 14.5, 14.5, 15], "texture": "#1"}, + "east": {"uv": [14, 3.75, 16, 4.25], "texture": "#1"}, + "south": {"uv": [14.5, 14.5, 15, 15], "texture": "#1"}, + "west": {"uv": [14, 4.25, 16, 4.75], "texture": "#1"}, + "up": {"uv": [7, 14.5, 6.5, 12.5], "texture": "#1"}, + "down": {"uv": [14.5, 4.75, 14, 6.75], "texture": "#1"} + } + }, + { + "from": [6, 3, 14.1], + "to": [10, 17, 16.1], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 6, 0.1]}, + "faces": { + "north": {"uv": [11, 11, 12, 14.5], "texture": "#1"}, + "east": {"uv": [10, 11.5, 10.5, 15], "texture": "#1"}, + "south": {"uv": [7, 11.5, 8, 15], "texture": "#1"}, + "west": {"uv": [10.5, 11.5, 11, 15], "texture": "#1"}, + "up": {"uv": [5.5, 15, 4.5, 14.5], "texture": "#1"}, + "down": {"uv": [15.5, 4.75, 14.5, 5.25], "texture": "#1"} + } + }, + { + "from": [1, 13, 1], + "to": [15, 21, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 13, 0]}, + "faces": { + "north": {"uv": [0, 8, 3.5, 10], "texture": "#1"}, + "east": {"uv": [7.5, 9.5, 11, 11.5], "texture": "#1"}, + "south": {"uv": [0, 10, 3.5, 12], "texture": "#1"}, + "west": {"uv": [3.5, 10.5, 7, 12.5], "texture": "#1"}, + "up": {"uv": [7.5, 10.5, 4, 7], "texture": "#1"}, + "down": {"uv": [11, 0, 7.5, 3.5], "texture": "#1"} + } + }, + { + "from": [6, 12.5, 6], + "to": [10, 13.5, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 12.5, 0]}, + "faces": { + "north": {"uv": [11, 3.25, 12, 3.5], "texture": "#1"}, + "east": {"uv": [12, 3.25, 13, 3.5], "texture": "#1"}, + "south": {"uv": [13, 3.25, 14, 3.5], "texture": "#1"}, + "west": {"uv": [14, 10.75, 15, 11], "texture": "#1"}, + "up": {"uv": [15, 7.75, 14, 6.75], "texture": "#1"}, + "down": {"uv": [15, 7.75, 14, 8.75], "texture": "#1"} } }, { "name": "Egg1", - "from": [7.5, 11.4, 8.2], - "to": [9.5, 14.4, 10.2], - "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 12.4, 1.2]}, + "from": [7.5, 13.4, 8.2], + "to": [9.5, 16.4, 10.2], + "rotation": {"angle": 0, "axis": "y", "origin": [0.5, 14.4, 1.2]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [7, 10.5, 7.5, 11.25], "texture": "#1"}, + "east": {"uv": [10.5, 8.5, 11, 9.25], "texture": "#1"}, + "south": {"uv": [14.5, 5.25, 15, 6], "texture": "#1"}, + "west": {"uv": [5.5, 14.5, 6, 15.25], "texture": "#1"}, + "up": {"uv": [0.5, 15.25, 0, 14.75], "texture": "#1"}, + "down": {"uv": [1, 14.75, 0.5, 15.25], "texture": "#1"} } }, { "name": "Egg2", - "from": [9.5, 10.5, 5.8], - "to": [11.5, 13.5, 7.8], - "rotation": {"angle": 0, "axis": "y", "origin": [2.5, 11.5, -1.2]}, + "from": [8.4, 9.6, 5.8], + "to": [10.4, 12.6, 7.8], + "rotation": {"angle": -22.5, "axis": "x", "origin": [1.4, 10.6, -1.2]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [6, 14.5, 6.5, 15.25], "texture": "#1"}, + "east": {"uv": [14.5, 6, 15, 6.75], "texture": "#1"}, + "south": {"uv": [6.5, 14.5, 7, 15.25], "texture": "#1"}, + "west": {"uv": [8, 14.5, 8.5, 15.25], "texture": "#1"}, + "up": {"uv": [1.5, 15.25, 1, 14.75], "texture": "#1"}, + "down": {"uv": [2, 14.75, 1.5, 15.25], "texture": "#1"} } }, { "name": "Egg3", - "from": [5, 10.9, 6.2], - "to": [7, 13.9, 8.2], - "rotation": {"angle": 0, "axis": "y", "origin": [-2, 11.9, -0.8]}, + "from": [6.6, 9.7, 6.2], + "to": [8.6, 12.7, 8.2], + "rotation": {"angle": 22.5, "axis": "z", "origin": [-0.4, 10.7, -0.8]}, "faces": { - "north": {"uv": [1.75, 4, 2, 4.375], "texture": "#1"}, - "east": {"uv": [1.75, 4.375, 2, 4.75], "texture": "#1"}, - "south": {"uv": [1.75, 4.75, 2, 5.125], "texture": "#1"}, - "west": {"uv": [3.5, 5.25, 3.75, 5.625], "texture": "#1"}, - "up": {"uv": [5.5, 4.5, 5.25, 4.25], "texture": "#1"}, - "down": {"uv": [5.5, 4.5, 5.25, 4.75], "texture": "#1"} + "north": {"uv": [8.5, 14.5, 9, 15.25], "texture": "#1"}, + "east": {"uv": [9, 14.5, 9.5, 15.25], "texture": "#1"}, + "south": {"uv": [9.5, 14.5, 10, 15.25], "texture": "#1"}, + "west": {"uv": [11, 14.5, 11.5, 15.25], "texture": "#1"}, + "up": {"uv": [2.5, 15.25, 2, 14.75], "texture": "#1"}, + "down": {"uv": [3, 14.75, 2.5, 15.25], "texture": "#1"} } }, { "from": [4, 9.2, 9.8], "to": [12, 9.2, 13.8], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.2, -0.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.2, -0.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [10, 13.5, 8, 12.5], "texture": "#1"}, + "down": {"uv": [14, 12.5, 12, 13.5], "texture": "#1"} } }, { "from": [4, 9.2, 2.2], "to": [12, 9.2, 6.2], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.2, 16.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.2, 16.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} - } - }, - { - "from": [2, 12.025, 4], - "to": [6, 12.025, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [0, 11.025, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} - } - }, - { - "from": [10, 12.025, 4], - "to": [14, 12.025, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [16, 11.025, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} - } - }, - { - "from": [10, 12.325, 4], - "to": [14, 12.325, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [16, 11.325, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} + "up": {"uv": [2, 14.25, 0, 13.25], "texture": "#1"}, + "down": {"uv": [4, 13.25, 2, 14.25], "texture": "#1"} } }, { "from": [4, 9.5, 9.8], "to": [12, 9.5, 13.8], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.5, -0.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.5, -0.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} - } - }, - { - "from": [2, 12.325, 4], - "to": [6, 12.325, 12], - "rotation": {"angle": 0, "axis": "z", "origin": [0, 11.325, 0]}, - "faces": { - "north": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "up": {"uv": [4.5, 7.375, 4, 6.375], "texture": "#1"}, - "down": {"uv": [4.5, 6.375, 4, 7.375], "texture": "#1"} + "up": {"uv": [6, 14.5, 4, 13.5], "texture": "#1"}, + "down": {"uv": [10, 13.5, 8, 14.5], "texture": "#1"} } }, { "from": [4, 9.5, 2.2], "to": [12, 9.5, 6.2], - "rotation": {"angle": 0, "axis": "x", "origin": [0, 11.5, 16.2]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 11.5, 16.2]}, "faces": { - "north": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "east": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "south": {"uv": [0, 0, 1, 0], "texture": "#1"}, - "west": {"uv": [0, 0, 0.5, 0], "texture": "#1"}, - "up": {"uv": [7, 6.125, 6, 5.625], "texture": "#1"}, - "down": {"uv": [7, 5.625, 6, 6.125], "texture": "#1"} + "north": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "east": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "south": {"uv": [0, 0, 2, 0], "texture": "#1"}, + "west": {"uv": [0, 0, 1, 0], "texture": "#1"}, + "up": {"uv": [14, 14.5, 12, 13.5], "texture": "#1"}, + "down": {"uv": [16, 0, 14, 1], "texture": "#1"} } } ], @@ -267,8 +280,9 @@ { "name": "Root", "origin": [8, 8, 8], + "scope": 0, "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17] } ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/sounds.json b/common/src/main/resources/assets/jurassicrevived/sounds.json index d3973cb..83685e0 100755 --- a/common/src/main/resources/assets/jurassicrevived/sounds.json +++ b/common/src/main/resources/assets/jurassicrevived/sounds.json @@ -1792,5 +1792,113 @@ "sounds": [ "jurassicrevived:achillobator/achillobator_death_1" ] + }, + "suchomimus_call": { + "subtitle": "sounds.jurassicrevived.suchomimus_call", + "sounds": [ + "jurassicrevived:suchomimus/suchomimus_living_1", + "jurassicrevived:suchomimus/suchomimus_living_2", + "jurassicrevived:suchomimus/suchomimus_living_3", + "jurassicrevived:suchomimus/suchomimus_living_4", + "jurassicrevived:suchomimus/suchomimus_living_5", + "jurassicrevived:suchomimus/suchomimus_living_6", + "jurassicrevived:suchomimus/suchomimus_living_7", + "jurassicrevived:suchomimus/suchomimus_living_8" + ] + }, + "suchomimus_attack": { + "subtitle": "sounds.jurassicrevived.suchomimus_call", + "sounds": [ + "jurassicrevived:suchomimus/suchomimus_attack_1", + "jurassicrevived:suchomimus/suchomimus_attack_2" + ] + }, + "suchomimus_hurt": { + "subtitle": "sounds.jurassicrevived.suchomimus_hurt", + "sounds": [ + "jurassicrevived:suchomimus/suchomimus_hurt_1", + "jurassicrevived:suchomimus/suchomimus_hurt_2", + "jurassicrevived:suchomimus/suchomimus_hurt_3" + ] + }, + "suchomimus_death": { + "subtitle": "sounds.jurassicrevived.suchomimus_death", + "sounds": [ + "jurassicrevived:suchomimus/suchomimus_death_1" + ] + }, + "chilesaurus_call": { + "subtitle": "sounds.jurassicrevived.chilesaurus_call", + "sounds": [ + "jurassicrevived:chilesaurus/chilesaurus_living_1", + "jurassicrevived:chilesaurus/chilesaurus_living_2", + "jurassicrevived:chilesaurus/chilesaurus_living_3", + "jurassicrevived:chilesaurus/chilesaurus_living_4", + "jurassicrevived:chilesaurus/chilesaurus_living_5" + ] + }, + "chilesaurus_hurt": { + "subtitle": "sounds.jurassicrevived.chilesaurus_hurt", + "sounds": [ + "jurassicrevived:chilesaurus/chilesaurus_hurt_1", + "jurassicrevived:chilesaurus/chilesaurus_hurt_2", + "jurassicrevived:chilesaurus/chilesaurus_hurt_3" + ] + }, + "chilesaurus_death": { + "subtitle": "sounds.jurassicrevived.chilesaurus_death", + "sounds": [ + "jurassicrevived:chilesaurus/chilesaurus_death_1" + ] + }, + "mussaurus_call": { + "subtitle": "sounds.jurassicrevived.mussaurus_call", + "sounds": [ + "jurassicrevived:mussaurus/mussaurus_living_1", + "jurassicrevived:mussaurus/mussaurus_living_2", + "jurassicrevived:mussaurus/mussaurus_living_3", + "jurassicrevived:mussaurus/mussaurus_living_4", + "jurassicrevived:mussaurus/mussaurus_living_5", + "jurassicrevived:mussaurus/mussaurus_living_6" + ] + }, + "mussaurus_hurt": { + "subtitle": "sounds.jurassicrevived.mussaurus_hurt", + "sounds": [ + "jurassicrevived:mussaurus/mussaurus_hurt_1", + "jurassicrevived:mussaurus/mussaurus_hurt_2" + ] + }, + "mussaurus_death": { + "subtitle": "sounds.jurassicrevived.mussaurus_death", + "sounds": [ + "jurassicrevived:mussaurus/mussaurus_death_1" + ] + }, + "thescelosaurus_call": { + "subtitle": "sounds.jurassicrevived.thescelosaurus_call", + "sounds": [ + "jurassicrevived:thescelosaurus/thescelosaurus_living_1", + "jurassicrevived:thescelosaurus/thescelosaurus_living_2", + "jurassicrevived:thescelosaurus/thescelosaurus_living_3", + "jurassicrevived:thescelosaurus/thescelosaurus_living_4", + "jurassicrevived:thescelosaurus/thescelosaurus_living_5", + "jurassicrevived:thescelosaurus/thescelosaurus_living_6", + "jurassicrevived:thescelosaurus/thescelosaurus_living_7", + "jurassicrevived:thescelosaurus/thescelosaurus_living_8" + ] + }, + "thescelosaurus_hurt": { + "subtitle": "sounds.jurassicrevived.thescelosaurus_hurt", + "sounds": [ + "jurassicrevived:thescelosaurus/thescelosaurus_hurt_1", + "jurassicrevived:thescelosaurus/thescelosaurus_hurt_2" + ] + }, + "thescelosaurus_death": { + "subtitle": "sounds.jurassicrevived.thescelosaurus_death", + "sounds": [ + "jurassicrevived:thescelosaurus/thescelosaurus_death_1" + ] } } \ No newline at end of file diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_death_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_death_1.ogg new file mode 100644 index 0000000..f0dd01f Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_death_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_hurt_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_hurt_1.ogg new file mode 100644 index 0000000..854ba8a Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_hurt_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_hurt_2.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_hurt_2.ogg new file mode 100644 index 0000000..11a5c90 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_hurt_2.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_hurt_3.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_hurt_3.ogg new file mode 100644 index 0000000..3496a6f Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_hurt_3.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_1.ogg new file mode 100644 index 0000000..3ed9d0a Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_2.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_2.ogg new file mode 100644 index 0000000..b5a2b56 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_2.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_3.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_3.ogg new file mode 100644 index 0000000..a052c76 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_3.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_4.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_4.ogg new file mode 100644 index 0000000..d5d80ee Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_4.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_5.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_5.ogg new file mode 100644 index 0000000..d71e436 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/chilesaurus/chilesaurus_living_5.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_death_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_death_1.ogg new file mode 100644 index 0000000..20d8394 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_death_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_hurt_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_hurt_1.ogg new file mode 100644 index 0000000..e8187a6 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_hurt_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_hurt_2.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_hurt_2.ogg new file mode 100644 index 0000000..d71c90f Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_hurt_2.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_1.ogg new file mode 100644 index 0000000..3c2134c Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_2.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_2.ogg new file mode 100644 index 0000000..d1b145e Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_2.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_3.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_3.ogg new file mode 100644 index 0000000..877d477 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_3.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_4.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_4.ogg new file mode 100644 index 0000000..41f7fdb Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_4.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_5.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_5.ogg new file mode 100644 index 0000000..642aea7 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_5.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_6.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_6.ogg new file mode 100644 index 0000000..aa26d23 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/mussaurus/mussaurus_living_6.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_attack_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_attack_1.ogg new file mode 100644 index 0000000..8f05a25 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_attack_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_attack_2.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_attack_2.ogg new file mode 100644 index 0000000..00712e6 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_attack_2.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_death_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_death_1.ogg new file mode 100644 index 0000000..b1ff08e Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_death_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_hurt_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_hurt_1.ogg new file mode 100644 index 0000000..e66dfc2 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_hurt_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_hurt_2.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_hurt_2.ogg new file mode 100644 index 0000000..2d698a3 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_hurt_2.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_hurt_3.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_hurt_3.ogg new file mode 100644 index 0000000..c1e3d34 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_hurt_3.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_1.ogg new file mode 100644 index 0000000..4bcbaa6 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_2.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_2.ogg new file mode 100644 index 0000000..6b9694c Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_2.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_3.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_3.ogg new file mode 100644 index 0000000..dd9ceab Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_3.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_4.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_4.ogg new file mode 100644 index 0000000..56f4745 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_4.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_5.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_5.ogg new file mode 100644 index 0000000..970b3d0 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_5.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_6.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_6.ogg new file mode 100644 index 0000000..5205d23 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_6.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_7.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_7.ogg new file mode 100644 index 0000000..e0a841c Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_7.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_8.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_8.ogg new file mode 100644 index 0000000..8b6c9b3 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/suchomimus/suchomimus_living_8.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_death_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_death_1.ogg new file mode 100644 index 0000000..d7ce916 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_death_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_hurt_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_hurt_1.ogg new file mode 100644 index 0000000..d0f70eb Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_hurt_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_hurt_2.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_hurt_2.ogg new file mode 100644 index 0000000..afc6135 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_hurt_2.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_1.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_1.ogg new file mode 100644 index 0000000..1526f33 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_1.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_2.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_2.ogg new file mode 100644 index 0000000..29ca62a Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_2.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_3.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_3.ogg new file mode 100644 index 0000000..cc6573f Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_3.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_4.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_4.ogg new file mode 100644 index 0000000..dca8949 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_4.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_5.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_5.ogg new file mode 100644 index 0000000..a4c3a87 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_5.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_6.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_6.ogg new file mode 100644 index 0000000..12ad7b5 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_6.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_7.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_7.ogg new file mode 100644 index 0000000..dce0f8d Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_7.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_8.ogg b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_8.ogg new file mode 100644 index 0000000..32db9bc Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/sounds/thescelosaurus/thescelosaurus_living_8.ogg differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/amber_ore.png b/common/src/main/resources/assets/jurassicrevived/textures/block/amber_ore.png index f9c65fa..72bcea0 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/amber_ore.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/amber_ore.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/chilesaurus_egg.png b/common/src/main/resources/assets/jurassicrevived/textures/block/chilesaurus_egg.png new file mode 100644 index 0000000..d878df6 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/block/chilesaurus_egg.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/dna_analyzer.png b/common/src/main/resources/assets/jurassicrevived/textures/block/dna_analyzer.png index e728c07..8d12d42 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/dna_analyzer.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/dna_analyzer.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/dna_extractor.png b/common/src/main/resources/assets/jurassicrevived/textures/block/dna_extractor.png index 9b43947..89d2f35 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/dna_extractor.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/dna_extractor.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/dna_hybridizer.png b/common/src/main/resources/assets/jurassicrevived/textures/block/dna_hybridizer.png index 724aef0..881f3b6 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/dna_hybridizer.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/dna_hybridizer.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/embryo_calcification_machine.png b/common/src/main/resources/assets/jurassicrevived/textures/block/embryo_calcification_machine.png index 4b6ee2e..08977f6 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/embryo_calcification_machine.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/embryo_calcification_machine.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/embryonic_machine.png b/common/src/main/resources/assets/jurassicrevived/textures/block/embryonic_machine.png index a0f2890..6a72402 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/embryonic_machine.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/embryonic_machine.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/fossil_cleaner.png b/common/src/main/resources/assets/jurassicrevived/textures/block/fossil_cleaner.png index bfb33bc..af1dad8 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/fossil_cleaner.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/fossil_cleaner.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/fossil_grinder.png b/common/src/main/resources/assets/jurassicrevived/textures/block/fossil_grinder.png index c59218a..034ac24 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/fossil_grinder.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/fossil_grinder.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/generator.png b/common/src/main/resources/assets/jurassicrevived/textures/block/generator.png index d500068..97e4474 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/generator.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/generator.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_chilesaurus_egg.png b/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_chilesaurus_egg.png new file mode 100644 index 0000000..026f03a Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_chilesaurus_egg.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_mussasaurus_egg.png b/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_mussasaurus_egg.png new file mode 100644 index 0000000..5ec31fb Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_mussasaurus_egg.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_suchomimus_egg.png b/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_suchomimus_egg.png new file mode 100644 index 0000000..f62fdce Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_suchomimus_egg.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_thescelosaurus_egg.png b/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_thescelosaurus_egg.png new file mode 100644 index 0000000..bb0126f Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/block/incubated_thescelosaurus_egg.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/incubator.png b/common/src/main/resources/assets/jurassicrevived/textures/block/incubator.png index d01d36d..65a30b6 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/incubator.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/incubator.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/mussasaurus_egg.png b/common/src/main/resources/assets/jurassicrevived/textures/block/mussasaurus_egg.png new file mode 100644 index 0000000..a551fb3 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/block/mussasaurus_egg.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/suchomimus_egg.png b/common/src/main/resources/assets/jurassicrevived/textures/block/suchomimus_egg.png new file mode 100644 index 0000000..0db5231 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/block/suchomimus_egg.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/thescelosaurus_egg.png b/common/src/main/resources/assets/jurassicrevived/textures/block/thescelosaurus_egg.png new file mode 100644 index 0000000..8be3744 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/block/thescelosaurus_egg.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_analyzer.png b/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_analyzer.png index 78827de..c8d8f4e 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_analyzer.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_analyzer.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_extractor.png b/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_extractor.png index 6a916a2..4d62014 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_extractor.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_extractor.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_hybridizer.png b/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_hybridizer.png index 2b0fdc1..7419145 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_hybridizer.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/white_dna_hybridizer.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/white_embryo_calcification_machine.png b/common/src/main/resources/assets/jurassicrevived/textures/block/white_embryo_calcification_machine.png index 51793ea..65e7ecd 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/white_embryo_calcification_machine.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/white_embryo_calcification_machine.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/white_embryonic_machine.png b/common/src/main/resources/assets/jurassicrevived/textures/block/white_embryonic_machine.png index 9261e47..512b67b 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/white_embryonic_machine.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/white_embryonic_machine.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/white_fossil_cleaner.png b/common/src/main/resources/assets/jurassicrevived/textures/block/white_fossil_cleaner.png index a24d2b6..5674bfb 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/white_fossil_cleaner.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/white_fossil_cleaner.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/white_fossil_grinder.png b/common/src/main/resources/assets/jurassicrevived/textures/block/white_fossil_grinder.png index 4943adc..4ec6ac0 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/white_fossil_grinder.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/white_fossil_grinder.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/white_generator.png b/common/src/main/resources/assets/jurassicrevived/textures/block/white_generator.png index a33222f..813b54d 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/white_generator.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/white_generator.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/block/white_incubator.png b/common/src/main/resources/assets/jurassicrevived/textures/block/white_incubator.png index 5889813..487cb0b 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/block/white_incubator.png and b/common/src/main/resources/assets/jurassicrevived/textures/block/white_incubator.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/entity/chilesaurus.png b/common/src/main/resources/assets/jurassicrevived/textures/entity/chilesaurus.png new file mode 100644 index 0000000..5e1d89a Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/entity/chilesaurus.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/entity/chilesaurus_female.png b/common/src/main/resources/assets/jurassicrevived/textures/entity/chilesaurus_female.png new file mode 100644 index 0000000..94bc8c2 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/entity/chilesaurus_female.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/entity/mussasaurus.png b/common/src/main/resources/assets/jurassicrevived/textures/entity/mussasaurus.png new file mode 100644 index 0000000..b96f3a0 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/entity/mussasaurus.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/entity/mussasaurus_female.png b/common/src/main/resources/assets/jurassicrevived/textures/entity/mussasaurus_female.png new file mode 100644 index 0000000..908b5f4 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/entity/mussasaurus_female.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/entity/suchomimus.png b/common/src/main/resources/assets/jurassicrevived/textures/entity/suchomimus.png new file mode 100644 index 0000000..8b4ea23 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/entity/suchomimus.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/entity/suchomimus_female.png b/common/src/main/resources/assets/jurassicrevived/textures/entity/suchomimus_female.png new file mode 100644 index 0000000..81b232d Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/entity/suchomimus_female.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/entity/thescelosaurus.png b/common/src/main/resources/assets/jurassicrevived/textures/entity/thescelosaurus.png new file mode 100644 index 0000000..a47fb1f Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/entity/thescelosaurus.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/entity/thescelosaurus_female.png b/common/src/main/resources/assets/jurassicrevived/textures/entity/thescelosaurus_female.png new file mode 100644 index 0000000..875dfa8 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/entity/thescelosaurus_female.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_dna.png b/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_dna.png new file mode 100644 index 0000000..83eeec2 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_dna.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_skull_fossil.png b/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_skull_fossil.png new file mode 100644 index 0000000..b6200d7 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_skull_fossil.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_syringe.png b/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_syringe.png new file mode 100644 index 0000000..6e54799 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_syringe.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_tissue.png b/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_tissue.png new file mode 100644 index 0000000..571faa6 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/chilesaurus_tissue.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/crushed_fossil.png b/common/src/main/resources/assets/jurassicrevived/textures/item/crushed_fossil.png index 6490059..8c12b9f 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/item/crushed_fossil.png and b/common/src/main/resources/assets/jurassicrevived/textures/item/crushed_fossil.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_chilesaurus_skull.png b/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_chilesaurus_skull.png new file mode 100644 index 0000000..0dbd353 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_chilesaurus_skull.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_mussasaurus_skull.png b/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_mussasaurus_skull.png new file mode 100644 index 0000000..8988428 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_mussasaurus_skull.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_suchomimus_skull.png b/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_suchomimus_skull.png new file mode 100644 index 0000000..f71c958 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_suchomimus_skull.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_thescelosaurus_skull.png b/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_thescelosaurus_skull.png new file mode 100644 index 0000000..91dba24 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/fresh_thescelosaurus_skull.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/frozen_leech.png b/common/src/main/resources/assets/jurassicrevived/textures/item/frozen_leech.png index 4ee7cf4..c2c260b 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/item/frozen_leech.png and b/common/src/main/resources/assets/jurassicrevived/textures/item/frozen_leech.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/mosquito_in_amber.png b/common/src/main/resources/assets/jurassicrevived/textures/item/mosquito_in_amber.png index 92669b1..9d10d00 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/item/mosquito_in_amber.png and b/common/src/main/resources/assets/jurassicrevived/textures/item/mosquito_in_amber.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_dna.png b/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_dna.png new file mode 100644 index 0000000..785e4f8 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_dna.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_skull_fossil.png b/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_skull_fossil.png new file mode 100644 index 0000000..357a239 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_skull_fossil.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_syringe.png b/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_syringe.png new file mode 100644 index 0000000..0a7397a Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_syringe.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_tissue.png b/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_tissue.png new file mode 100644 index 0000000..fb54df1 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/mussasaurus_tissue.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/processor.png b/common/src/main/resources/assets/jurassicrevived/textures/item/processor.png index db5f022..4cae5cb 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/item/processor.png and b/common/src/main/resources/assets/jurassicrevived/textures/item/processor.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/screen.png b/common/src/main/resources/assets/jurassicrevived/textures/item/screen.png index bb81e21..fac9ee5 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/item/screen.png and b/common/src/main/resources/assets/jurassicrevived/textures/item/screen.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_dna.png b/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_dna.png new file mode 100644 index 0000000..0d390dd Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_dna.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_skull_fossil.png b/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_skull_fossil.png new file mode 100644 index 0000000..da206c7 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_skull_fossil.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_syringe.png b/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_syringe.png new file mode 100644 index 0000000..9377328 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_syringe.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_tissue.png b/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_tissue.png new file mode 100644 index 0000000..0140fc0 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/suchomimus_tissue.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_dna.png b/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_dna.png new file mode 100644 index 0000000..913e2eb Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_dna.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_skull_fossil.png b/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_skull_fossil.png new file mode 100644 index 0000000..6dc91f6 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_skull_fossil.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_syringe.png b/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_syringe.png new file mode 100644 index 0000000..d1e90f8 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_syringe.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_tissue.png b/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_tissue.png new file mode 100644 index 0000000..ae0a6b2 Binary files /dev/null and b/common/src/main/resources/assets/jurassicrevived/textures/item/thescelosaurus_tissue.png differ diff --git a/common/src/main/resources/assets/jurassicrevived/textures/item/tire.png b/common/src/main/resources/assets/jurassicrevived/textures/item/tire.png index 8f69180..4979c63 100644 Binary files a/common/src/main/resources/assets/jurassicrevived/textures/item/tire.png and b/common/src/main/resources/assets/jurassicrevived/textures/item/tire.png differ diff --git a/fabricmc/src/main/java/net/cmr/jurassicrevived/JRMod.java b/fabricmc/src/main/java/net/cmr/jurassicrevived/JRMod.java index a981321..f247317 100755 --- a/fabricmc/src/main/java/net/cmr/jurassicrevived/JRMod.java +++ b/fabricmc/src/main/java/net/cmr/jurassicrevived/JRMod.java @@ -8,6 +8,8 @@ import net.cmr.jurassicrevived.platform.FabricEnergyWrapper; import net.cmr.jurassicrevived.platform.FabricTransferHelper; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidStorage; +import net.fabricmc.fabric.api.transfer.v1.item.InventoryStorage; +import net.fabricmc.fabric.api.transfer.v1.item.ItemStorage; import team.reborn.energy.api.EnergyStorage; public class JRMod implements ModInitializer @@ -28,6 +30,56 @@ public class JRMod implements ModInitializer ModBlockEntities.TANK_BE.get() ); + FluidStorage.SIDED.registerForBlockEntities((be, side) -> + new FabricTransferHelper.InternalFluidStorage(((FossilCleanerBlockEntity) be).getFluidHandler(side)), + ModBlockEntities.FOSSIL_CLEANER_BE.get() + ); + + ItemStorage.SIDED.registerForBlockEntities((be, side) -> + InventoryStorage.of(((GeneratorBlockEntity) be).itemHandler, side), + ModBlockEntities.GENERATOR_BE.get() + ); + + ItemStorage.SIDED.registerForBlockEntities((be, side) -> + InventoryStorage.of(((DNAExtractorBlockEntity) be).itemHandler, side), + ModBlockEntities.DNA_EXTRACTOR_BE.get() + ); + + ItemStorage.SIDED.registerForBlockEntities((be, side) -> + InventoryStorage.of(((DNAAnalyzerBlockEntity) be).itemHandler, side), + ModBlockEntities.DNA_ANALYZER_BE.get() + ); + + ItemStorage.SIDED.registerForBlockEntities((be, side) -> + InventoryStorage.of(((DNAHybridizerBlockEntity) be).itemHandler, side), + ModBlockEntities.DNA_HYBRIDIZER_BE.get() + ); + + ItemStorage.SIDED.registerForBlockEntities((be, side) -> + InventoryStorage.of(((FossilCleanerBlockEntity) be).itemHandler, side), + ModBlockEntities.FOSSIL_CLEANER_BE.get() + ); + + ItemStorage.SIDED.registerForBlockEntities((be, side) -> + InventoryStorage.of(((FossilGrinderBlockEntity) be).itemHandler, side), + ModBlockEntities.FOSSIL_GRINDER_BE.get() + ); + + ItemStorage.SIDED.registerForBlockEntities((be, side) -> + InventoryStorage.of(((EmbryonicMachineBlockEntity) be).itemHandler, side), + ModBlockEntities.EMBRYONIC_MACHINE_BE.get() + ); + + ItemStorage.SIDED.registerForBlockEntities((be, side) -> + InventoryStorage.of(((EmbryoCalcificationMachineBlockEntity) be).itemHandler, side), + ModBlockEntities.EMBRYO_CALCIFICATION_MACHINE_BE.get() + ); + + ItemStorage.SIDED.registerForBlockEntities((be, side) -> + InventoryStorage.of(((IncubatorBlockEntity) be).itemHandler, side), + ModBlockEntities.INCUBATOR_BE.get() + ); + EnergyStorage.SIDED.registerForBlockEntities((be, side) -> new FabricEnergyWrapper(((PowerCellBlockEntity) be).getEnergyStorage(side)), ModBlockEntities.POWER_CELL_BE.get() diff --git a/fabricmc/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java b/fabricmc/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java index bc18247..d783b88 100755 --- a/fabricmc/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java +++ b/fabricmc/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java @@ -58,6 +58,15 @@ public final class JRClothConfigScreens { .build() ); + general.addEntry( + eb.startBooleanToggle(Component.literal("Dinosaur Natural Breeding"), cfg.naturalBreeding) + .setDefaultValue(false) + .setTooltip(Component.literal("When enabled, dinosaurs have a chance to breed naturally over time. Disabled by default. Life finds a way...")) + .setSaveConsumer(v -> cfg.naturalBreeding = v) + .requireRestart() + .build() + ); + general.addEntry( eb.startIntField(Component.literal("FE Per Second"), cfg.fePerSecond) .setDefaultValue(1000) diff --git a/fabricmc/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java b/fabricmc/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java index 1bcceee..37cc282 100755 --- a/fabricmc/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java +++ b/fabricmc/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java @@ -11,6 +11,7 @@ public class DataGenerators implements DataGeneratorEntrypoint { pack.addProvider(FabricModModelProvider::new); pack.addProvider(FabricBlockTagProvider::new); pack.addProvider(FabricItemTagProvider::new); + pack.addProvider(FabricEntityTagProvider::new); pack.addProvider(FabricBlockLootTableProvider::new); pack.addProvider(FabricEntityLootTableProvider::new); pack.addProvider(FabricRecipeProvider::new); diff --git a/fabricmc/src/main/java/net/cmr/jurassicrevived/datagen/FabricEntityTagProvider.java b/fabricmc/src/main/java/net/cmr/jurassicrevived/datagen/FabricEntityTagProvider.java new file mode 100644 index 0000000..2349d57 --- /dev/null +++ b/fabricmc/src/main/java/net/cmr/jurassicrevived/datagen/FabricEntityTagProvider.java @@ -0,0 +1,26 @@ +package net.cmr.jurassicrevived.datagen; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; +import net.minecraft.core.HolderLookup; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.EntityType; + +import java.util.concurrent.CompletableFuture; + +public class FabricEntityTagProvider extends FabricTagProvider.EntityTypeTagProvider implements ModEntityTagProvider.EntityTagHelper { + + public FabricEntityTagProvider(FabricDataOutput output, CompletableFuture registriesFuture) { + super(output, registriesFuture); + } + + @Override + protected void addTags(HolderLookup.Provider wrapperLookup) { + ModEntityTagProvider.registerEntityTags(this); + } + + @Override + public void tag(TagKey> tag, EntityType... entityTypes) { + getOrCreateTagBuilder(tag).add(entityTypes); + } +} diff --git a/gradle.properties b/gradle.properties index 4ae9eb0..eaf8c8c 100755 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ fabric.loom.multiProjectOptimisation=true mod.name=Jurassic Revived mod.id=jurassicrevived mod.group=net.cmr.jurassicrevived -mod.version=0.211.0 +mod.version=0.215.0 mod.author=CMR Team, Eli Gibbs mod.description=A Minecraft mod that brings dinosaurs back to life using ancient DNA and modern technology\nBreed, study, and build your own prehistoric park with a wide variety of creatures... mod.license=CC-BY-ND-4.0 diff --git a/minecraftforge/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java b/minecraftforge/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java index bc18247..ab0f113 100755 --- a/minecraftforge/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java +++ b/minecraftforge/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java @@ -58,6 +58,15 @@ public final class JRClothConfigScreens { .build() ); + general.addEntry( + eb.startBooleanToggle(Component.literal("Dinosaur Natural Breeding"), cfg.naturalBreeding) + .setDefaultValue(false) + .setTooltip(Component.literal("When enabled, dinosaurs have a chance to breed naturally over time. Disabled by default. Life finds a way...")) + .setSaveConsumer(v -> cfg.naturalBreeding = v) + .requireRestart() + .build() + ); + general.addEntry( eb.startIntField(Component.literal("FE Per Second"), cfg.fePerSecond) .setDefaultValue(1000) diff --git a/minecraftforge/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java b/minecraftforge/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java index d31523e..a178f59 100755 --- a/minecraftforge/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java +++ b/minecraftforge/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java @@ -32,8 +32,9 @@ public class DataGenerators { BlockTagsProvider blockTagsProvider = new ForgeBlockTagProvider(packOutput, lookupProvider, existingFileHelper); generator.addProvider(event.includeServer(), blockTagsProvider); generator.addProvider(event.includeServer(), new ForgeItemTagProvider(packOutput, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper)); + generator.addProvider(event.includeServer(), new ForgeEntityTagProvider(packOutput, lookupProvider, existingFileHelper)); - generator.addProvider(event.includeServer(), new LootTableProvider(packOutput, Collections.emptySet(), + generator.addProvider(event.includeServer(), new LootTableProvider(packOutput, Collections.emptySet(), List.of( new LootTableProvider.SubProviderEntry(ForgeBlockLootTableProvider::new, LootContextParamSets.BLOCK), new LootTableProvider.SubProviderEntry(ForgeEntityLootTableProvider::new, LootContextParamSets.ENTITY) diff --git a/minecraftforge/src/main/java/net/cmr/jurassicrevived/datagen/ForgeEntityTagProvider.java b/minecraftforge/src/main/java/net/cmr/jurassicrevived/datagen/ForgeEntityTagProvider.java new file mode 100644 index 0000000..78faa27 --- /dev/null +++ b/minecraftforge/src/main/java/net/cmr/jurassicrevived/datagen/ForgeEntityTagProvider.java @@ -0,0 +1,29 @@ +package net.cmr.jurassicrevived.datagen; + +import net.cmr.jurassicrevived.Constants; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.tags.EntityTypeTagsProvider; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.EntityType; +import net.minecraftforge.common.data.ExistingFileHelper; +import org.jetbrains.annotations.Nullable; + +import java.util.concurrent.CompletableFuture; + +public class ForgeEntityTagProvider extends EntityTypeTagsProvider implements ModEntityTagProvider.EntityTagHelper { + + public ForgeEntityTagProvider(PackOutput output, CompletableFuture lookupProvider, @Nullable ExistingFileHelper existingFileHelper) { + super(output, lookupProvider, Constants.MOD_ID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.Provider provider) { + ModEntityTagProvider.registerEntityTags(this); + } + + @Override + public void tag(TagKey> tag, EntityType... entityTypes) { + tag(tag).add(entityTypes); + } +} diff --git a/minecraftforge/src/main/java/net/cmr/jurassicrevived/event/ForgeEvents.java b/minecraftforge/src/main/java/net/cmr/jurassicrevived/event/ForgeEvents.java index fdcec02..13f7689 100755 --- a/minecraftforge/src/main/java/net/cmr/jurassicrevived/event/ForgeEvents.java +++ b/minecraftforge/src/main/java/net/cmr/jurassicrevived/event/ForgeEvents.java @@ -6,6 +6,7 @@ import net.cmr.jurassicrevived.block.entity.custom.*; import net.cmr.jurassicrevived.config.JRConfigManager; import net.cmr.jurassicrevived.platform.ForgeEnergyStorage; import net.cmr.jurassicrevived.platform.ForgeTankFluidAdapter; +import net.cmr.jurassicrevived.platform.transfer.InternalFluidHandler; import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.entity.BlockEntity; @@ -17,6 +18,7 @@ import net.minecraftforge.event.AttachCapabilitiesEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.common.util.NonNullSupplier; +import net.minecraftforge.items.wrapper.InvWrapper; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -39,7 +41,49 @@ public class ForgeEvents { if (be instanceof TankBlockEntity tank) { event.addCapability(Constants.rl("fluid_tank"), - new FluidProvider(() -> new ForgeTankFluidAdapter(tank.getTank(null)))); + new FluidProvider(() -> new ForgeInternalFluidHandlerAdapter(tank.getFluidHandler(null)))); + } + + if (be instanceof FossilCleanerBlockEntity cleaner) { + event.addCapability(Constants.rl("fluid_fossil_cleaner"), + new FluidProvider(() -> new ForgeInternalFluidHandlerAdapter(cleaner.getFluidHandler(null)))); + } + + if (be instanceof GeneratorBlockEntity gen) { + event.addCapability(Constants.rl("item_generator"), + new ItemProvider(() -> new InvWrapper(gen.itemHandler))); + } + if (be instanceof DNAExtractorBlockEntity dna) { + event.addCapability(Constants.rl("item_dna_extractor"), + new ItemProvider(() -> new InvWrapper(dna.itemHandler))); + } + if (be instanceof DNAAnalyzerBlockEntity dna) { + event.addCapability(Constants.rl("item_dna_analyzer"), + new ItemProvider(() -> new InvWrapper(dna.itemHandler))); + } + if (be instanceof DNAHybridizerBlockEntity dna) { + event.addCapability(Constants.rl("item_dna_hybridizer"), + new ItemProvider(() -> new InvWrapper(dna.itemHandler))); + } + if (be instanceof FossilCleanerBlockEntity fc) { + event.addCapability(Constants.rl("item_fossil_cleaner"), + new ItemProvider(() -> new InvWrapper(fc.itemHandler))); + } + if (be instanceof FossilGrinderBlockEntity fg) { + event.addCapability(Constants.rl("item_fossil_grinder"), + new ItemProvider(() -> new InvWrapper(fg.itemHandler))); + } + if (be instanceof EmbryonicMachineBlockEntity em) { + event.addCapability(Constants.rl("item_embryonic_machine"), + new ItemProvider(() -> new InvWrapper(em.itemHandler))); + } + if (be instanceof EmbryoCalcificationMachineBlockEntity ec) { + event.addCapability(Constants.rl("item_embryo_calcification"), + new ItemProvider(() -> new InvWrapper(ec.itemHandler))); + } + if (be instanceof IncubatorBlockEntity inc) { + event.addCapability(Constants.rl("item_incubator"), + new ItemProvider(() -> new InvWrapper(inc.itemHandler))); } if (JRConfigManager.get().requirePower) { @@ -91,6 +135,21 @@ public class ForgeEvents { } } + private static final class ItemProvider implements ICapabilityProvider { + private final LazyOptional lazy; + + private ItemProvider(NonNullSupplier supplier) { + this.lazy = LazyOptional.of(supplier); + } + + @Override + public @NotNull LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) { + return cap == ForgeCapabilities.ITEM_HANDLER ? lazy.cast() : LazyOptional.empty(); + } + } + + + private static final class FluidProvider implements ICapabilityProvider { private final LazyOptional lazy; @@ -103,4 +162,54 @@ public class ForgeEvents { return cap == ForgeCapabilities.FLUID_HANDLER ? lazy.cast() : LazyOptional.empty(); } } + + private static class ForgeInternalFluidHandlerAdapter implements net.minecraftforge.fluids.capability.IFluidHandler { + private final InternalFluidHandler handler; + + public ForgeInternalFluidHandlerAdapter(InternalFluidHandler handler) { + this.handler = handler; + } + + @Override + public int getTanks() { + return 1; + } + + @Override + public @NotNull net.minecraftforge.fluids.FluidStack getFluidInTank(int tank) { + if (tank != 0) return net.minecraftforge.fluids.FluidStack.EMPTY; + var fluid = handler.getFluid(); + return new net.minecraftforge.fluids.FluidStack(fluid.getFluid(), (int) fluid.getAmount()); + } + + @Override + public int getTankCapacity(int tank) { + return tank == 0 ? (int) handler.getCapacity() : 0; + } + + @Override + public boolean isFluidValid(int tank, @NotNull net.minecraftforge.fluids.FluidStack stack) { + return tank == 0; + } + + @Override + public int fill(net.minecraftforge.fluids.FluidStack resource, FluidAction action) { + if (resource.isEmpty()) return 0; + long filled = handler.fill(dev.architectury.fluid.FluidStack.create(resource.getFluid(), resource.getAmount()), action.simulate()); + return (int) filled; + } + + @Override + public @NotNull net.minecraftforge.fluids.FluidStack drain(net.minecraftforge.fluids.FluidStack resource, FluidAction action) { + if (resource.isEmpty()) return net.minecraftforge.fluids.FluidStack.EMPTY; + var drained = handler.drain(resource.getAmount(), action.simulate()); + return new net.minecraftforge.fluids.FluidStack(drained.getFluid(), (int) drained.getAmount()); + } + + @Override + public @NotNull net.minecraftforge.fluids.FluidStack drain(int maxDrain, FluidAction action) { + var drained = handler.drain(maxDrain, action.simulate()); + return new net.minecraftforge.fluids.FluidStack(drained.getFluid(), (int) drained.getAmount()); + } + } } \ No newline at end of file diff --git a/neoforge/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java b/neoforge/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java index bc18247..ab0f113 100755 --- a/neoforge/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java +++ b/neoforge/src/main/java/net/cmr/jurassicrevived/client/config/JRClothConfigScreens.java @@ -58,6 +58,15 @@ public final class JRClothConfigScreens { .build() ); + general.addEntry( + eb.startBooleanToggle(Component.literal("Dinosaur Natural Breeding"), cfg.naturalBreeding) + .setDefaultValue(false) + .setTooltip(Component.literal("When enabled, dinosaurs have a chance to breed naturally over time. Disabled by default. Life finds a way...")) + .setSaveConsumer(v -> cfg.naturalBreeding = v) + .requireRestart() + .build() + ); + general.addEntry( eb.startIntField(Component.literal("FE Per Second"), cfg.fePerSecond) .setDefaultValue(1000) diff --git a/neoforge/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java b/neoforge/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java index d05a792..8b486b5 100755 --- a/neoforge/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java +++ b/neoforge/src/main/java/net/cmr/jurassicrevived/datagen/DataGenerators.java @@ -32,6 +32,7 @@ public class DataGenerators { BlockTagsProvider blockTagsProvider = new NeoForgeBlockTagProvider(packOutput, lookupProvider, existingFileHelper); generator.addProvider(event.includeServer(), blockTagsProvider); generator.addProvider(event.includeServer(), new NeoForgeItemTagProvider(packOutput, lookupProvider, blockTagsProvider.contentsGetter(), existingFileHelper)); + generator.addProvider(event.includeServer(), new NeoForgeEntityTagProvider(packOutput, lookupProvider, existingFileHelper)); generator.addProvider(event.includeServer(), new LootTableProvider(packOutput, Collections.emptySet(), List.of( diff --git a/neoforge/src/main/java/net/cmr/jurassicrevived/datagen/NeoForgeEntityTagProvider.java b/neoforge/src/main/java/net/cmr/jurassicrevived/datagen/NeoForgeEntityTagProvider.java new file mode 100644 index 0000000..d34bd16 --- /dev/null +++ b/neoforge/src/main/java/net/cmr/jurassicrevived/datagen/NeoForgeEntityTagProvider.java @@ -0,0 +1,29 @@ +package net.cmr.jurassicrevived.datagen; + +import net.cmr.jurassicrevived.Constants; +import net.minecraft.core.HolderLookup; +import net.minecraft.data.PackOutput; +import net.minecraft.data.tags.EntityTypeTagsProvider; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.EntityType; +import net.neoforged.neoforge.common.data.ExistingFileHelper; +import org.jetbrains.annotations.Nullable; + +import java.util.concurrent.CompletableFuture; + +public class NeoForgeEntityTagProvider extends EntityTypeTagsProvider implements ModEntityTagProvider.EntityTagHelper { + + public NeoForgeEntityTagProvider(PackOutput output, CompletableFuture lookupProvider, @Nullable ExistingFileHelper existingFileHelper) { + super(output, lookupProvider, Constants.MOD_ID, existingFileHelper); + } + + @Override + protected void addTags(HolderLookup.Provider provider) { + ModEntityTagProvider.registerEntityTags(this); + } + + @Override + public void tag(TagKey> tag, EntityType... entityTypes) { + tag(tag).add(entityTypes); + } +} diff --git a/neoforge/src/main/java/net/cmr/jurassicrevived/event/NeoForgeEvents.java b/neoforge/src/main/java/net/cmr/jurassicrevived/event/NeoForgeEvents.java index e862e47..480dd42 100755 --- a/neoforge/src/main/java/net/cmr/jurassicrevived/event/NeoForgeEvents.java +++ b/neoforge/src/main/java/net/cmr/jurassicrevived/event/NeoForgeEvents.java @@ -5,6 +5,7 @@ import net.cmr.jurassicrevived.block.entity.ModBlockEntities; import net.cmr.jurassicrevived.block.entity.custom.*; import net.cmr.jurassicrevived.config.JRConfigManager; import net.cmr.jurassicrevived.neoforge.capabilities.NeoForgeEnergyStorage; +import net.cmr.jurassicrevived.platform.transfer.InternalFluidHandler; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.capabilities.Capabilities; @@ -17,18 +18,33 @@ public class NeoForgeEvents { @SubscribeEvent public static void registerCapabilities(RegisterCapabilitiesEvent event) { - /* Items - event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.GENERATOR_BE.get(), (be, side) -> be.getItemHandler(side)); - event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.DNA_EXTRACTOR_BE.get(), (be, side) -> be.getItemHandler(side)); - event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.DNA_ANALYZER_BE.get(), (be, side) -> be.getItemHandler(side)); - event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.DNA_HYBRIDIZER_BE.get(), (be, side) -> be.getItemHandler(side)); - event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.FOSSIL_CLEANER_BE.get(), (be, side) -> be.getItemHandler(side)); - event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.FOSSIL_GRINDER_BE.get(), (be, side) -> be.getItemHandler(side)); - event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.EMBRYONIC_MACHINE_BE.get(), (be, side) -> be.getItemHandler(side)); - event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.EMBRYO_CALCIFICATION_MACHINE_BE.get(), (be, side) -> be.getItemHandler(side)); - event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.CRATE_BE.get(), (be, side) -> be.getItemHandler(side)); - event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.INCUBATOR_BE.get(), (be, side) -> be.getItemHandler(side)); - */ + event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.GENERATOR_BE.get(), + (be, side) -> new net.neoforged.neoforge.items.wrapper.InvWrapper(((GeneratorBlockEntity) be).itemHandler)); + + event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.DNA_EXTRACTOR_BE.get(), + (be, side) -> new net.neoforged.neoforge.items.wrapper.InvWrapper(((DNAExtractorBlockEntity) be).itemHandler)); + + event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.DNA_ANALYZER_BE.get(), + (be, side) -> new net.neoforged.neoforge.items.wrapper.InvWrapper(((DNAAnalyzerBlockEntity) be).itemHandler)); + + event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.DNA_HYBRIDIZER_BE.get(), + (be, side) -> new net.neoforged.neoforge.items.wrapper.InvWrapper(((DNAHybridizerBlockEntity) be).itemHandler)); + + event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.FOSSIL_CLEANER_BE.get(), + (be, side) -> new net.neoforged.neoforge.items.wrapper.InvWrapper(((FossilCleanerBlockEntity) be).itemHandler)); + + event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.FOSSIL_GRINDER_BE.get(), + (be, side) -> new net.neoforged.neoforge.items.wrapper.InvWrapper(((FossilGrinderBlockEntity) be).itemHandler)); + + event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.EMBRYONIC_MACHINE_BE.get(), + (be, side) -> new net.neoforged.neoforge.items.wrapper.InvWrapper(((EmbryonicMachineBlockEntity) be).itemHandler)); + + event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.EMBRYO_CALCIFICATION_MACHINE_BE.get(), + (be, side) -> new net.neoforged.neoforge.items.wrapper.InvWrapper(((EmbryoCalcificationMachineBlockEntity) be).itemHandler)); + + event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, ModBlockEntities.INCUBATOR_BE.get(), + (be, side) -> new net.neoforged.neoforge.items.wrapper.InvWrapper(((IncubatorBlockEntity) be).itemHandler)); + // Energy event.registerBlockEntity(Capabilities.EnergyStorage.BLOCK, ModBlockEntities.POWER_CELL_BE.get(), @@ -63,10 +79,13 @@ public class NeoForgeEvents // Fluids event.registerBlockEntity(Capabilities.FluidHandler.BLOCK, ModBlockEntities.TANK_BE.get(), - (be, side) -> new TankFluidAdapter(((TankBlockEntity) be).getTank(side))); + (be, side) -> new TankFluidAdapter(((TankBlockEntity) be).getFluidHandler(side))); + + event.registerBlockEntity(Capabilities.FluidHandler.BLOCK, ModBlockEntities.FOSSIL_CLEANER_BE.get(), + (be, side) -> new TankFluidAdapter(((FossilCleanerBlockEntity) be).getFluidHandler(side))); } - private record TankFluidAdapter(TankBlockEntity.TankFluidHandler tank) implements IFluidHandler { + private record TankFluidAdapter(InternalFluidHandler tank) implements IFluidHandler { @Override public int getTanks() {