diff --git a/src/main/java/com/starfish_studios/hamsters/HamstersVanillaIntegration.java b/src/main/java/com/starfish_studios/hamsters/HamstersVanillaIntegration.java index 1af3641..5f3a748 100644 --- a/src/main/java/com/starfish_studios/hamsters/HamstersVanillaIntegration.java +++ b/src/main/java/com/starfish_studios/hamsters/HamstersVanillaIntegration.java @@ -1,5 +1,6 @@ package com.starfish_studios.hamsters; +import com.starfish_studios.hamsters.block.CagePanelBlock; import com.starfish_studios.hamsters.client.renderer.*; import com.starfish_studios.hamsters.registry.HamstersBlocks; import com.starfish_studios.hamsters.registry.HamstersEntityType; @@ -37,15 +38,45 @@ private static void registerModelLayers() { EntityRendererRegistry.register(HamstersEntityType.HAMSTER, HamsterRenderer::new); EntityRendererRegistry.register(HamstersEntityType.HAMSTER_NEW, HamsterNewRenderer::new); EntityRendererRegistry.register(HamstersEntityType.HAMSTER_BALL, HamsterBallRenderer::new); + EntityRendererRegistry.register(HamstersEntityType.FRANK, FrankRenderer::new); } private static void registerBlockRenderLayers() { - // BlockRenderLayerMap.INSTANCE.putBlock(HamstersBlocks.TUNNEL, RenderType.translucent()); - BlockRenderLayerMap.INSTANCE.putBlock( - + BlockRenderLayerMap.INSTANCE.putBlocks(RenderType.cutout(), + HamstersBlocks.CAGE_PANEL, + HamstersBlocks.RED_CAGE_PANEL, + HamstersBlocks.ORANGE_CAGE_PANEL, + HamstersBlocks.YELLOW_CAGE_PANEL, + HamstersBlocks.LIME_CAGE_PANEL, + HamstersBlocks.GREEN_CAGE_PANEL, + HamstersBlocks.CYAN_CAGE_PANEL, + HamstersBlocks.BLUE_CAGE_PANEL, + HamstersBlocks.LIGHT_BLUE_CAGE_PANEL, + HamstersBlocks.PINK_CAGE_PANEL, + HamstersBlocks.MAGENTA_CAGE_PANEL, + HamstersBlocks.PURPLE_CAGE_PANEL, + HamstersBlocks.WHITE_CAGE_PANEL, + HamstersBlocks.LIGHT_GRAY_CAGE_PANEL, + HamstersBlocks.GRAY_CAGE_PANEL, + HamstersBlocks.BLACK_CAGE_PANEL, + HamstersBlocks.BROWN_CAGE_PANEL, + HamstersBlocks.RED_HAMSTER_BOWL, + HamstersBlocks.ORANGE_HAMSTER_BOWL, + HamstersBlocks.YELLOW_HAMSTER_BOWL, + HamstersBlocks.LIME_HAMSTER_BOWL, + HamstersBlocks.GREEN_HAMSTER_BOWL, + HamstersBlocks.CYAN_HAMSTER_BOWL, HamstersBlocks.BLUE_HAMSTER_BOWL, - - RenderType.cutout()); + HamstersBlocks.LIGHT_BLUE_HAMSTER_BOWL, + HamstersBlocks.PINK_HAMSTER_BOWL, + HamstersBlocks.MAGENTA_HAMSTER_BOWL, + HamstersBlocks.PURPLE_HAMSTER_BOWL, + HamstersBlocks.WHITE_HAMSTER_BOWL, + HamstersBlocks.LIGHT_GRAY_HAMSTER_BOWL, + HamstersBlocks.GRAY_HAMSTER_BOWL, + HamstersBlocks.BLACK_HAMSTER_BOWL, + HamstersBlocks.BROWN_HAMSTER_BOWL + ); } } diff --git a/src/main/java/com/starfish_studios/hamsters/block/CagePanelBlock.java b/src/main/java/com/starfish_studios/hamsters/block/CagePanelBlock.java new file mode 100644 index 0000000..e527401 --- /dev/null +++ b/src/main/java/com/starfish_studios/hamsters/block/CagePanelBlock.java @@ -0,0 +1,157 @@ +package com.starfish_studios.hamsters.block; + +import com.starfish_studios.hamsters.block.properties.CageType; +import com.starfish_studios.hamsters.registry.HamstersTags; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class CagePanelBlock extends Block { + public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + public static final EnumProperty TYPE = EnumProperty.create("type", CageType.class); + + public static final VoxelShape NORTH_AABB = Block.box(0, 0, 15, 16, 16, 16); + public static final VoxelShape EAST_AABB = Block.box(0, 0, 0, 1, 16, 16); + public static final VoxelShape SOUTH_AABB = Block.box(0, 0, 0, 16, 16, 1); + public static final VoxelShape WEST_AABB = Block.box(15, 0, 0, 16, 16, 16); + + public static final VoxelShape NORTH_COLLISION_AABB = Block.box(0, 0, 15, 16, 24, 16); + public static final VoxelShape EAST_COLLISION_AABB = Block.box(0, 0, 0, 1, 24, 16); + public static final VoxelShape SOUTH_COLLISION_AABB = Block.box(0, 0, 0, 16, 24, 1); + public static final VoxelShape WEST_COLLISION_AABB = Block.box(15, 0, 0, 16, 24, 16); + + public CagePanelBlock(Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any() + .setValue(TYPE, CageType.NONE)); + } + + @Override + public @NotNull VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { + Direction direction = state.getValue(FACING); + return switch (direction) { + case EAST -> EAST_AABB; + case SOUTH -> SOUTH_AABB; + case WEST -> WEST_AABB; + default -> NORTH_AABB; + }; + } + + //getCollisionShape + @Override + public @NotNull VoxelShape getCollisionShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { + Direction direction = state.getValue(FACING); + return switch (direction) { + case EAST -> EAST_COLLISION_AABB; + case SOUTH -> SOUTH_COLLISION_AABB; + case WEST -> WEST_COLLISION_AABB; + default -> NORTH_COLLISION_AABB; + }; + } + + @Override + public @NotNull InteractionResult use(BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (player.getItemInHand(hand).is(HamstersTags.CAGE_PANELS)) { + BlockPos above = pos.above(); + if (level.isEmptyBlock(above)) { + BlockItem blockItem = (BlockItem) player.getItemInHand(hand).getItem(); +// level.setBlock(above, state, 3); + level.setBlock(above, blockItem.getBlock().defaultBlockState().setValue(FACING, state.getValue(FACING)), 3); + level.playSound(null, pos, this.getSoundType(state).getPlaceSound(), SoundSource.BLOCKS, level.random.nextFloat() * 0.25F + 0.7F, level.random.nextFloat() * 0.1F + 0.9F); + return InteractionResult.SUCCESS; + } + } + return InteractionResult.PASS; + } + + + public float getShadeBrightness(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos) { + return 1.0F; + } + + public boolean propagatesSkylightDown(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos) { + return true; + } + + @Override + public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { + return false; + } + + @Nullable + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction direction = context.getHorizontalDirection().getOpposite(); + + BlockState state = this.defaultBlockState().setValue(FACING, direction); + state = state.setValue(TYPE, getType(state, getRelativeTop(level, pos, direction), getRelativeBottom(level, pos, direction))); + return state; + } + + + public boolean skipRendering(BlockState blockState, BlockState blockState2, Direction direction) { +// return blockState2.is(this) && blockState2.getValue(FACING) == blockState.getValue(FACING); + return blockState2.getBlock() instanceof CagePanelBlock && blockState2.getValue(FACING) == blockState.getValue(FACING); + } + + @Override + public void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { + if (level.isClientSide) return; + + Direction direction = state.getValue(FACING); + CageType type = getType(state, getRelativeTop(level, pos, direction), getRelativeBottom(level, pos, direction)); + if (state.getValue(TYPE) == type) return; + + state = state.setValue(TYPE, type); + level.setBlock(pos, state, 3); + } + + public BlockState getRelativeTop(Level level, BlockPos pos, Direction direction) { + return level.getBlockState(pos.above()); + } + + public BlockState getRelativeBottom(Level level, BlockPos pos, Direction direction) { + return level.getBlockState(pos.below()); + } + + public CageType getType(BlockState state, BlockState above, BlockState below) { +// boolean shape_above_same = above.is(state.getBlock()) && state.getValue(FACING) == above.getValue(FACING); +// boolean shape_below_same = below.is(state.getBlock()) && state.getValue(FACING) == below.getValue(FACING); + + // Return the booleans the same as above but instead of state.getBlock, do it if they're an instanceof CagePanelBlock + boolean shape_above_same = above.getBlock() instanceof CagePanelBlock && state.getValue(FACING) == above.getValue(FACING); + boolean shape_below_same = below.getBlock() instanceof CagePanelBlock && state.getValue(FACING) == below.getValue(FACING); + + if (shape_above_same && !shape_below_same) return CageType.BOTTOM; + else if (!shape_above_same && shape_below_same) return CageType.TOP; + else if (shape_above_same) return CageType.MIDDLE; + return CageType.NONE; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(TYPE, FACING); + } +} diff --git a/src/main/java/com/starfish_studios/hamsters/block/properties/CageType.java b/src/main/java/com/starfish_studios/hamsters/block/properties/CageType.java new file mode 100644 index 0000000..59e5b6e --- /dev/null +++ b/src/main/java/com/starfish_studios/hamsters/block/properties/CageType.java @@ -0,0 +1,24 @@ +package com.starfish_studios.hamsters.block.properties; + +import net.minecraft.util.StringRepresentable; + +public enum CageType implements StringRepresentable { + TOP("top"), + MIDDLE("middle"), + BOTTOM("bottom"), + NONE("none"); + + private final String name; + + private CageType(String type) { + this.name = type; + } + + public String toString() { + return this.name; + } + + public String getSerializedName() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/starfish_studios/hamsters/entity/Frank.java b/src/main/java/com/starfish_studios/hamsters/entity/Frank.java new file mode 100644 index 0000000..6be0793 --- /dev/null +++ b/src/main/java/com/starfish_studios/hamsters/entity/Frank.java @@ -0,0 +1,157 @@ +package com.starfish_studios.hamsters.entity; + +import com.starfish_studios.hamsters.entity.common.HamstersGeoEntity; +import com.starfish_studios.hamsters.entity.common.MMPathNavigatorGround; +import com.starfish_studios.hamsters.entity.common.SmartBodyHelper; +import com.starfish_studios.hamsters.registry.HamstersEntityType; +import com.starfish_studios.hamsters.registry.HamstersItems; +import net.minecraft.core.NonNullList; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +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.control.BodyRotationControl; +import net.minecraft.world.entity.ai.goal.*; +import net.minecraft.world.entity.ai.navigation.PathNavigation; +import net.minecraft.world.entity.monster.Monster; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; +import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.core.object.PlayState; +import software.bernie.geckolib.util.GeckoLibUtil; + +import java.util.Objects; + +public class Frank extends Monster implements HamstersGeoEntity { + private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); + + protected static final RawAnimation IDLE = RawAnimation.begin().thenLoop("animation.frank.idle"); + protected static final RawAnimation WALK = RawAnimation.begin().thenLoop("animation.frank.walk"); + protected static final RawAnimation RUN = RawAnimation.begin().thenLoop("animation.frank.run"); + protected static final RawAnimation BITE = RawAnimation.begin().thenLoop("animation.frank.bite"); + + + public Frank(EntityType entityType, Level level) { + super(entityType, level); + } + + public static AttributeSupplier.Builder createAttributes() { + return Mob.createMobAttributes() + .add(Attributes.MAX_HEALTH, 20.0) + .add(Attributes.MOVEMENT_SPEED, 0.27); + } + + // Goals + @Override + protected void registerGoals() { + super.registerGoals(); + this.goalSelector.addGoal(0, new FloatGoal(this)); + this.goalSelector.addGoal(1, new PanicGoal(this, 1.5)); + this.goalSelector.addGoal(2, new WaterAvoidingRandomStrollGoal(this, 1.0)); + this.goalSelector.addGoal(3, new RandomLookAroundGoal(this)); + } + + @Override + public void customServerAiStep() { + this.setSprinting(this.getMoveControl().getSpeedModifier() >= 1.5F); + super.customServerAiStep(); + } + + @Override + protected @NotNull PathNavigation createNavigation(@NotNull Level level) { + return new MMPathNavigatorGround(this, level); + } + + @Override + protected @NotNull BodyRotationControl createBodyControl() { + return new SmartBodyHelper(this); + } + + // region MISC + + @Override + protected void defineSynchedData() { + super.defineSynchedData(); + } + + @Override + public void readAdditionalSaveData(CompoundTag compoundTag) { + super.readAdditionalSaveData(compoundTag); + } + + @Override + public void addAdditionalSaveData(CompoundTag compoundTag) { + super.addAdditionalSaveData(compoundTag); + } + + @Override + public @NotNull ItemStack getItemBySlot(EquipmentSlot equipmentSlot) { + return ItemStack.EMPTY; + } + + @Override + public void setItemSlot(EquipmentSlot equipmentSlot, ItemStack itemStack) { + this.verifyEquippedItem(itemStack); + } + + @Override + public @NotNull HumanoidArm getMainArm() { + return HumanoidArm.RIGHT; + } + + // endregion + + + // region GECKOLIB + + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllerRegistrar) { + controllerRegistrar.add(new AnimationController<>(this, "controller", 5, this::animController)); + controllerRegistrar.add(new AnimationController<>(this, "attack_controller", 5, this::attackController)); + } + + protected PlayState attackController(final AnimationState event) { + if (this.swinging && event.getController().getAnimationState().equals(AnimationController.State.STOPPED)) { + event.getController().forceAnimationReset(); + + event.getController().setAnimation(BITE); + this.swinging = false; + } + return PlayState.STOP; + } + + protected PlayState animController(final AnimationState event) { + if (event.isMoving()) { + event.setControllerSpeed(2.0F * event.getLimbSwingAmount()); + if (this.isSprinting()) { + event.setAnimation(RUN); + } else { + event.setAnimation(WALK); + } + } else { + event.setAnimation(IDLE); + } + return PlayState.CONTINUE; + } + + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; + } + + // endregion +} diff --git a/src/main/java/com/starfish_studios/hamsters/entity/Hamster.java b/src/main/java/com/starfish_studios/hamsters/entity/Hamster.java index 7002934..5d2d3db 100644 --- a/src/main/java/com/starfish_studios/hamsters/entity/Hamster.java +++ b/src/main/java/com/starfish_studios/hamsters/entity/Hamster.java @@ -1,11 +1,12 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + package com.starfish_studios.hamsters.entity; -import com.google.common.collect.Lists; -import com.starfish_studios.hamsters.block.BowlBlock; import com.starfish_studios.hamsters.block.HamsterWheelBlock; -import com.starfish_studios.hamsters.block.entity.HamsterWheelBlockEntity; -import com.starfish_studios.hamsters.entity.common.MMPathNavigatorGround; -import com.starfish_studios.hamsters.entity.common.SmartBodyHelper; +import com.starfish_studios.hamsters.entity.common.SearchForItemsGoal; import com.starfish_studios.hamsters.registry.*; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; @@ -14,16 +15,15 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtUtils; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundEvents; +import net.minecraft.tags.ItemTags; import net.minecraft.util.ByIdMap; import net.minecraft.util.RandomSource; -import net.minecraft.util.VisibleForDebug; import net.minecraft.world.DifficultyInstance; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -31,13 +31,9 @@ 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.control.BodyRotationControl; import net.minecraft.world.entity.ai.control.LookControl; import net.minecraft.world.entity.ai.goal.*; -import net.minecraft.world.entity.ai.navigation.PathNavigation; import net.minecraft.world.entity.ai.targeting.TargetingConditions; -import net.minecraft.world.entity.ai.village.poi.PoiManager; -import net.minecraft.world.entity.ai.village.poi.PoiRecord; import net.minecraft.world.entity.animal.Animal; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; @@ -46,13 +42,10 @@ import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.Level; import net.minecraft.world.level.ServerLevelAccessor; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.pathfinder.BlockPathTypes; -import net.minecraft.world.level.pathfinder.Path; +import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -68,18 +61,16 @@ import java.util.*; import java.util.function.IntFunction; import java.util.function.Predicate; -import java.util.stream.Stream; import static com.starfish_studios.hamsters.block.HamsterWheelBlock.FACING; +import static com.starfish_studios.hamsters.block.HamsterWheelBlock.ejectSeatedExceptPlayer; public class Hamster extends TamableAnimal implements GeoEntity { // region protected static final RawAnimation IDLE = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.idle"); protected static final RawAnimation WALK = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.walk"); - protected static final RawAnimation PINKIE_WALK = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.pinkie_walk"); protected static final RawAnimation RUN = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.run"); protected static final RawAnimation SLEEP = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.sleep"); - protected static final RawAnimation DANCE = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.dance2"); protected static final RawAnimation STANDING = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.standing"); private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); @@ -87,32 +78,13 @@ public class Hamster extends TamableAnimal implements GeoEntity { private static final Ingredient FOOD_ITEMS = Ingredient.of(HamstersTags.HAMSTER_FOOD); private static final EntityDataAccessor DATA_INTERESTED = SynchedEntityData.defineId(Hamster.class, EntityDataSerializers.BOOLEAN); - private static final EntityDataAccessor VARIANT = SynchedEntityData.defineId(Hamster.class, EntityDataSerializers.INT); - private static final EntityDataAccessor MARKING = SynchedEntityData.defineId(Hamster.class, EntityDataSerializers.INT); + private static final EntityDataAccessor DATA_VARIANT = SynchedEntityData.defineId(Hamster.class, EntityDataSerializers.INT); private static final EntityDataAccessor FROM_HAND = SynchedEntityData.defineId(Hamster.class, EntityDataSerializers.BOOLEAN); private static final EntityDataAccessor WAIT_TIME_BEFORE_RUN = SynchedEntityData.defineId(Hamster.class, EntityDataSerializers.INT); private static final EntityDataAccessor WAIT_TIME_WHEN_RUNNING = SynchedEntityData.defineId(Hamster.class, EntityDataSerializers.INT); - private static final EntityDataAccessor INTERESTED_TICKS = SynchedEntityData.defineId(Hamster.class, EntityDataSerializers.INT); Hamster.HamsterGoToWheelGoal hamsterGoToWheelGoal; - - - @Nullable - private BlockPos jukebox; - private boolean hamsterDance; - - protected int interestedTicks; - // endregion - private static final int TICKS_BEFORE_GOING_TO_WHEEL = 2400; - public static final String TAG_WHEEL_POS = "WheelPos"; - private static final int COOLDOWN_BEFORE_LOCATING_NEW_WHEEL = 200; - int remainingCooldownBeforeLocatingNewWheel; - - int ticksWithoutWaterSinceExitingWheel; - @Nullable - BlockPos wheelPos; - public Hamster(EntityType entityType, Level level) { super(entityType, level); @@ -132,155 +104,87 @@ public Hamster(EntityType entityType, Level level) { // endregion } - - @Override - protected @NotNull PathNavigation createNavigation(@NotNull Level level) { - return new MMPathNavigatorGround(this, level); - } - - @Override - protected @NotNull BodyRotationControl createBodyControl() { - return new SmartBodyHelper(this); - } - - public void rideTick() { - super.rideTick(); - Entity var2 = this.getControlledVehicle(); - if (var2 instanceof HamsterBall hamsterBall) { - this.yBodyRot = hamsterBall.yBodyRot; - } - - } - // region BASIC ENTITY protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); - this.goalSelector.addGoal(1, new PanicGoal(this, 1.3)); - this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this)); - this.goalSelector.addGoal(3, new BreedGoal(this, 1.0)); - this.goalSelector.addGoal(4, new Hamster.HamsterEnterWheelGoal()); - this.goalSelector.addGoal(5, new Hamster.HamsterLocateWheelGoal()); - this.goalSelector.addGoal(5, new Hamster.HamsterGoToWheelGoal()); + this.goalSelector.addGoal(0, new PanicGoal(this, 1.3)); + this.goalSelector.addGoal(1, new SitWhenOrderedToGoal(this)); + this.goalSelector.addGoal(2, new BreedGoal(this, 1.0)); + this.goalSelector.addGoal(3, new SleepGoal()); + this.hamsterGoToWheelGoal = new HamsterGoToWheelGoal(); + this.goalSelector.addGoal(4, this.hamsterGoToWheelGoal); + this.goalSelector.addGoal(4, new SearchForItemsGoal(this, 1.25F, FOOD_ITEMS, 8.0D, 8.0D)); + this.goalSelector.addGoal(4, new TemptGoal(this, 1.25, FOOD_ITEMS, false)); + this.goalSelector.addGoal(5, new FollowParentGoal(this, 1.25)); this.goalSelector.addGoal(6, new WaterAvoidingRandomStrollGoal(this, 1.0)); this.goalSelector.addGoal(7, new LookAtPlayerGoal(this, Player.class, 6.0F)); - this.goalSelector.addGoal(9, new RandomLookAroundGoal(this)); + this.goalSelector.addGoal(8, new RandomLookAroundGoal(this)); + this.goalSelector.addGoal(9, new RunInWheelGoal()); } -// protected void registerGoals() { -// this.goalSelector.addGoal(0, new FloatGoal(this)); -// this.goalSelector.addGoal(0, new PanicGoal(this, 1.3)); -// this.goalSelector.addGoal(1, new HamsterGoToBlockGoal()); -// this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this)); -// this.goalSelector.addGoal(3, new BreedGoal(this, 1.0)); -// this.goalSelector.addGoal(3, new SleepGoal()); -// this.hamsterGoToWheelGoal = new HamsterGoToWheelGoal(); -// this.goalSelector.addGoal(4, this.hamsterGoToWheelGoal); -// this.goalSelector.addGoal(4, new SearchForItemsGoal(this, 1.25F, FOOD_ITEMS, 8.0D, 8.0D)); -// this.goalSelector.addGoal(4, new TemptGoal(this, 1.25, FOOD_ITEMS, false)); -// this.goalSelector.addGoal(6, new FollowParentGoal(this, 1.25)); -// this.goalSelector.addGoal(7, new WaterAvoidingRandomStrollGoal(this, 1.0)); -// this.goalSelector.addGoal(8, new LookAtPlayerGoal(this, Player.class, 6.0F)); -// this.goalSelector.addGoal(9, new RandomLookAroundGoal(this)); -// } - @Override public void customServerAiStep() { - if (!this.isBaby()) { - if (this.getMoveControl().hasWanted()) { - this.setSprinting(this.getMoveControl().getSpeedModifier() >= 1.3D); - } else { - this.setSprinting(false); - } + if (this.getMoveControl().hasWanted()) { + this.setSprinting(this.getMoveControl().getSpeedModifier() >= 1.3D); + } else { + this.setSprinting(false); } super.customServerAiStep(); } - @Override - public void travel(@NotNull Vec3 vec3) { - if (this.isBaby()) { - vec3 = vec3.scale(0.2D); - } - if (this.isHamsterDance()) { - this.setDeltaMovement(this.getDeltaMovement().multiply(0, 1, 0)); - vec3 = vec3.multiply(0, 1, 0); - } - super.travel(vec3); - } - public static AttributeSupplier.Builder createAttributes() { return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 5.0).add(Attributes.MOVEMENT_SPEED, 0.25).add(Attributes.ATTACK_DAMAGE, 1.5); } - public @NotNull InteractionResult mobInteract(Player player, @NotNull InteractionHand interactionHand) { + public InteractionResult mobInteract(Player player, InteractionHand interactionHand) { ItemStack itemStack = player.getItemInHand(interactionHand); - - - if (itemStack.is(HamstersItems.HAMSTER_BALL)) { - if (!this.level().isClientSide) { - HamsterBall hamsterBall = new HamsterBall(HamstersEntityType.HAMSTER_BALL, this.level()); - hamsterBall.setPos(this.getX(), this.getY(), this.getZ()); - this.level().addFreshEntity(hamsterBall); - this.startRiding(hamsterBall); - this.setPersistenceRequired(); - if (!player.isCreative()) { - itemStack.shrink(1); - } - - this.playSound(SoundEvents.ITEM_PICKUP, 0.4F, ((level().random.nextFloat() - level().random.nextFloat()) * 0.7F + 1.0F) * 1.5F); - - - } - return InteractionResult.SUCCESS; - } - - if (!this.isBaby()) { - if (this.level().isClientSide) { - if (this.isTame() && this.isOwnedBy(player)) { - return InteractionResult.SUCCESS; - } else { - return !this.isFood(itemStack) || !(this.getHealth() < this.getMaxHealth()) && this.isTame() ? InteractionResult.PASS : InteractionResult.SUCCESS; - } + if (this.level().isClientSide) { + if (this.isTame() && this.isOwnedBy(player)) { + return InteractionResult.SUCCESS; } else { - InteractionResult interactionResult; - if (this.isTame()) { - if (this.isOwnedBy(player) && this.isFood(itemStack) && (this.getHealth() < this.getMaxHealth())) { - this.usePlayerItem(player, interactionHand, itemStack); - this.heal(2.0F); - return InteractionResult.CONSUME; - } else if (this.isOwnedBy(player)) { - interactionResult = super.mobInteract(player, interactionHand); - if (!interactionResult.consumesAction() || this.isBaby()) { - this.setOrderedToSit(!this.isOrderedToSit()); - } - if (this.isOwnedBy(player) && player.isShiftKeyDown()) { - this.catchHamster(player); - } - return interactionResult; - } - } else if (this.isFood(itemStack)) { + return !this.isFood(itemStack) || !(this.getHealth() < this.getMaxHealth()) && this.isTame() ? InteractionResult.PASS : InteractionResult.SUCCESS; + } + } else { + InteractionResult interactionResult; + if (this.isTame()) { + if (this.isOwnedBy(player) && this.isFood(itemStack) && (this.getHealth() < this.getMaxHealth())) { this.usePlayerItem(player, interactionHand, itemStack); - if (this.random.nextInt(3) == 0) { - this.tame(player); - this.setOrderedToSit(true); - this.level().broadcastEntityEvent(this, (byte) 7); - } else { - this.level().broadcastEntityEvent(this, (byte) 6); - } - this.setPersistenceRequired(); + this.heal(2.0F); return InteractionResult.CONSUME; + } else if (this.isOwnedBy(player)) { + interactionResult = super.mobInteract(player, interactionHand); + if (!interactionResult.consumesAction() || this.isBaby()) { + this.setOrderedToSit(!this.isOrderedToSit()); + } + if (this.isOwnedBy(player) && player.isShiftKeyDown()) { + this.catchHamster(player); + } + return interactionResult; } + } else if (this.isFood(itemStack)) { + this.usePlayerItem(player, interactionHand, itemStack); + if (this.random.nextInt(3) == 0) { + this.tame(player); + this.setOrderedToSit(true); + this.level().broadcastEntityEvent(this, (byte)7); + } else { + this.level().broadcastEntityEvent(this, (byte)6); + } + + this.setPersistenceRequired(); + return InteractionResult.CONSUME; } } return super.mobInteract(player, interactionHand); } - protected float getStandingEyeHeight(@NotNull Pose pose, @NotNull EntityDimensions entityDimensions) { + protected float getStandingEyeHeight(Pose pose, EntityDimensions entityDimensions) { return this.isBaby() ? 0.2F : 0.3F; } - public boolean isFood(@NotNull ItemStack itemStack) { + public boolean isFood(ItemStack itemStack) { return FOOD_ITEMS.test(itemStack); } @@ -288,7 +192,7 @@ public boolean isFood(@NotNull ItemStack itemStack) { // region CATCHING - public void catchHamster(Player player) { + public InteractionResult catchHamster(Player player) { ItemStack output = this.getCaughtItemStack(); saveDefaultDataToItemTag(this, output); if (!player.getInventory().add(output)) { @@ -299,6 +203,7 @@ public void catchHamster(Player player) { } this.discard(); player.getInventory().add(output); + return InteractionResult.sidedSuccess(true); } private static void saveDefaultDataToItemTag(Hamster mob, ItemStack itemStack) { @@ -338,11 +243,13 @@ public ItemStack getCaughtItemStack() { // region SOUNDS + + protected SoundEvent getAmbientSound() { - return this.isSleeping() ? HamstersSoundEvents.HAMSTER_SLEEP : HamstersSoundEvents.HAMSTER_AMBIENT; + return HamstersSoundEvents.HAMSTER_AMBIENT; } - protected SoundEvent getHurtSound(@NotNull DamageSource damageSource) { + protected SoundEvent getHurtSound(DamageSource damageSource) { return HamstersSoundEvents.HAMSTER_HURT; } @@ -350,7 +257,7 @@ protected SoundEvent getDeathSound() { return HamstersSoundEvents.HAMSTER_DEATH; } - protected void playStepSound(@NotNull BlockPos blockPos, @NotNull BlockState blockState) { + protected void playStepSound(BlockPos blockPos, BlockState blockState) { this.playSound(SoundEvents.WOLF_STEP, 0.15F, 3.0F); } @@ -382,61 +289,35 @@ public boolean isInterested() { @Override protected void defineSynchedData() { super.defineSynchedData(); - this.entityData.define(VARIANT, 2); - this.entityData.define(MARKING, 0); + this.entityData.define(EAT_COUNTER, 0); + this.entityData.define(DATA_INTERESTED, false); + this.entityData.define(DATA_VARIANT, 2); + this.entityData.define(WAIT_TIME_BEFORE_RUN, 0); + this.entityData.define(WAIT_TIME_WHEN_RUNNING, 0); this.entityData.define(FROM_HAND, false); } @Override - public void readAdditionalSaveData(@NotNull CompoundTag compoundTag) { + public void readAdditionalSaveData(CompoundTag compoundTag) { super.readAdditionalSaveData(compoundTag); - this.wheelPos = null; - if (compoundTag.contains("WheelPos")) { - this.wheelPos = NbtUtils.readBlockPos(compoundTag.getCompound("WheelPos")); - } this.setVariant(Hamster.Variant.BY_ID[compoundTag.getInt("Variant")]); - this.setMarking(compoundTag.getInt("Marking")); - + this.setWaitTimeBeforeRunTicks(compoundTag.getInt("RunTicks")); + this.setWaitTimeWhenRunningTicks(compoundTag.getInt("RunningTicks")); this.setFromHand(compoundTag.getBoolean("FromHand")); } @Override - public void addAdditionalSaveData(@NotNull CompoundTag compoundTag) { + public void addAdditionalSaveData(CompoundTag compoundTag) { super.addAdditionalSaveData(compoundTag); - - if (this.hasWheel()) { - assert this.getHivePos() != null; - compoundTag.put("HivePos", NbtUtils.writeBlockPos(this.getHivePos())); - } - compoundTag.putInt("Variant", this.getVariant()); - compoundTag.putInt("Marking", this.getMarking()); + compoundTag.putInt("Variant", getVariant()); + compoundTag.putInt("RunTicks", this.getWaitTimeBeforeRunTicks()); + compoundTag.putInt("RunningTicks", this.getWaitTimeWhenRunningTicks()); compoundTag.putBoolean("FromHand", this.fromHand()); } - - @VisibleForDebug - public boolean hasWheel() { - return this.wheelPos != null; - } - - @Nullable - @VisibleForDebug - public BlockPos getHivePos() { - return this.wheelPos; - } - - public int getInterestedTicks() { - return this.entityData.get(INTERESTED_TICKS); - } - - public void setInterestedTicks(int ticks) { - this.entityData.set(INTERESTED_TICKS, ticks); - } - public int getWaitTimeBeforeRunTicks() { return this.entityData.get(WAIT_TIME_BEFORE_RUN); } - public void setWaitTimeBeforeRunTicks(int ticks) { this.entityData.set(WAIT_TIME_BEFORE_RUN, ticks); } @@ -450,24 +331,109 @@ public void setWaitTimeWhenRunningTicks(int ticks) { public boolean isSleeping() { - return this.getFlag(); + return this.getFlag(32); } public void setSleeping(boolean bl) { - this.setFlag(bl); + this.setFlag(32, bl); } - private void setFlag(boolean bl) { + private void setFlag(int i, boolean bl) { if (bl) { - this.entityData.set(DATA_FLAGS_ID, (byte)(this.entityData.get(DATA_FLAGS_ID) | 32)); + this.entityData.set(DATA_FLAGS_ID, (byte)(this.entityData.get(DATA_FLAGS_ID) | i)); } else { - this.entityData.set(DATA_FLAGS_ID, (byte)(this.entityData.get(DATA_FLAGS_ID) & ~32)); + this.entityData.set(DATA_FLAGS_ID, (byte)(this.entityData.get(DATA_FLAGS_ID) & ~i)); } } - private boolean getFlag() { - return (this.entityData.get(DATA_FLAGS_ID) & 32) != 0; + private static final EntityDataAccessor VARIANT = SynchedEntityData.defineId(Hamster.class, EntityDataSerializers.INT); + private static final EntityDataAccessor MARKING = SynchedEntityData.defineId(Hamster.class, EntityDataSerializers.INT); + + private boolean getFlag(int i) { + return (this.entityData.get(DATA_FLAGS_ID) & i) != 0; + } + + public int getMarking() { + return this.entityData.get(MARKING); + } + + public void setMarking(int i) { + this.entityData.set(MARKING, i); + } + + + public int getVariant() { + return this.entityData.get(VARIANT); + } + + public void setVariant(Hamster.Variant variant) { + this.entityData.set(VARIANT, variant.getId()); + } + + public enum Marking { + BLANK (0, "blank"), + BANDED (1, "banded"), + DOMINANT_SPOTS (2, "dominant_spots"), + ROAN (3, "roan"), + BELLY (4, "belly"); + + private static final IntFunction BY_ID = ByIdMap.continuous(Hamster.Marking::getId, values(), ByIdMap.OutOfBoundsStrategy.ZERO); + + private final int id; + private final String name; + + private Marking(int j, String string2) { + this.id = j; + this.name = string2; + } + + public int getId() { + return this.id; + } + + public static Hamster.Marking byId(int i) { + return BY_ID.apply(i); + } + + public String getName() { + return this.name; + } + + } + + public enum Variant { + WHITE (0, "white"), + CREAM (1, "cream"), + CHAMPAGNE (2, "champagne"), + SILVER_DOVE (3, "silver_dove"), + DOVE (4, "dove"), + CHOCOLATE (5, "chocolate"), + BLACK (6, "black"); + + public static final Hamster.Variant[] BY_ID = Arrays.stream(values()).sorted(Comparator.comparingInt(Hamster.Variant::getId)).toArray(Hamster.Variant[]::new); + private final int id; + private final String name; + + private Variant(int j, String string2) { + this.id = j; + this.name = string2; + } + + public int getId() { + return this.id; + } + + public String getName() { + return this.name; + } + + public static Hamster.Variant getTypeById(int id) { + for (Hamster.Variant type : values()) { + if (type.id == id) return type; + } + return Hamster.Variant.CHAMPAGNE; + } } void wakeUp() { @@ -476,13 +442,6 @@ void wakeUp() { public void tick() { super.tick(); - - if (Hamster.this.getInterestedTicks() < 400) { - Hamster.this.setInterestedTicks(Hamster.this.getInterestedTicks() + 1); - } else if (Hamster.this.getInterestedTicks() >= 400) { - Hamster.this.setInterestedTicks(0); - } - if (this.isEffectiveAi()) { if (this.isInWater() || this.getTarget() != null || this.level().isThundering()) { this.wakeUp(); @@ -495,26 +454,11 @@ public void tick() { } - public void setRecordPlayingNearby(@NotNull BlockPos blockPos, boolean bl) { - this.jukebox = blockPos; - this.hamsterDance = bl; - this.setSleeping(false); - } - - public boolean isHamsterDance() { - return this.hamsterDance; - } - @Override public void aiStep() { super.aiStep(); this.level(); - if (this.jukebox == null || !this.jukebox.closerToCenterThan(this.position(), 3.46) || !this.level().getBlockState(this.jukebox).is(Blocks.JUKEBOX)) { - this.hamsterDance = false; - this.jukebox = null; - } - this.blockPosition(); if (this.level().getBlockState(this.blockPosition()).is(HamstersBlocks.HAMSTER_WHEEL)) { this.setDeltaMovement(0, 0, 0); @@ -527,7 +471,6 @@ public void aiStep() { } if (this.isPassenger() && this.getVehicle() instanceof SeatEntity && this.getWaitTimeWhenRunningTicks() == 0) { this.setWaitTimeBeforeRunTicks(this.random.nextInt(400) + 1200); - this.stopRiding(); clearStates(); } @@ -568,33 +511,17 @@ public void aiStep() { // region BREEDING / VARIANTS / MIXING - public boolean canMate(@NotNull Animal animal) { + public boolean canMate(Animal animal) { if (!this.isTame()) { return false; - } else if (!(animal instanceof Hamster hamster)) { + } else if (!(animal instanceof Hamster)) { return false; } else { + Hamster hamster = (Hamster) animal; return hamster.isTame() && super.canMate(animal); } } - public int getMarking() { - return this.entityData.get(MARKING); - } - - public void setMarking(int i) { - this.entityData.set(MARKING, i); - } - - - public int getVariant() { - return this.entityData.get(VARIANT); - } - - public void setVariant(Hamster.Variant variant) { - this.entityData.set(VARIANT, variant.getId()); - } - public boolean fromHand() { return this.entityData.get(FROM_HAND); @@ -604,104 +531,13 @@ public void setFromHand(boolean fromHand) { this.entityData.set(FROM_HAND, fromHand); } - public enum Marking { - BLANK (0, "blank"), - BANDED (1, "banded"), - DOMINANT_SPOTS (2, "dominant_spots"), - ROAN (3, "roan"), - BELLY (4, "belly"); - - private static final IntFunction BY_ID = ByIdMap.continuous(Marking::getId, values(), ByIdMap.OutOfBoundsStrategy.ZERO); - - private final int id; - private final String name; - - private Marking(int j, String string2) { - this.id = j; - this.name = string2; - } - - public int getId() { - return this.id; - } - - public static Marking byId(int i) { - return BY_ID.apply(i); - } - - public String getName() { - return this.name; - } - - } - - public enum Variant { - WHITE (0, "white"), - CREAM (1, "cream"), - CHAMPAGNE (2, "champagne"), - SILVER_DOVE (3, "silver_dove"), - DOVE (4, "dove"), - CHOCOLATE (5, "chocolate"), - BLACK (6, "black"); - - public static final Hamster.Variant[] BY_ID = Arrays.stream(values()).sorted(Comparator.comparingInt(Variant::getId)).toArray(Variant[]::new); - private final int id; - private final String name; - - private Variant(int j, String string2) { - this.id = j; - this.name = string2; - } - - public int getId() { - return this.id; - } - - public String getName() { - return this.name; - } - - public static Variant getTypeById(int id) { - for (Variant type : values()) { - if (type.id == id) return type; - } - return Variant.CHAMPAGNE; - } - } - - @Nullable - @Override - public AgeableMob getBreedOffspring(@NotNull ServerLevel serverLevel, @NotNull AgeableMob ageableMob) { - Hamster hamster = HamstersEntityType.HAMSTER.create(serverLevel); - assert hamster != null; - if (ageableMob instanceof Hamster hamsterParent) { - hamster.setVariant(this.getOffspringVariant(this, hamsterParent)); - hamster.setMarking(this.getOffspringPattern(this, hamsterParent).getId()); - } - return hamster; - } - - private Marking getOffspringPattern(Hamster hamster, Hamster otherParent) { - Marking marking = Marking.byId(hamster.getMarking()); - Marking otherMarking = Marking.byId(otherParent.getMarking()); - - return this.random.nextBoolean() ? marking : otherMarking; - } - - private Variant getOffspringVariant(Hamster hamster, Hamster otherParent) { - Variant variant = Variant.getTypeById(hamster.getVariant()); - Variant otherVariant = Variant.getTypeById(otherParent.getVariant()); - - return this.random.nextBoolean() ? variant : otherVariant; - } - // endregion // region PICK UP ITEMS @Override - public boolean canTakeItem(@NotNull ItemStack pItemstack) { + public boolean canTakeItem(ItemStack pItemstack) { EquipmentSlot slot = getEquipmentSlotForItem(pItemstack); if (!this.getItemBySlot(slot).isEmpty()) { return false; @@ -725,7 +561,7 @@ protected void pickUpItem(ItemEntity pItemEntity) { } @Override - public boolean hurt(@NotNull DamageSource pSource, float pAmount) { + public boolean hurt(DamageSource pSource, float pAmount) { if (!this.getMainHandItem().isEmpty() && !this.level().isClientSide) { ItemEntity itemEntity = new ItemEntity(this.level(), this.getX() + this.getLookAngle().x, this.getY() + 1.0D, this.getZ() + this.getLookAngle().z, this.getMainHandItem()); itemEntity.setPickUpDelay(40); @@ -742,18 +578,23 @@ public boolean hurt(@NotNull DamageSource pSource, float pAmount) { // region SPAWNING @Override - public SpawnGroupData finalizeSpawn(@NotNull ServerLevelAccessor pLevel, @NotNull DifficultyInstance pDifficulty, @NotNull MobSpawnType pReason, @Nullable SpawnGroupData pSpawnData, @Nullable CompoundTag pDataTag) { + public SpawnGroupData finalizeSpawn(ServerLevelAccessor pLevel, DifficultyInstance pDifficulty, MobSpawnType pReason, @Nullable SpawnGroupData pSpawnData, @Nullable CompoundTag pDataTag) { this.populateDefaultEquipmentSlots(random, pDifficulty); if (pSpawnData == null) { RandomSource randomSource = pLevel.getRandom(); this.setVariant(Variant.values()[randomSource.nextInt(Variant.values().length)]); - this.setMarking(Marking.values()[randomSource.nextInt(Marking.values().length)].getId()); } return pSpawnData; } + @Nullable + @Override + public AgeableMob getBreedOffspring(ServerLevel serverLevel, AgeableMob ageableMob) { + return null; + } + @Override - protected void populateDefaultEquipmentSlots(RandomSource random, @NotNull DifficultyInstance pDifficulty) { + protected void populateDefaultEquipmentSlots(RandomSource random, DifficultyInstance pDifficulty) { if (random.nextFloat() < 0.2F) { float chance = random.nextFloat(); ItemStack stack; @@ -773,6 +614,7 @@ protected void populateDefaultEquipmentSlots(RandomSource random, @NotNull Diffi // endregion + // region GECKOLIB @Override @@ -781,15 +623,7 @@ public void registerControllers(AnimatableManager.ControllerRegistrar controller } protected PlayState animController(final AnimationState event) { - if (this.isPassenger() && this.getVehicle() instanceof HamsterBall hamsterBall && hamsterBall.getDeltaMovement().length() > 0.1) { - event.setAnimation(WALK); - return PlayState.CONTINUE; - } else - - if (this.isHamsterDance()) { - event.setAnimation(DANCE); - return PlayState.CONTINUE; - } else if (this.isSleeping()) { + if (this.isSleeping()) { event.setAnimation(SLEEP); } else if (this.isInterested() || this.isInSittingPose()) { event.setAnimation(STANDING); @@ -799,13 +633,9 @@ protected PlayState animController(final AnimationState e event.setAnimation(RUN); } else { event.setControllerSpeed(1.1F); - if (this.isBaby()) { - event.setAnimation(PINKIE_WALK); - } else { - event.setAnimation(WALK); - } + event.setAnimation(WALK); } - } else if (this.isPassenger() && this.getVehicle() instanceof SeatEntity) { + } else if (this.isPassenger() && this.getVehicle() instanceof SeatEntity ) { event.setControllerSpeed(1.4F); event.setAnimation(WALK); } else { @@ -858,18 +688,14 @@ protected boolean resetXRotOnTick() { } } - class HamsterGoToBlockGoal extends Goal { - + class HamsterGoToWheelGoal extends Goal { private final Predicate VALID_GATHERING_BLOCKS; @Nullable - private Vec3 blockPos; + private Vec3 wheelPos; - HamsterGoToBlockGoal() { + HamsterGoToWheelGoal() { this.VALID_GATHERING_BLOCKS = blockState -> { - if (blockState.is(HamstersTags.HAMSTER_BLOCKS)) { - if (blockState.getBlock() instanceof BowlBlock) { - return blockState.getBlock().defaultBlockState().hasProperty(BowlBlock.SEEDS) && (blockState.getValue(BowlBlock.SEEDS) > 0); - } + if (blockState.is(HamstersBlocks.HAMSTER_WHEEL)) { return !blockState.hasProperty(BlockStateProperties.WATERLOGGED) || !blockState.getValue(BlockStateProperties.WATERLOGGED); } return false; @@ -879,8 +705,9 @@ class HamsterGoToBlockGoal extends Goal { @Override public boolean canUse() { + Optional optional = this.findNearbyResource(); - if (optional.isPresent() && Hamster.this.getInterestedTicks() > 100) { + if (optional.isPresent() && !HamsterWheelBlock.isOccupied(Hamster.this.level(), optional.get()) && Hamster.this.getWaitTimeBeforeRunTicks() == 0) { Hamster.this.navigation.moveTo((double) optional.get().getX() + 0.5, optional.get().getY(), (double) optional.get().getZ() + 0.5, 1.2f); return !Hamster.this.level().isRaining() && !Hamster.this.isSleeping() && !Hamster.this.isInSittingPose(); } @@ -890,8 +717,8 @@ public boolean canUse() { @Override public boolean canContinueToUse() { Optional optional = this.findNearbyResource(); - if (optional.isPresent()) { - return !Hamster.this.isSleeping() && !Hamster.this.isInSittingPose() && getInterestedTicks() < 200; + if (optional.isPresent() && !HamsterWheelBlock.isOccupied(Hamster.this.level(), optional.get()) && Hamster.this.getWaitTimeBeforeRunTicks() == 0) { + return !Hamster.this.level().isRaining() && !Hamster.this.isSleeping() && !Hamster.this.isInSittingPose(); } return false; } @@ -910,51 +737,32 @@ public boolean requiresUpdateEveryTick() { public void tick() { Optional optional = this.findNearbyResource(); -// if (block.getBlock() instanceof BottleBlock) { -// if (Hamster.this.position().distanceTo(Vec3.atBottomCenterOf(optional.get())) <= 1.4) { -// if (Hamster.this.tickCount % 20 == 0) { -// Hamster.this.playSound(SoundEvents.GENERIC_DRINK, 0.5F, 1.3F); -// } -// } -// } - if (optional.isPresent()) { - BlockState block = Hamster.this.level().getBlockState(optional.get()); - - if (block.getBlock() instanceof BowlBlock) { - - if (block.getBlock().defaultBlockState().hasProperty(BowlBlock.SEEDS) && block.getValue(BowlBlock.SEEDS) > 0) { - if (Hamster.this.position().distanceTo(Vec3.atBottomCenterOf(optional.get())) <= 1.0) { - if (Hamster.this.getMainHandItem().isEmpty()) { - Hamster.this.level().setBlockAndUpdate(optional.get(), block.setValue(BowlBlock.SEEDS, block.getValue(BowlBlock.SEEDS) - 1)); - Hamster.this.setItemSlot(EquipmentSlot.MAINHAND, new ItemStack(Items.WHEAT_SEEDS)); - Hamster.this.playSound(SoundEvents.PARROT_EAT, 1.0F, 1.0F); - } - } - } - } + if (HamsterWheelBlock.isOccupied(Hamster.this.level(), optional.get())) { + stop(); + } + + if (!HamsterWheelBlock.isOccupied(Hamster.this.level(), optional.get()) && Hamster.this.getWaitTimeBeforeRunTicks() == 0) { Vec3 vec3 = Vec3.atBottomCenterOf(optional.get()); - if (vec3.distanceTo(Hamster.this.position()) > 0.7) { - blockPos = vec3; + if (vec3.distanceTo(Hamster.this.position()) > 1.4) { + wheelPos = vec3; this.setWantedPos(); return; } - if (blockPos == null) { - this.blockPos = vec3; + if (wheelPos == null) { + this.wheelPos = vec3; + } + if (Hamster.this.position().distanceTo(this.wheelPos) <= 1.4) { + Hamster.this.setWaitTimeWhenRunningTicks(Hamster.this.random.nextInt(300) + 100); + HamsterWheelBlock.sitDown(Hamster.this.level(), optional.get(), Hamster.this); + this.stop(); } } - super.tick(); - } private void setWantedPos() { - assert this.blockPos != null; - if (Hamster.this.level().getBlockState(Hamster.this.blockPosition()).getBlock() instanceof BowlBlock && (Hamster.this.level().getBlockState(Hamster.this.blockPosition()).getValue(BowlBlock.SEEDS) == 0)) { - return; - } else { - Hamster.this.getMoveControl().setWantedPosition(this.blockPos.x(), this.blockPos.y(), this.blockPos.z(), 0.7f); - } + Hamster.this.getMoveControl().setWantedPosition(this.wheelPos.x(), this.wheelPos.y(), this.wheelPos.z(), 0.7f); } @@ -966,9 +774,9 @@ private Optional findNearestBlock(Predicate predicate) { BlockPos blockPos = Hamster.this.blockPosition(); BlockPos.MutableBlockPos mutableBlockPos = new BlockPos.MutableBlockPos(); int i = 0; - while ((double) i <= 5.0) { + while ((double)i <= 5.0) { int j = 0; - while ((double) j < 5.0) { + while ((double)j < 5.0) { int k = 0; while (k <= j) { int l = k < j && k > -j ? j : 0; @@ -986,8 +794,22 @@ private Optional findNearestBlock(Predicate predicate) { i = i > 0 ? -i : 1 - i; } return Optional.empty(); + } + } + + private class RunInWheelGoal extends Goal { + + public RunInWheelGoal() { + super(); + this.setFlags(EnumSet.of(Flag.MOVE, Flag.LOOK, Flag.JUMP)); + } + public boolean canUse() { + return !Hamster.this.isSleeping() && !Hamster.this.isInPowderSnow && (Hamster.this.isPassenger() && Hamster.this.getVehicle() instanceof SeatEntity); + } + public boolean canContinueToUse() { + return (Hamster.this.isPassenger() && Hamster.this.getVehicle() instanceof SeatEntity); } } @@ -1003,9 +825,7 @@ public SleepGoal() { } public boolean canUse() { - if (!isHamsterDance()) { - return false; - } else if (Hamster.this.xxa == 0.0F && Hamster.this.yya == 0.0F && Hamster.this.zza == 0.0F) { + if (Hamster.this.xxa == 0.0F && Hamster.this.yya == 0.0F && Hamster.this.zza == 0.0F) { return this.canSleep() || Hamster.this.isSleeping(); } else { return false; @@ -1060,211 +880,4 @@ public boolean test(LivingEntity livingEntity) { } } // endregion - - void pathfindTowards(BlockPos blockPos) { - Vec3 vec3 = Vec3.atBottomCenterOf(blockPos); - this.getNavigation().moveTo(vec3.x, vec3.y, vec3.z, 1.0); - } - - boolean isWheelValid(BlockPos blockPos) { - return this.level().isLoaded(blockPos) && this.level().getBlockState(blockPos).is(HamstersTags.HAMSTER_WHEELS); - } - - boolean closerThan(BlockPos blockPos, int i) { - return !blockPos.closerThan(this.blockPosition(), i); - } - - - boolean isTooFarAway(BlockPos blockPos) { - return this.closerThan(blockPos, 32); - } - - - - private abstract static class BaseHamsterGoal extends Goal { - BaseHamsterGoal() { - } - - public abstract boolean canHamsterUse(); - - public abstract boolean canBeeContinueToUse(); - - public boolean canUse() { - return this.canHamsterUse(); - } - - public boolean canContinueToUse() { - return this.canBeeContinueToUse(); - } - } - - class HamsterEnterWheelGoal extends Hamster.BaseHamsterGoal { - HamsterEnterWheelGoal() { - super(); - } - - public boolean canHamsterUse() { - return Hamster.this.wheelPos != null && Hamster.this.closerThan(Hamster.this.wheelPos, 2) && Hamster.this.isWheelValid(Hamster.this.wheelPos); - } - - public boolean canBeeContinueToUse() { - return false; - } - - public void start() { - assert Hamster.this.wheelPos != null; - Block block = Hamster.this.level().getBlockState(Hamster.this.wheelPos).getBlock(); - BlockEntity blockEntity = Hamster.this.level().getBlockEntity(Hamster.this.wheelPos); - if (block instanceof HamsterWheelBlock && blockEntity instanceof HamsterWheelBlockEntity) { - if (HamsterWheelBlock.isOccupied(Hamster.this.level(), Hamster.this.wheelPos)) { - Hamster.this.wheelPos = null; - } else { - HamsterWheelBlock.sitDown(Hamster.this.level(), Hamster.this.wheelPos, Hamster.this); - } - } - } - } - - class HamsterLocateWheelGoal extends Hamster.BaseHamsterGoal { - HamsterLocateWheelGoal() { - super(); - } - - public boolean canHamsterUse() { - return Hamster.this.remainingCooldownBeforeLocatingNewWheel == 0 && Hamster.this.wheelPos == null; - } - - public boolean canBeeContinueToUse() { - return false; - } - - public void start() { - Hamster.this.remainingCooldownBeforeLocatingNewWheel = 200; - BlockPos blockPos = findNearbyWheel(); - if (blockPos != null) { - Hamster.this.wheelPos = blockPos; - } - } - - @Nullable - private BlockPos findNearbyWheel() { - BlockPos blockPos = Hamster.this.blockPosition(); - PoiManager poiManager = ((ServerLevel)Hamster.this.level()).getPoiManager(); - Stream stream = poiManager.getInRange((holder) -> holder.is(HamstersPoiTypes.HAMSTER_WHEEL), blockPos, 20, PoiManager.Occupancy.ANY); - return stream.map(PoiRecord::getPos).filter(Hamster.this::isWheelValid).min(Comparator.comparingDouble((blockPos2) -> blockPos2.distSqr(blockPos))).orElse(null); - } - } - - @VisibleForDebug - public class HamsterGoToWheelGoal extends Hamster.BaseHamsterGoal { - public static final int MAX_TRAVELLING_TICKS = 600; - int travellingTicks; - private static final int MAX_BLACKLISTED_TARGETS = 3; - final List blacklistedTargets; - @Nullable - private Path lastPath; - private static final int TICKS_BEFORE_WHEEL_DROP = 60; - private int ticksStuck; - - HamsterGoToWheelGoal() { - super(); - this.travellingTicks = Hamster.this.level().random.nextInt(10); - this.blacklistedTargets = Lists.newArrayList(); - this.setFlags(EnumSet.of(Flag.MOVE)); - } - - public boolean canHamsterUse() { - return Hamster.this.wheelPos != null && !Hamster.this.hasRestriction() && !this.hasReachedTarget(Hamster.this.wheelPos) && Hamster.this.isWheelValid(Hamster.this.wheelPos); - } - - public boolean canBeeContinueToUse() { - return this.canHamsterUse(); - } - - public void start() { - this.travellingTicks = 0; - this.ticksStuck = 0; - super.start(); - } - - public void stop() { - this.travellingTicks = 0; - this.ticksStuck = 0; - Hamster.this.getNavigation().stop(); - Hamster.this.getNavigation().resetMaxVisitedNodesMultiplier(); - } - - public void tick() { - if (Hamster.this.wheelPos != null) { - ++this.travellingTicks; - if (this.travellingTicks > this.adjustedTickDelay(600)) { - this.dropAndBlacklistWheel(); - } else if (!Hamster.this.getNavigation().isInProgress()) { - if (!Hamster.this.closerThan(Hamster.this.wheelPos, 16)) { - if (Hamster.this.isTooFarAway(Hamster.this.wheelPos)) { - this.dropWheel(); - } else { - Hamster.this.pathfindTowards(Hamster.this.wheelPos); - } - } else { - boolean bl = this.pathfindDirectlyTowards(Hamster.this.wheelPos); - if (!bl) { - this.dropAndBlacklistWheel(); - } else if (this.lastPath != null && Hamster.this.getNavigation().getPath().sameAs(this.lastPath)) { - ++this.ticksStuck; - if (this.ticksStuck > 60) { - this.dropWheel(); - this.ticksStuck = 0; - } - } else { - this.lastPath = Hamster.this.getNavigation().getPath(); - } - } - } - } - } - private boolean pathfindDirectlyTowards(BlockPos blockPos) { - Hamster.this.getNavigation().setMaxVisitedNodesMultiplier(10.0F); - Hamster.this.getNavigation().moveTo(blockPos.getX(), blockPos.getY(), blockPos.getZ(), 1.0); - return Hamster.this.getNavigation().getPath() != null && Hamster.this.getNavigation().getPath().canReach(); - } - - boolean isTargetBlacklisted(BlockPos blockPos) { - return this.blacklistedTargets.contains(blockPos); - } - - private void blacklistTarget(BlockPos blockPos) { - this.blacklistedTargets.add(blockPos); - - while(this.blacklistedTargets.size() > 3) { - this.blacklistedTargets.remove(0); - } - } - - void clearBlacklist() { - this.blacklistedTargets.clear(); - } - - private void dropAndBlacklistWheel() { - if (Hamster.this.wheelPos != null) { - this.blacklistTarget(Hamster.this.wheelPos); - } - - this.dropWheel(); - } - - private void dropWheel() { - Hamster.this.wheelPos = null; - Hamster.this.remainingCooldownBeforeLocatingNewWheel = 200; - } - - private boolean hasReachedTarget(BlockPos blockPos) { - if (Hamster.this.closerThan(blockPos, 2)) { - return true; - } else { - Path path = Hamster.this.getNavigation().getPath(); - return path != null && path.getTarget().equals(blockPos) && path.canReach() && path.isDone(); - } - } - } } diff --git a/src/main/java/com/starfish_studios/hamsters/entity/HamsterBall.java b/src/main/java/com/starfish_studios/hamsters/entity/HamsterBall.java index 6baa38d..a7ce495 100644 --- a/src/main/java/com/starfish_studios/hamsters/entity/HamsterBall.java +++ b/src/main/java/com/starfish_studios/hamsters/entity/HamsterBall.java @@ -155,7 +155,7 @@ public void setItemSlot(EquipmentSlot equipmentSlot, ItemStack itemStack) { @Override public ItemStack getPickResult() { - return new ItemStack(HamstersItems.HAMSTER_BALL); + return new ItemStack(HamstersItems.BLUE_HAMSTER_BALL); } diff --git a/src/main/java/com/starfish_studios/hamsters/entity/HamsterNew.java b/src/main/java/com/starfish_studios/hamsters/entity/HamsterNew.java index eeb688c..6a19c59 100644 --- a/src/main/java/com/starfish_studios/hamsters/entity/HamsterNew.java +++ b/src/main/java/com/starfish_studios/hamsters/entity/HamsterNew.java @@ -20,10 +20,10 @@ import net.minecraft.tags.ItemTags; import net.minecraft.tags.PoiTypeTags; import net.minecraft.util.ByIdMap; +import net.minecraft.util.RandomSource; import net.minecraft.util.VisibleForDebug; -import net.minecraft.world.entity.AgeableMob; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.TamableAnimal; +import net.minecraft.world.DifficultyInstance; +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.control.BodyRotationControl; @@ -36,6 +36,7 @@ import net.minecraft.world.entity.player.Player; 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 net.minecraft.world.level.block.entity.BeehiveBlockEntity; import net.minecraft.world.level.block.entity.BlockEntity; @@ -46,6 +47,10 @@ import software.bernie.geckolib.animatable.GeoEntity; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animation.AnimatableManager; +import software.bernie.geckolib.core.animation.AnimationController; +import software.bernie.geckolib.core.animation.AnimationState; +import software.bernie.geckolib.core.animation.RawAnimation; +import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; import java.util.*; @@ -55,20 +60,15 @@ public class HamsterNew extends TamableAnimal implements GeoEntity { private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this); - - private static final int TICKS_BEFORE_GOING_TO_WHEEL = 2400; - public static final String TAG_WHEEL_POS = "WheelPos"; - private static final int COOLDOWN_BEFORE_LOCATING_NEW_WHEEL = 200; - int remainingCooldownBeforeLocatingNewWheel; - + protected static final RawAnimation IDLE = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.idle"); + protected static final RawAnimation WALK = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.walk"); + protected static final RawAnimation RUN = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.run"); + protected static final RawAnimation SLEEP = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.sleep"); + protected static final RawAnimation STANDING = RawAnimation.begin().thenLoop("animation.sf_nba.hamster.standing"); private static final EntityDataAccessor VARIANT = SynchedEntityData.defineId(HamsterNew.class, EntityDataSerializers.INT); private static final EntityDataAccessor MARKING = SynchedEntityData.defineId(HamsterNew.class, EntityDataSerializers.INT); - - @Nullable - BlockPos wheelPos; - public HamsterNew(EntityType entityType, Level level) { super(entityType, level); } @@ -88,9 +88,9 @@ protected void registerGoals() { this.goalSelector.addGoal(1, new PanicGoal(this, 1.3)); this.goalSelector.addGoal(2, new SitWhenOrderedToGoal(this)); this.goalSelector.addGoal(3, new BreedGoal(this, 1.0)); - this.goalSelector.addGoal(4, new HamsterEnterWheelGoal()); - this.goalSelector.addGoal(5, new HamsterLocateWheelGoal()); - this.goalSelector.addGoal(5, new HamsterGoToWheelGoal()); +// this.goalSelector.addGoal(4, new HamsterEnterWheelGoal()); +// this.goalSelector.addGoal(5, new HamsterLocateWheelGoal()); +// this.goalSelector.addGoal(5, new HamsterGoToWheelGoal()); this.goalSelector.addGoal(6, new WaterAvoidingRandomStrollGoal(this, 1.0)); this.goalSelector.addGoal(7, new LookAtPlayerGoal(this, Player.class, 6.0F)); this.goalSelector.addGoal(9, new RandomLookAroundGoal(this)); @@ -102,19 +102,22 @@ public static AttributeSupplier.Builder createAttributes() { .add(Attributes.MOVEMENT_SPEED, 0.25D); } - @Nullable - @Override - public AgeableMob getBreedOffspring(@NotNull ServerLevel serverLevel, @NotNull AgeableMob ageableMob) { - return new HamsterNew(HamstersEntityType.HAMSTER, serverLevel); - } @Override - public void registerControllers(AnimatableManager.ControllerRegistrar controllers) { + public SpawnGroupData finalizeSpawn(ServerLevelAccessor pLevel, DifficultyInstance pDifficulty, MobSpawnType pReason, @Nullable SpawnGroupData pSpawnData, @Nullable CompoundTag pDataTag) { + this.populateDefaultEquipmentSlots(random, pDifficulty); + if (pSpawnData == null) { + RandomSource randomSource = pLevel.getRandom(); + this.setVariant(HamsterNew.Variant.values()[randomSource.nextInt(HamsterNew.Variant.values().length)]); + this.setMarking(HamsterNew.Marking.values()[randomSource.nextInt(HamsterNew.Marking.values().length)].getId()); + } + return pSpawnData; } + @Nullable @Override - public AnimatableInstanceCache getAnimatableInstanceCache() { - return geoCache; + public AgeableMob getBreedOffspring(@NotNull ServerLevel serverLevel, @NotNull AgeableMob ageableMob) { + return new HamsterNew(HamstersEntityType.HAMSTER, serverLevel); } void pathfindTowards(BlockPos blockPos) { @@ -123,6 +126,7 @@ void pathfindTowards(BlockPos blockPos) { } + // region DATA @Override protected void defineSynchedData() { @@ -134,10 +138,6 @@ protected void defineSynchedData() { @Override public void readAdditionalSaveData(@NotNull CompoundTag compoundTag) { super.readAdditionalSaveData(compoundTag); - this.wheelPos = null; - if (compoundTag.contains("WheelPos")) { - this.wheelPos = NbtUtils.readBlockPos(compoundTag.getCompound("WheelPos")); - } this.setVariant(HamsterNew.Variant.BY_ID[compoundTag.getInt("Variant")]); this.setMarking(compoundTag.getInt("Marking")); } @@ -145,29 +145,10 @@ public void readAdditionalSaveData(@NotNull CompoundTag compoundTag) { @Override public void addAdditionalSaveData(@NotNull CompoundTag compoundTag) { super.addAdditionalSaveData(compoundTag); - if (this.hasWheel()) { - assert this.getWheelPos() != null; - compoundTag.put("HivePos", NbtUtils.writeBlockPos(this.getWheelPos())); - } compoundTag.putInt("Variant", this.getVariant()); compoundTag.putInt("Marking", this.getMarking()); } - @VisibleForDebug - public boolean hasWheel() { - return this.wheelPos != null; - } - - @Nullable - @VisibleForDebug - public BlockPos getWheelPos() { - return this.wheelPos; - } - - boolean isWheelValid(BlockPos blockPos) { - return this.level().isLoaded(blockPos) && this.level().getBlockState(blockPos).is(HamstersTags.HAMSTER_WHEELS); - } - boolean closerThan(BlockPos blockPos, int i) { return !blockPos.closerThan(this.blockPosition(), i); } @@ -258,192 +239,42 @@ public static HamsterNew.Variant getTypeById(int id) { } } + // endregion + // region GECKOLIB - abstract static class BaseHamsterGoal extends Goal { - BaseHamsterGoal() { - } - - public abstract boolean canHamsterUse(); - - public abstract boolean canBeeContinueToUse(); - - public boolean canUse() { - return this.canHamsterUse(); - } - - public boolean canContinueToUse() { - return this.canBeeContinueToUse(); - } - } - - class HamsterEnterWheelGoal extends BaseHamsterGoal { - HamsterEnterWheelGoal() { - super(); - } - - public boolean canHamsterUse() { - return HamsterNew.this.wheelPos != null && HamsterNew.this.closerThan(HamsterNew.this.wheelPos, 2) && HamsterNew.this.isWheelValid(HamsterNew.this.wheelPos); - } - - public boolean canBeeContinueToUse() { - return false; - } - - public void start() { - assert HamsterNew.this.wheelPos != null; - Block block = HamsterNew.this.level().getBlockState(HamsterNew.this.wheelPos).getBlock(); - BlockEntity blockEntity = HamsterNew.this.level().getBlockEntity(HamsterNew.this.wheelPos); - if (block instanceof HamsterWheelBlock && blockEntity instanceof HamsterWheelBlockEntity) { - if (HamsterWheelBlock.isOccupied(HamsterNew.this.level(), HamsterNew.this.wheelPos)) { - HamsterNew.this.wheelPos = null; - } else { - HamsterWheelBlock.sitDown(HamsterNew.this.level(), HamsterNew.this.wheelPos, HamsterNew.this); - } - } - } + @Override + public void registerControllers(AnimatableManager.ControllerRegistrar controllerRegistrar) { + controllerRegistrar.add(new AnimationController<>(this, "controller", 0, this::animController)); } - class HamsterLocateWheelGoal extends BaseHamsterGoal { - HamsterLocateWheelGoal() { - super(); - } - - public boolean canHamsterUse() { - return HamsterNew.this.remainingCooldownBeforeLocatingNewWheel == 0 && HamsterNew.this.wheelPos == null; - } - - public boolean canBeeContinueToUse() { - return false; - } - - public void start() { - HamsterNew.this.remainingCooldownBeforeLocatingNewWheel = 200; - BlockPos blockPos = findNearbyWheel(); - if (blockPos != null) { - HamsterNew.this.wheelPos = blockPos; + protected PlayState animController(final AnimationState event) { + if (this.isSleeping()) { + event.setAnimation(SLEEP); + } else if (this.isInSittingPose()) { + event.setAnimation(STANDING); + } else if (event.isMoving()) { + if (this.isSprinting()) { + event.setControllerSpeed(1.3F); + event.setAnimation(RUN); + } else { + event.setControllerSpeed(1.1F); + event.setAnimation(WALK); } + } else if (this.isPassenger() && this.getVehicle() instanceof SeatEntity ) { + event.setControllerSpeed(1.4F); + event.setAnimation(WALK); + } else { + event.setAnimation(IDLE); } - @Nullable - private BlockPos findNearbyWheel() { - BlockPos blockPos = HamsterNew.this.blockPosition(); - PoiManager poiManager = ((ServerLevel)HamsterNew.this.level()).getPoiManager(); - Stream stream = poiManager.getInRange((holder) -> holder.is(HamstersPoiTypes.HAMSTER_WHEEL), blockPos, 20, PoiManager.Occupancy.ANY); - return stream.map(PoiRecord::getPos).filter(HamsterNew.this::isWheelValid).min(Comparator.comparingDouble((blockPos2) -> blockPos2.distSqr(blockPos))).orElse(null); - } + return PlayState.CONTINUE; } - @VisibleForDebug - public class HamsterGoToWheelGoal extends BaseHamsterGoal { - public static final int MAX_TRAVELLING_TICKS = 600; - int travellingTicks; - private static final int MAX_BLACKLISTED_TARGETS = 3; - final List blacklistedTargets; - @Nullable - private Path lastPath; - private static final int TICKS_BEFORE_WHEEL_DROP = 60; - private int ticksStuck; - - HamsterGoToWheelGoal() { - super(); - this.travellingTicks = HamsterNew.this.level().random.nextInt(10); - this.blacklistedTargets = Lists.newArrayList(); - this.setFlags(EnumSet.of(Flag.MOVE)); - } - - public boolean canHamsterUse() { - return HamsterNew.this.wheelPos != null && !HamsterNew.this.hasRestriction() && !this.hasReachedTarget(HamsterNew.this.wheelPos) && HamsterNew.this.isWheelValid(HamsterNew.this.wheelPos); - } - - public boolean canBeeContinueToUse() { - return this.canHamsterUse(); - } - - public void start() { - this.travellingTicks = 0; - this.ticksStuck = 0; - super.start(); - } - - public void stop() { - this.travellingTicks = 0; - this.ticksStuck = 0; - HamsterNew.this.getNavigation().stop(); - HamsterNew.this.getNavigation().resetMaxVisitedNodesMultiplier(); - } - - public void tick() { - if (HamsterNew.this.wheelPos != null) { - ++this.travellingTicks; - if (this.travellingTicks > this.adjustedTickDelay(MAX_TRAVELLING_TICKS)) { - this.dropAndBlacklistWheel(); - } else if (!HamsterNew.this.getNavigation().isInProgress()) { - if (!HamsterNew.this.closerThan(HamsterNew.this.wheelPos, 16)) { - if (HamsterNew.this.isTooFarAway(HamsterNew.this.wheelPos)) { - this.dropWheel(); - } else { - HamsterNew.this.pathfindTowards(HamsterNew.this.wheelPos); - } - } else { - boolean bl = this.pathfindDirectlyTowards(HamsterNew.this.wheelPos); - if (!bl) { - this.dropAndBlacklistWheel(); - } else if (this.lastPath != null && Objects.requireNonNull(HamsterNew.this.getNavigation().getPath()).sameAs(this.lastPath)) { - ++this.ticksStuck; - if (this.ticksStuck > TICKS_BEFORE_WHEEL_DROP) { - this.dropWheel(); - this.ticksStuck = 0; - } - } else { - this.lastPath = HamsterNew.this.getNavigation().getPath(); - } - } - } - } - } - private boolean pathfindDirectlyTowards(BlockPos blockPos) { - HamsterNew.this.getNavigation().setMaxVisitedNodesMultiplier(10.0F); - HamsterNew.this.getNavigation().moveTo(blockPos.getX(), blockPos.getY(), blockPos.getZ(), 1.0); - return HamsterNew.this.getNavigation().getPath() != null && HamsterNew.this.getNavigation().getPath().canReach(); - } - - boolean isTargetBlacklisted(BlockPos blockPos) { - return this.blacklistedTargets.contains(blockPos); - } - - private void blacklistTarget(BlockPos blockPos) { - this.blacklistedTargets.add(blockPos); - - while(this.blacklistedTargets.size() > 3) { - this.blacklistedTargets.remove(0); - } - } - - void clearBlacklist() { - this.blacklistedTargets.clear(); - } - - private void dropAndBlacklistWheel() { - if (HamsterNew.this.wheelPos != null) { - this.blacklistTarget(HamsterNew.this.wheelPos); - } - - this.dropWheel(); - } - - private void dropWheel() { - HamsterNew.this.wheelPos = null; - HamsterNew.this.remainingCooldownBeforeLocatingNewWheel = 200; - } - - private boolean hasReachedTarget(BlockPos blockPos) { - if (HamsterNew.this.closerThan(blockPos, 2)) { - return true; - } else { - Path path = HamsterNew.this.getNavigation().getPath(); - return path != null && path.getTarget().equals(blockPos) && path.canReach() && path.isDone(); - } - } + @Override + public AnimatableInstanceCache getAnimatableInstanceCache() { + return this.geoCache; } + + // endregion } diff --git a/src/main/java/com/starfish_studios/hamsters/entity/common/HamstersGeoEntity.java b/src/main/java/com/starfish_studios/hamsters/entity/common/HamstersGeoEntity.java index e383b58..a1c65e8 100644 --- a/src/main/java/com/starfish_studios/hamsters/entity/common/HamstersGeoEntity.java +++ b/src/main/java/com/starfish_studios/hamsters/entity/common/HamstersGeoEntity.java @@ -6,7 +6,7 @@ public interface HamstersGeoEntity extends GeoEntity { @Override default double getBoneResetTime() { - return 0; + return 5; } diff --git a/src/main/java/com/starfish_studios/hamsters/registry/HamstersBlocks.java b/src/main/java/com/starfish_studios/hamsters/registry/HamstersBlocks.java index aad7c50..969b077 100644 --- a/src/main/java/com/starfish_studios/hamsters/registry/HamstersBlocks.java +++ b/src/main/java/com/starfish_studios/hamsters/registry/HamstersBlocks.java @@ -1,27 +1,77 @@ package com.starfish_studios.hamsters.registry; import com.starfish_studios.hamsters.Hamsters; -import com.starfish_studios.hamsters.block.BottleBlock; -import com.starfish_studios.hamsters.block.BowlBlock; -import com.starfish_studios.hamsters.block.HamsterWheelBlock; -import com.starfish_studios.hamsters.block.TunnelBlock; +import com.starfish_studios.hamsters.block.*; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.*; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.material.PushReaction; public class HamstersBlocks { - public static final Block TUNNEL = register("tunnel", new TunnelBlock(FabricBlockSettings.copyOf(Blocks.GREEN_STAINED_GLASS))); + public static class BlockProperties { + public static FabricBlockSettings cagePanel = (FabricBlockSettings) FabricBlockSettings.create().strength(0.3F).noOcclusion().isSuffocating((state, world, pos) -> false); + } + +// public static final Block TUNNEL = register("tunnel", new TunnelBlock(BlockProperties.cagePanel)); public static final Block HAMSTER_WHEEL = register("hamster_wheel", new HamsterWheelBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.IGNORE))); + // RED, ORANGE, YELLOW, LIME, GREEN, CYAN, BLUE, LIGHT BLUE, PINK, MAGENTA, PURPLE, WHITE, LIGHT GRAY, GRAY, BLACK, BROWN + public static final Block CAGE_PANEL = register("cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block RED_CAGE_PANEL = register("red_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block ORANGE_CAGE_PANEL = register("orange_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block YELLOW_CAGE_PANEL = register("yellow_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block LIME_CAGE_PANEL = register("lime_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block GREEN_CAGE_PANEL = register("green_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block CYAN_CAGE_PANEL = register("cyan_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block BLUE_CAGE_PANEL = register("blue_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block LIGHT_BLUE_CAGE_PANEL = register("light_blue_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block PINK_CAGE_PANEL = register("pink_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block MAGENTA_CAGE_PANEL = register("magenta_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block PURPLE_CAGE_PANEL = register("purple_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block WHITE_CAGE_PANEL = register("white_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block LIGHT_GRAY_CAGE_PANEL = register("light_gray_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block GRAY_CAGE_PANEL = register("gray_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block BLACK_CAGE_PANEL = register("black_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + public static final Block BROWN_CAGE_PANEL = register("brown_cage_panel", new CagePanelBlock(BlockProperties.cagePanel)); + + public static final Block RED_HAMSTER_BOWL = register("red_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block ORANGE_HAMSTER_BOWL = register("orange_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block YELLOW_HAMSTER_BOWL = register("yellow_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block LIME_HAMSTER_BOWL = register("lime_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block GREEN_HAMSTER_BOWL = register("green_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block CYAN_HAMSTER_BOWL = register("cyan_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); public static final Block BLUE_HAMSTER_BOWL = register("blue_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block LIGHT_BLUE_HAMSTER_BOWL = register("light_blue_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block PINK_HAMSTER_BOWL = register("pink_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block MAGENTA_HAMSTER_BOWL = register("magenta_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block PURPLE_HAMSTER_BOWL = register("purple_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block WHITE_HAMSTER_BOWL = register("white_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block LIGHT_GRAY_HAMSTER_BOWL = register("light_gray_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block GRAY_HAMSTER_BOWL = register("gray_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block BLACK_HAMSTER_BOWL = register("black_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block BROWN_HAMSTER_BOWL = register("brown_hamster_bowl", new BowlBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + + public static final Block RED_HAMSTER_BOTTLE = register("red_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block ORANGE_HAMSTER_BOTTLE = register("orange_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block YELLOW_HAMSTER_BOTTLE = register("yellow_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block LIME_HAMSTER_BOTTLE = register("lime_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block GREEN_HAMSTER_BOTTLE = register("green_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block CYAN_HAMSTER_BOTTLE = register("cyan_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); public static final Block BLUE_HAMSTER_BOTTLE = register("blue_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block LIGHT_BLUE_HAMSTER_BOTTLE = register("light_blue_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block PINK_HAMSTER_BOTTLE = register("pink_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block MAGENTA_HAMSTER_BOTTLE = register("magenta_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block PURPLE_HAMSTER_BOTTLE = register("purple_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block WHITE_HAMSTER_BOTTLE = register("white_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block LIGHT_GRAY_HAMSTER_BOTTLE = register("light_gray_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block GRAY_HAMSTER_BOTTLE = register("gray_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block BLACK_HAMSTER_BOTTLE = register("black_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + public static final Block BROWN_HAMSTER_BOTTLE = register("brown_hamster_bottle", new BottleBlock(FabricBlockSettings.create().strength(0.6F).noOcclusion().isSuffocating((state, world, pos) -> false).pushReaction(PushReaction.DESTROY))); + private static Block register(String id, Block block) { return Registry.register(BuiltInRegistries.BLOCK, new ResourceLocation(Hamsters.MOD_ID, id), block); diff --git a/src/main/java/com/starfish_studios/hamsters/registry/HamstersCreativeModeTab.java b/src/main/java/com/starfish_studios/hamsters/registry/HamstersCreativeModeTab.java index 362d1d7..0bba750 100644 --- a/src/main/java/com/starfish_studios/hamsters/registry/HamstersCreativeModeTab.java +++ b/src/main/java/com/starfish_studios/hamsters/registry/HamstersCreativeModeTab.java @@ -10,6 +10,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.ItemLike; +import static com.starfish_studios.hamsters.registry.HamstersBlocks.CAGE_PANEL; import static com.starfish_studios.hamsters.registry.HamstersBlocks.HAMSTER_WHEEL; import static com.starfish_studios.hamsters.registry.HamstersItems.*; @@ -18,48 +19,82 @@ public class HamstersCreativeModeTab { @SuppressWarnings("unused") public static final CreativeModeTab ITEM_GROUP = register("item_group", FabricItemGroup.builder().icon(HAMSTER_SPAWN_EGG::getDefaultInstance).title(Component.translatable("itemGroup.hamsters.tab")).displayItems((featureFlagSet, output) -> { - output.accept(TUNNEL); - output.accept(HamstersItems.HAMSTER_WHEEL); - output.accept(HamstersItems.BLUE_HAMSTER_BOWL); - output.accept(HamstersItems.BLUE_HAMSTER_BOTTLE); - output.accept(HamstersItems.HAMSTER_BALL); +// output.accept(TUNNEL); + output.accept(HAMSTER_WHEEL); + +// // RED, ORANGE, YELLOW, LIME, GREEN, CYAN, BLUE, LIGHT BLUE, PINK, MAGENTA, PURPLE, WHITE, LIGHT GRAY, GRAY, BLACK, BROWN + output.accept(CAGE_PANEL); + output.accept(RED_CAGE_PANEL); + output.accept(ORANGE_CAGE_PANEL); + output.accept(YELLOW_CAGE_PANEL); + output.accept(LIME_CAGE_PANEL); + output.accept(GREEN_CAGE_PANEL); + output.accept(CYAN_CAGE_PANEL); + output.accept(BLUE_CAGE_PANEL); + output.accept(LIGHT_BLUE_CAGE_PANEL); + output.accept(PINK_CAGE_PANEL); + output.accept(MAGENTA_CAGE_PANEL); + output.accept(PURPLE_CAGE_PANEL); + output.accept(WHITE_CAGE_PANEL); + output.accept(LIGHT_GRAY_CAGE_PANEL); + output.accept(GRAY_CAGE_PANEL); + output.accept(BLACK_CAGE_PANEL); + output.accept(BROWN_CAGE_PANEL); + + output.accept(RED_HAMSTER_BOWL); + output.accept(ORANGE_HAMSTER_BOWL); + output.accept(YELLOW_HAMSTER_BOWL); + output.accept(LIME_HAMSTER_BOWL); + output.accept(GREEN_HAMSTER_BOWL); + output.accept(CYAN_HAMSTER_BOWL); + output.accept(BLUE_HAMSTER_BOWL); + output.accept(LIGHT_BLUE_HAMSTER_BOWL); + output.accept(PINK_HAMSTER_BOWL); + output.accept(MAGENTA_HAMSTER_BOWL); + output.accept(PURPLE_HAMSTER_BOWL); + output.accept(WHITE_HAMSTER_BOWL); + output.accept(LIGHT_GRAY_HAMSTER_BOWL); + output.accept(GRAY_HAMSTER_BOWL); + output.accept(BLACK_HAMSTER_BOWL); + output.accept(BROWN_HAMSTER_BOWL); + + output.accept(RED_HAMSTER_BOTTLE); + output.accept(ORANGE_HAMSTER_BOTTLE); + output.accept(YELLOW_HAMSTER_BOTTLE); + output.accept(LIME_HAMSTER_BOTTLE); + output.accept(GREEN_HAMSTER_BOTTLE); + output.accept(CYAN_HAMSTER_BOTTLE); + output.accept(BLUE_HAMSTER_BOTTLE); + output.accept(LIGHT_BLUE_HAMSTER_BOTTLE); + output.accept(PINK_HAMSTER_BOTTLE); + output.accept(MAGENTA_HAMSTER_BOTTLE); + output.accept(PURPLE_HAMSTER_BOTTLE); + output.accept(WHITE_HAMSTER_BOTTLE); + output.accept(LIGHT_GRAY_HAMSTER_BOTTLE); + output.accept(GRAY_HAMSTER_BOTTLE); + output.accept(BLACK_HAMSTER_BOTTLE); + output.accept(BROWN_HAMSTER_BOTTLE); + + output.accept(RED_HAMSTER_BALL); + output.accept(ORANGE_HAMSTER_BALL); + output.accept(YELLOW_HAMSTER_BALL); + output.accept(LIME_HAMSTER_BALL); + output.accept(GREEN_HAMSTER_BALL); + output.accept(CYAN_HAMSTER_BALL); + output.accept(BLUE_HAMSTER_BALL); + output.accept(LIGHT_BLUE_HAMSTER_BALL); + output.accept(PINK_HAMSTER_BALL); + output.accept(MAGENTA_HAMSTER_BALL); + output.accept(PURPLE_HAMSTER_BALL); + output.accept(WHITE_HAMSTER_BALL); + output.accept(LIGHT_GRAY_HAMSTER_BALL); + output.accept(GRAY_HAMSTER_BALL); + output.accept(BLACK_HAMSTER_BALL); + output.accept(BROWN_HAMSTER_BALL); output.accept(HAMSTER_SPAWN_EGG); output.accept(HAMSTER_NEW_SPAWN_EGG); - - // TODO: Not very pretty right now. Maybe there's a better way to do this? - - ItemStack item0 = new ItemStack(HAMSTER); - item0.getOrCreateTag().putInt("Variant", 0); - output.accept(item0); - - ItemStack item1 = new ItemStack(HAMSTER); - item1.getOrCreateTag().putInt("Variant", 1); - output.accept(item1); - - ItemStack item2 = new ItemStack(HAMSTER); - item2.getOrCreateTag().putInt("Variant", 2); - output.accept(item2); - - ItemStack item3 = new ItemStack(HAMSTER); - item3.getOrCreateTag().putInt("Variant", 3); - output.accept(item3); - - ItemStack item4 = new ItemStack(HAMSTER); - item4.getOrCreateTag().putInt("Variant", 4); - output.accept(item4); - - ItemStack item5 = new ItemStack(HAMSTER); - item5.getOrCreateTag().putInt("Variant", 5); - output.accept(item5); - - ItemStack item6 = new ItemStack(HAMSTER); - item6.getOrCreateTag().putInt("Variant", 6); - output.accept(item6); - - - }).build() ); diff --git a/src/main/java/com/starfish_studios/hamsters/registry/HamstersEntityType.java b/src/main/java/com/starfish_studios/hamsters/registry/HamstersEntityType.java index 30c77fd..b79501b 100644 --- a/src/main/java/com/starfish_studios/hamsters/registry/HamstersEntityType.java +++ b/src/main/java/com/starfish_studios/hamsters/registry/HamstersEntityType.java @@ -27,6 +27,16 @@ public class HamstersEntityType { .trackRangeChunks(10) ); + public static final EntityType FRANK = register( + "frank", + FabricEntityTypeBuilder.createMob() + .entityFactory(Frank::new) + .defaultAttributes(Frank::createAttributes) + .spawnGroup(MobCategory.MONSTER) + .dimensions(EntityDimensions.scalable(2.0F, 2.5F)) + .trackRangeChunks(10) + ); + public static final EntityType HAMSTER_NEW = register( "hamster_new", FabricEntityTypeBuilder.createMob() diff --git a/src/main/java/com/starfish_studios/hamsters/registry/HamstersItems.java b/src/main/java/com/starfish_studios/hamsters/registry/HamstersItems.java index 618a793..5875805 100644 --- a/src/main/java/com/starfish_studios/hamsters/registry/HamstersItems.java +++ b/src/main/java/com/starfish_studios/hamsters/registry/HamstersItems.java @@ -14,25 +14,104 @@ import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.SpawnEggItem; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.material.MapColor; +import net.minecraft.world.level.material.PushReaction; import java.util.function.Supplier; public class HamstersItems { + public static class ItemProperties { + public static FabricItemSettings hamsterBallItem = (FabricItemSettings) new FabricItemSettings().stacksTo(1); + public static FabricItemSettings hamsterBottleItem = new FabricItemSettings(); + public static FabricItemSettings hamsterBowlItem = new FabricItemSettings(); + } + public static final Item HAMSTER_SPAWN_EGG = register("hamster_spawn_egg", new SpawnEggItem(HamstersEntityType.HAMSTER, 16747824, 16775119, new FabricItemSettings())); public static final Item HAMSTER_NEW_SPAWN_EGG = register("hamster_new_spawn_egg", new SpawnEggItem(HamstersEntityType.HAMSTER_NEW, 16747824, 16775119, new FabricItemSettings())); - public static final Item TUNNEL = register("tunnel", new BlockItem(HamstersBlocks.TUNNEL, new FabricItemSettings())); +// public static final Item TUNNEL = register("tunnel", new BlockItem(HamstersBlocks.TUNNEL, new FabricItemSettings())); public static final Item HAMSTER = register("hamster", new HamsterItem(new FabricItemSettings().stacksTo(1))); - public static final BlockItem BLUE_HAMSTER_BOWL = (BlockItem) register("blue_hamster_bowl", new BlockItem(HamstersBlocks.BLUE_HAMSTER_BOWL, new FabricItemSettings())); - public static final BlockItem BLUE_HAMSTER_BOTTLE = (BlockItem) register("blue_hamster_bottle", new BlockItem(HamstersBlocks.BLUE_HAMSTER_BOTTLE, new FabricItemSettings())); - public static final Item HAMSTER_BALL = register("hamster_ball", new HamsterBallItem(new FabricItemSettings().stacksTo(1))); + // RED, ORANGE, YELLOW, LIME, GREEN, CYAN, BLUE, LIGHT BLUE, PINK, MAGENTA, PURPLE, WHITE, LIGHT GRAY, GRAY, BLACK, BROWN + + public static final Item CAGE_PANEL = register("cage_panel", new BlockItem(HamstersBlocks.CAGE_PANEL, new FabricItemSettings())); + public static final Item RED_CAGE_PANEL = register("red_cage_panel", new BlockItem(HamstersBlocks.RED_CAGE_PANEL, new FabricItemSettings())); + public static final Item ORANGE_CAGE_PANEL = register("orange_cage_panel", new BlockItem(HamstersBlocks.ORANGE_CAGE_PANEL, new FabricItemSettings())); + public static final Item YELLOW_CAGE_PANEL = register("yellow_cage_panel", new BlockItem(HamstersBlocks.YELLOW_CAGE_PANEL, new FabricItemSettings())); + public static final Item LIME_CAGE_PANEL = register("lime_cage_panel", new BlockItem(HamstersBlocks.LIME_CAGE_PANEL, new FabricItemSettings())); + public static final Item GREEN_CAGE_PANEL = register("green_cage_panel", new BlockItem(HamstersBlocks.GREEN_CAGE_PANEL, new FabricItemSettings())); + public static final Item CYAN_CAGE_PANEL = register("cyan_cage_panel", new BlockItem(HamstersBlocks.CYAN_CAGE_PANEL, new FabricItemSettings())); + public static final Item BLUE_CAGE_PANEL = register("blue_cage_panel", new BlockItem(HamstersBlocks.BLUE_CAGE_PANEL, new FabricItemSettings())); + public static final Item LIGHT_BLUE_CAGE_PANEL = register("light_blue_cage_panel", new BlockItem(HamstersBlocks.LIGHT_BLUE_CAGE_PANEL, new FabricItemSettings())); + public static final Item PINK_CAGE_PANEL = register("pink_cage_panel", new BlockItem(HamstersBlocks.PINK_CAGE_PANEL, new FabricItemSettings())); + public static final Item MAGENTA_CAGE_PANEL = register("magenta_cage_panel", new BlockItem(HamstersBlocks.MAGENTA_CAGE_PANEL, new FabricItemSettings())); + public static final Item PURPLE_CAGE_PANEL = register("purple_cage_panel", new BlockItem(HamstersBlocks.PURPLE_CAGE_PANEL, new FabricItemSettings())); + public static final Item WHITE_CAGE_PANEL = register("white_cage_panel", new BlockItem(HamstersBlocks.WHITE_CAGE_PANEL, new FabricItemSettings())); + public static final Item LIGHT_GRAY_CAGE_PANEL = register("light_gray_cage_panel", new BlockItem(HamstersBlocks.LIGHT_GRAY_CAGE_PANEL, new FabricItemSettings())); + public static final Item GRAY_CAGE_PANEL = register("gray_cage_panel", new BlockItem(HamstersBlocks.GRAY_CAGE_PANEL, new FabricItemSettings())); + public static final Item BLACK_CAGE_PANEL = register("black_cage_panel", new BlockItem(HamstersBlocks.BLACK_CAGE_PANEL, new FabricItemSettings())); + public static final Item BROWN_CAGE_PANEL = register("brown_cage_panel", new BlockItem(HamstersBlocks.BROWN_CAGE_PANEL, new FabricItemSettings())); + + public static final Item RED_HAMSTER_BALL = register("red_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item ORANGE_HAMSTER_BALL = register("orange_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item YELLOW_HAMSTER_BALL = register("yellow_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item LIME_HAMSTER_BALL = register("lime_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item GREEN_HAMSTER_BALL = register("green_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item CYAN_HAMSTER_BALL = register("cyan_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item BLUE_HAMSTER_BALL = register("blue_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item LIGHT_BLUE_HAMSTER_BALL = register("light_blue_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item PINK_HAMSTER_BALL = register("pink_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item MAGENTA_HAMSTER_BALL = register("magenta_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item PURPLE_HAMSTER_BALL = register("purple_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item WHITE_HAMSTER_BALL = register("white_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item LIGHT_GRAY_HAMSTER_BALL = register("light_gray_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item GRAY_HAMSTER_BALL = register("gray_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item BLACK_HAMSTER_BALL = register("black_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); + public static final Item BROWN_HAMSTER_BALL = register("brown_hamster_ball", new HamsterBallItem(ItemProperties.hamsterBallItem)); public static final BlockItem HAMSTER_WHEEL = (BlockItem) register("hamster_wheel", new HamsterWheelItem(HamstersBlocks.HAMSTER_WHEEL, new FabricItemSettings())); + public static final Item RED_HAMSTER_BOTTLE = register("red_hamster_bottle", new BlockItem(HamstersBlocks.RED_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item ORANGE_HAMSTER_BOTTLE = register("orange_hamster_bottle", new BlockItem(HamstersBlocks.ORANGE_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item YELLOW_HAMSTER_BOTTLE = register("yellow_hamster_bottle", new BlockItem(HamstersBlocks.YELLOW_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item LIME_HAMSTER_BOTTLE = register("lime_hamster_bottle", new BlockItem(HamstersBlocks.LIME_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item GREEN_HAMSTER_BOTTLE = register("green_hamster_bottle", new BlockItem(HamstersBlocks.GREEN_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item CYAN_HAMSTER_BOTTLE = register("cyan_hamster_bottle", new BlockItem(HamstersBlocks.CYAN_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item BLUE_HAMSTER_BOTTLE = register("blue_hamster_bottle", new BlockItem(HamstersBlocks.BLUE_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item LIGHT_BLUE_HAMSTER_BOTTLE = register("light_blue_hamster_bottle", new BlockItem(HamstersBlocks.LIGHT_BLUE_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item PINK_HAMSTER_BOTTLE = register("pink_hamster_bottle", new BlockItem(HamstersBlocks.PINK_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item MAGENTA_HAMSTER_BOTTLE = register("magenta_hamster_bottle", new BlockItem(HamstersBlocks.MAGENTA_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item PURPLE_HAMSTER_BOTTLE = register("purple_hamster_bottle", new BlockItem(HamstersBlocks.PURPLE_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item WHITE_HAMSTER_BOTTLE = register("white_hamster_bottle", new BlockItem(HamstersBlocks.WHITE_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item LIGHT_GRAY_HAMSTER_BOTTLE = register("light_gray_hamster_bottle", new BlockItem(HamstersBlocks.LIGHT_GRAY_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item GRAY_HAMSTER_BOTTLE = register("gray_hamster_bottle", new BlockItem(HamstersBlocks.GRAY_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item BLACK_HAMSTER_BOTTLE = register("black_hamster_bottle", new BlockItem(HamstersBlocks.BLACK_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + public static final Item BROWN_HAMSTER_BOTTLE = register("brown_hamster_bottle", new BlockItem(HamstersBlocks.BROWN_HAMSTER_BOTTLE, ItemProperties.hamsterBottleItem)); + + public static final Item RED_HAMSTER_BOWL = register("red_hamster_bowl", new BlockItem(HamstersBlocks.RED_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item ORANGE_HAMSTER_BOWL = register("orange_hamster_bowl", new BlockItem(HamstersBlocks.ORANGE_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item YELLOW_HAMSTER_BOWL = register("yellow_hamster_bowl", new BlockItem(HamstersBlocks.YELLOW_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item LIME_HAMSTER_BOWL = register("lime_hamster_bowl", new BlockItem(HamstersBlocks.LIME_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item GREEN_HAMSTER_BOWL = register("green_hamster_bowl", new BlockItem(HamstersBlocks.GREEN_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item CYAN_HAMSTER_BOWL = register("cyan_hamster_bowl", new BlockItem(HamstersBlocks.CYAN_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item BLUE_HAMSTER_BOWL = register("blue_hamster_bowl", new BlockItem(HamstersBlocks.BLUE_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item LIGHT_BLUE_HAMSTER_BOWL = register("light_blue_hamster_bowl", new BlockItem(HamstersBlocks.LIGHT_BLUE_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item PINK_HAMSTER_BOWL = register("pink_hamster_bowl", new BlockItem(HamstersBlocks.PINK_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item MAGENTA_HAMSTER_BOWL = register("magenta_hamster_bowl", new BlockItem(HamstersBlocks.MAGENTA_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item PURPLE_HAMSTER_BOWL = register("purple_hamster_bowl", new BlockItem(HamstersBlocks.PURPLE_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item WHITE_HAMSTER_BOWL = register("white_hamster_bowl", new BlockItem(HamstersBlocks.WHITE_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item LIGHT_GRAY_HAMSTER_BOWL = register("light_gray_hamster_bowl", new BlockItem(HamstersBlocks.LIGHT_GRAY_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item GRAY_HAMSTER_BOWL = register("gray_hamster_bowl", new BlockItem(HamstersBlocks.GRAY_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item BLACK_HAMSTER_BOWL = register("black_hamster_bowl", new BlockItem(HamstersBlocks.BLACK_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); + public static final Item BROWN_HAMSTER_BOWL = register("brown_hamster_bowl", new BlockItem(HamstersBlocks.BROWN_HAMSTER_BOWL, ItemProperties.hamsterBowlItem)); //public static Supplier registerCaughtMobItem(String name, EntityType entitySupplier, Supplier fluidSupplier, SoundEvent soundSupplier, int variantAmount) { // return registerItem(name, () -> new HamsterItem(entitySupplier, fluidSupplier.get(), soundSupplier, variantAmount, new Item.Properties().stacksTo(1))); diff --git a/src/main/java/com/starfish_studios/hamsters/registry/HamstersTags.java b/src/main/java/com/starfish_studios/hamsters/registry/HamstersTags.java index f33ac47..9b312ec 100644 --- a/src/main/java/com/starfish_studios/hamsters/registry/HamstersTags.java +++ b/src/main/java/com/starfish_studios/hamsters/registry/HamstersTags.java @@ -14,6 +14,8 @@ public interface HamstersTags { + TagKey CAGE_PANELS = TagKey.create(Registries.ITEM, new ResourceLocation(MOD_ID, "cage_panels")); + TagKey HAMSTER_WHEELS = TagKey.create(Registries.BLOCK, new ResourceLocation(MOD_ID, "hamster_wheels")); TagKey HAMSTER_BLOCKS = TagKey.create(Registries.BLOCK, new ResourceLocation(MOD_ID, "hamster_blocks")); diff --git a/src/main/resources/assets/hamsters/animations/scp_frank.rp_anim.json b/src/main/resources/assets/hamsters/animations/scp_frank.rp_anim.json new file mode 100644 index 0000000..09eb906 --- /dev/null +++ b/src/main/resources/assets/hamsters/animations/scp_frank.rp_anim.json @@ -0,0 +1,3481 @@ +{ + "format_version": "1.8.0", + "animations": { + "animation.frank.bite": { + "loop": true, + "animation_length": 0.7917, + "bones": { + "hip": { + "rotation": { + "0.0": [-20, -5, 0], + "0.125": [-18.39, 15.44, 6.35], + "0.2083": [-17.06, 29.06, 10.58], + "0.25": [-17.97, 31.59, 11.36], + "0.3333": [-21.06, 29.06, 10.58], + "0.375": [-24.19, 31.19, 11.24], + "0.4167": [-21.06, 29.06, 10.58], + "0.5": [25, -5, 0], + "0.625": [25, -5, 0], + "0.75": [-9.27, -5, 0], + "0.7917": [-20.61, -5, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.2083": [0.6, 2, 12], + "0.4167": [0.6, 2, 12], + "0.5": [0, 0, 0], + "0.625": [0, 0, 0], + "0.7917": [0, 0, 0] + } + }, + "neck": { + "rotation": { + "0.0": ["5+ Math.sin((query.anim_time - 0.24) * 180) * -1", 7.5, 0], + "0.0833": [5.17476, 1.97743, 4.02002], + "0.375": ["-24.0933+ Math.sin((query.anim_time - 0.24) * 180) * -1", 0.86236, 12.36652], + "0.7917": ["5+ Math.sin((query.anim_time - 0.24) * 180) * -1", 7.5, 0] + } + }, + "arm_shoulder_left": { + "rotation": ["51.8397 + Math.cos((query.anim_time - 0.06) * 180) * 3", -17.33786, -16.23565], + "position": [0, 2.75, 0] + }, + "arm_left_2": { + "rotation": { + "0.0": [-2.35753, "-Math.cos((query.anim_time - 0.1) * 180) * 5.9077", "-108.3825+ Math.sin((query.anim_time - 0.1) * 180) * -2"], + "0.7917": [-2.35753, "-Math.cos((query.anim_time - 0.1) * 180) * 5.9077", "-108.3825+ Math.sin((query.anim_time - 0.1) * 180) * -2"] + } + }, + "hand_left": { + "rotation": [-27.5, -37.5, -15], + "position": [1.75, -1.5, 1.5] + }, + "arm_shoulder_right": { + "rotation": ["51.8397 + Math.sin((query.anim_time - 0.06) * 180) * 3", 17.33786, 16.23565], + "position": [0, 2.75, 0] + }, + "arm_right_2": { + "rotation": [-5.46465, "35.1939+Math.sin((query.anim_time - 0.2) * 180) * 5.9077", "103.8964+ Math.cos((query.anim_time - 0.2) * 180) * -2"] + }, + "hand_right": { + "rotation": [-32.5, 2.5, 30], + "position": [-1.75, -1.5, -2] + }, + "root": { + "position": [0, 0, 0] + }, + "chest": { + "rotation": { + "0.0": [22.95, 0, -5], + "0.125": [22.17, -12.2, -6.59], + "0.25": [14.6, -9.15, -6.08], + "0.375": [4.77, -3.62, -5.37], + "0.4167": [2.09, -2.44, -5.32], + "0.4583": [-10.92, -0.44, -7.09], + "0.5": [-4.11, 0.61, -8.99], + "0.5417": [2.71, 1.66, -10.88], + "0.625": [8.97, 1.11, -8.92], + "0.75": [18.41, 0.28, -5.98], + "0.7917": [21.6, 0, -5] + } + }, + "bone2": { + "rotation": [0, 0, 0] + }, + "jaw": { + "rotation": { + "0.0": ["-11.5 + Math.sin((query.anim_time - 0.0) * 180) * 5 + Math.sin((query.anim_time - 0.0) * 1440) * 1", 0, 0], + "0.2083": ["-11.5 + Math.sin((query.anim_time - 0.0) * 180) * 5 + Math.sin((query.anim_time - 0.0) * 1440) * 1", 0, 0], + "0.4583": [33.63, 0, 0], + "0.5": [1.71848, 3.73722, 3.32398], + "0.5417": ["-54.5 + Math.sin((query.anim_time - 0.0) * 180) * 5 + Math.sin((query.anim_time - 0.0) * 1440) * 1", 0, 0], + "0.7917": ["-11.5 + Math.sin((query.anim_time - 0.0) * 180) * 5 + Math.sin((query.anim_time - 0.0) * 1440) * 1", 0, 0] + } + }, + "arm_left_1": { + "rotation": { + "0.0": [-15, 10, 17.5], + "0.125": [-29.09, -16.97, 14.54], + "0.2083": [-39.02, -33.05, 9.49], + "0.25": [-42.14, -35.72, 4.52], + "0.375": [-48.75, -33.06, -15.27], + "0.4167": [-51.55, -31.59, -18.84], + "0.4583": [-71.59, -22.9, -9.36], + "0.5": [-62.74, -19.12, 3.31], + "0.625": [-20.5, -5.53, 46.35], + "0.75": [-14.92, 7.25, 24.67], + "0.7917": [-15, 10, 17.5] + } + }, + "index_left_1": { + "rotation": [15, 0, "80+ Math.sin((query.anim_time + 0.2) * 180) * 8"] + }, + "index_right_2": { + "rotation": [0, 0, 35] + }, + "pinky_right_1": { + "rotation": [-20, 27.5, "80+ Math.sin((query.anim_time + 0.1) * 180) * 8"] + }, + "pinky_right_2": { + "rotation": [0, 0, 32.5] + }, + "thumb_left_1": { + "rotation": [0, "27.5 + Math.sin((query.anim_time + 0.3) * 180) * 8", 0] + }, + "thumb_left_2": { + "rotation": [0, 0, -2.5] + }, + "arm_right_1": { + "rotation": { + "0.0": [12.5, 2.5, -17.5], + "0.125": [-1.56, 16.05, -14.7], + "0.2083": [-9.79, 24.04, -10.79], + "0.25": [-10.36, 25.09, -7.44], + "0.375": [-6.2, 22.73, 5.62], + "0.4167": [-7.69, 22.53, 8.54], + "0.4583": [-41.61, 28.37, 9.93], + "0.5": [-40.3, 25.51, 5.51], + "0.625": [-19.7, 11.27, -12.82], + "0.75": [6.47, 3.88, -17.08], + "0.7917": [12.5, 2.5, -17.5] + } + }, + "index_right_1": { + "rotation": [15, 0, "-80+ Math.sin((query.anim_time + 0.2) * 180) * 8"] + }, + "index_left_2": { + "rotation": [0, 0, -35] + }, + "pinky_left_1": { + "rotation": [-20, -27.5, "-80+ Math.sin((query.anim_time + 0.1) * 180) * 8"] + }, + "pinky_left_2": { + "rotation": [0, 0, -32.5] + }, + "thumb_right_1": { + "rotation": [0, "-27.5+ Math.sin((query.anim_time + 0.3) * 180) * 8", 0] + }, + "thumb_right_2": { + "rotation": [0, 0, -32.5] + }, + "small_arm_left_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 180) * -12", 0] + }, + "small_arm_left_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 180) * -12", 0] + }, + "small_arm_right_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 180) * -12", 0] + }, + "small_arm_right_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 180) * -12", 0] + }, + "leg_left_1": { + "rotation": { + "0.0": [0, -35, 0], + "0.2083": [-30.47047, -33.49427, 10.23348], + "0.4167": [-30.47047, -33.49427, 10.23348], + "0.5": [0, -35, 0] + }, + "position": { + "0.0": [0, 0, 1], + "0.2083": [0.5, 2.3, 10.6], + "0.4167": [0.5, 2.3, 10.6], + "0.5": [0, 0, 1] + } + }, + "leg_left_2": { + "rotation": { + "0.0": [6.5, 0, 0], + "0.2083": [-1.5, 0, 0], + "0.4167": [-1.5, 0, 0], + "0.5": [6.5, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.5": [0, 0, 0] + } + }, + "foot_left": { + "rotation": { + "0.0": [7.5, 0, 0], + "0.2083": [38.5135, -2.10258, -5.96034], + "0.4167": [38.5135, -2.10258, -5.96034], + "0.5": [7.5, 0, 0] + } + }, + "leg_right_1": { + "rotation": { + "0.0": [-42.5, 22.5, -10], + "0.0833": [-41.35783, 34.97835, -7.79796], + "0.2083": [0.22875, 78.71341, 7.93255], + "0.4167": [0.22875, 78.71341, 7.93255], + "0.5": [-42.5, 22.5, -10], + "0.625": [-42.5, 22.5, -10], + "0.7917": [-42.5, 22.5, -10] + }, + "position": { + "0.0": [0, 0, -1], + "0.0833": [0, 2.1, 6.2], + "0.2083": [0, 4, 17], + "0.4167": [0, 4, 17], + "0.5": [0, 0, -1], + "0.625": [0, 0, -1], + "0.7917": [0, 0, -1] + } + }, + "leg_right_2": { + "rotation": { + "0.0": [10, 0, 0], + "0.2083": [-27, 0, 0], + "0.4167": [-27, 0, 0], + "0.5": [10, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.5": [0, 0, 0] + } + }, + "foot_right": { + "rotation": { + "0.0": [37.5, 12.5, 0], + "0.2083": [62.5, 12.5, 0], + "0.4167": [62.5, 12.5, 0], + "0.5": [37.5, 12.5, 0] + } + }, + "headrot": { + "rotation": { + "0.0": ["-10+ Math.sin((query.anim_time - 0.2) * 180) * 4", -12.5, 0], + "0.0833": [-11.65569, -12.5, 0], + "0.2083": [-9.04409, -12.5, 0], + "0.5": ["-23+Math.sin((query.anim_time - 0.2) * 180) * 4", -12.5, 0], + "0.7917": ["-10+ Math.sin((query.anim_time - 0.2) * 180) * 4", -12.5, 0] + }, + "scale": { + "0.4167": [1, 1, 1], + "0.4583": [1, 1.35, 1], + "0.5": [1, 1, 1] + } + } + }, + "sound_effects": { + "0.25": { + "effect": "frank.attackBite" + } + } + }, + "animation.frank.walk": { + "loop": true, + "animation_length": 2, + "bones": { + "root": { + "rotation": [0, "Math.cos((query.anim_time - 0.0) * 180) * 2", 0], + "position": { + "0.0": [0, 0, 0], + "0.0417": [0, 0.08, 0], + "0.0833": [0, 0.2, 0], + "0.125": [0, 0.34, 0], + "0.1667": [0, 0.5, 0], + "0.2083": [0, 0.67, 0], + "0.25": [0, 0.84, 0], + "0.2917": [0, 1.01, 0], + "0.3333": [0, 1.17, 0], + "0.375": [0, 1.3, 0], + "0.4167": [0, 1.41, 0], + "0.4583": [0, 1.48, 0], + "0.5": [0, 1.5, 0], + "0.5417": [0, 1.47, 0], + "0.5833": [0, 1.39, 0], + "0.625": [0, 1.27, 0], + "0.6667": [0, 1.11, 0], + "0.7083": [0, 0.94, 0], + "0.75": [0, 0.75, 0], + "0.7917": [0, 0.56, 0], + "0.8333": [0, 0.39, 0], + "0.875": [0, 0.23, 0], + "0.9167": [0, 0.11, 0], + "0.9583": [0, 0.03, 0], + "1.0": [0, 0, 0], + "1.0417": [0, 0.03, 0], + "1.0833": [0, 0.11, 0], + "1.125": [0, 0.23, 0], + "1.1667": [0, 0.39, 0], + "1.2083": [0, 0.56, 0], + "1.25": [0, 0.75, 0], + "1.2917": [0, 0.94, 0], + "1.3333": [0, 1.11, 0], + "1.375": [0, 1.27, 0], + "1.4167": [0, 1.39, 0], + "1.4583": [0, 1.47, 0], + "1.5": [0, 1.5, 0], + "1.5417": [0, 1.48, 0], + "1.5833": [0, 1.41, 0], + "1.625": [0, 1.3, 0], + "1.6667": [0, 1.17, 0], + "1.7083": [0, 1.01, 0], + "1.75": [0, 0.84, 0], + "1.7917": [0, 0.67, 0], + "1.8333": [0, 0.5, 0], + "1.875": [0, 0.34, 0], + "1.9167": [0, 0.2, 0], + "1.9583": [0, 0.08, 0], + "2.0": [0, 0, 0] + } + }, + "hip": { + "rotation": [-20, 0, 0] + }, + "chest": { + "rotation": [22.5, "Math.sin((query.anim_time - 0.0) * 180) * 2", 0] + }, + "neck": { + "rotation": [5, "Math.sin((query.anim_time - 0.2) * 180) * 4", "Math.cos((query.anim_time - 0.0) * 180) * 2"] + }, + "bone2": { + "rotation": [0, 0, 0] + }, + "jaw": { + "rotation": ["-25 + Math.cos((query.anim_time - 0.0) * 720) * 1", 0, 0] + }, + "small_arm_left_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 180) * -12", 0] + }, + "small_arm_left_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 180) * -12", 0] + }, + "small_arm_right_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 180) * -12", 0] + }, + "small_arm_right_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 180) * -12", 0] + }, + "leg_left_1": { + "rotation": { + "0.0": [-42.5, -22.5, 10], + "0.0417": [-40.99, -22.8, 9.76], + "0.0833": [-39.11, -23.16, 9.47], + "0.125": [-36.88, -23.59, 9.13], + "0.1667": [-34.34, -24.07, 8.75], + "0.2083": [-31.54, -24.6, 8.32], + "0.25": [-28.52, -25.17, 7.87], + "0.2917": [-25.31, -25.77, 7.38], + "0.3333": [-21.95, -26.41, 6.87], + "0.375": [-18.48, -27.06, 6.35], + "0.4167": [-14.95, -27.73, 5.81], + "0.4583": [-11.38, -28.41, 5.27], + "0.5": [-7.82, -29.09, 4.73], + "0.5417": [-4.31, -29.77, 4.19], + "0.5833": [-0.89, -30.43, 3.65], + "0.625": [2.41, -31.08, 3.14], + "0.6667": [5.54, -31.7, 2.64], + "0.7083": [8.47, -32.29, 2.17], + "0.75": [11.16, -32.85, 1.72], + "0.7917": [13.57, -33.35, 1.32], + "0.8333": [15.65, -33.81, 0.95], + "0.875": [17.38, -34.21, 0.63], + "0.9167": [18.7, -34.55, 0.36], + "0.9583": [19.59, -34.81, 0.15], + "1.0": [20, -35, 0], + "1.0417": [19.39, -35.18, -0.14], + "1.0833": [17.1, -35.15, -0.12], + "1.125": [13.43, -34.93, 0.05], + "1.1667": [8.66, -34.57, 0.35], + "1.2083": [3.08, -34.07, 0.74], + "1.25": [-3.04, -33.49, 1.21], + "1.2917": [-9.39, -32.83, 1.74], + "1.3333": [-15.71, -32.13, 2.3], + "1.375": [-21.7, -31.43, 2.86], + "1.4167": [-27.07, -30.74, 3.41], + "1.4583": [-31.55, -30.1, 3.93], + "1.5": [-34.84, -29.53, 4.38], + "1.5417": [-37.15, -28.98, 4.82], + "1.5833": [-38.94, -28.37, 5.31], + "1.625": [-40.25, -27.72, 5.83], + "1.6667": [-41.17, -27.04, 6.37], + "1.7083": [-41.76, -26.36, 6.92], + "1.75": [-42.1, -25.67, 7.46], + "1.7917": [-42.24, -25.01, 7.99], + "1.8333": [-42.26, -24.38, 8.5], + "1.875": [-42.23, -23.8, 8.96], + "1.9167": [-42.21, -23.28, 9.37], + "1.9583": [-42.28, -22.84, 9.72], + "2.0": [-42.5, -22.5, 10] + }, + "position": { + "0.0": [0, 0, -1], + "0.0417": [0, 0, -0.98], + "0.0833": [0, 0, -0.95], + "0.125": [0, 0, -0.91], + "0.1667": [0, 0, -0.87], + "0.2083": [0, 0, -0.82], + "0.25": [0, 0, -0.77], + "0.2917": [0, 0, -0.72], + "0.3333": [0, 0, -0.67], + "0.375": [0, 0, -0.61], + "0.4167": [0, 0, -0.55], + "0.4583": [0, 0, -0.5], + "0.5": [0, 0, -0.44], + "0.5417": [0, 0, -0.38], + "0.5833": [0, 0, -0.33], + "0.625": [0, 0, -0.27], + "0.6667": [0, 0, -0.22], + "0.7083": [0, 0, -0.18], + "0.75": [0, 0, -0.13], + "0.7917": [0, 0, -0.09], + "0.8333": [0, 0, -0.06], + "0.875": [0, 0, -0.04], + "0.9167": [0, 0, -0.02], + "0.9583": [0, 0, 0], + "1.0": [0, 0, 0], + "1.0417": [0, 0, 0], + "1.0833": [0, 0, -0.02], + "1.125": [0, 0, -0.04], + "1.1667": [0, 0, -0.06], + "1.2083": [0, 0, -0.09], + "1.25": [0, 0, -0.13], + "1.2917": [0, 0, -0.18], + "1.3333": [0, 0, -0.22], + "1.375": [0, 0, -0.27], + "1.4167": [0, 0, -0.33], + "1.4583": [0, 0, -0.38], + "1.5": [0, 0, -0.44], + "1.5417": [0, 0, -0.5], + "1.5833": [0, 0, -0.55], + "1.625": [0, 0, -0.61], + "1.6667": [0, 0, -0.67], + "1.7083": [0, 0, -0.72], + "1.75": [0, 0, -0.77], + "1.7917": [0, 0, -0.82], + "1.8333": [0, 0, -0.87], + "1.875": [0, 0, -0.91], + "1.9167": [0, 0, -0.95], + "1.9583": [0, 0, -0.98], + "2.0": [0, 0, -1] + } + }, + "leg_left_2": { + "rotation": { + "0.0": [10, 0, 0], + "0.0417": [9.64, 0, 0], + "0.0833": [9.15, 0, 0], + "0.125": [8.54, 0, 0], + "0.1667": [7.81, 0, 0], + "0.2083": [7.01, 0, 0], + "0.25": [6.12, 0, 0], + "0.2917": [5.19, 0, 0], + "0.3333": [4.21, 0, 0], + "0.375": [3.21, 0, 0], + "0.4167": [2.2, 0, 0], + "0.4583": [1.2, 0, 0], + "0.5": [0.22, 0, 0], + "0.5417": [-0.71, 0, 0], + "0.5833": [-1.58, 0, 0], + "0.625": [-2.38, 0, 0], + "0.6667": [-3.09, 0, 0], + "0.7083": [-3.69, 0, 0], + "0.75": [-4.16, 0, 0], + "0.7917": [-4.5, 0, 0], + "0.8333": [-4.68, 0, 0], + "0.875": [-4.68, 0, 0], + "0.9167": [-4.5, 0, 0], + "0.9583": [-4.11, 0, 0], + "1.0": [-3.5, 0, 0], + "1.0417": [-1.37, 0, 0], + "1.0833": [1.95, 0, 0], + "1.125": [6.2, 0, 0], + "1.1667": [11.14, 0, 0], + "1.2083": [16.5, 0, 0], + "1.25": [22.04, 0, 0], + "1.2917": [27.51, 0, 0], + "1.3333": [32.65, 0, 0], + "1.375": [37.21, 0, 0], + "1.4167": [40.95, 0, 0], + "1.4583": [43.6, 0, 0], + "1.5": [44.91, 0, 0], + "1.5417": [44.81, 0, 0], + "1.5833": [43.51, 0, 0], + "1.625": [41.22, 0, 0], + "1.6667": [38.15, 0, 0], + "1.7083": [34.5, 0, 0], + "1.75": [30.48, 0, 0], + "1.7917": [26.29, 0, 0], + "1.8333": [22.14, 0, 0], + "1.875": [18.23, 0, 0], + "1.9167": [14.76, 0, 0], + "1.9583": [11.95, 0, 0], + "2.0": [10, 0, 0] + }, + "position": { + "1.0": [0, 0, 0], + "1.0417": [0, 0.03, 0.12], + "1.0833": [0, 0.07, 0.3], + "1.125": [0, 0.11, 0.51], + "1.1667": [0, 0.17, 0.75], + "1.2083": [0, 0.22, 1.01], + "1.25": [0, 0.28, 1.27], + "1.2917": [0, 0.34, 1.52], + "1.3333": [0, 0.39, 1.75], + "1.375": [0, 0.43, 1.95], + "1.4167": [0, 0.47, 2.11], + "1.4583": [0, 0.49, 2.21], + "1.5": [0, 0.5, 2.25], + "1.5417": [0, 0.49, 2.21], + "1.5833": [0, 0.47, 2.11], + "1.625": [0, 0.43, 1.95], + "1.6667": [0, 0.39, 1.75], + "1.7083": [0, 0.34, 1.52], + "1.75": [0, 0.28, 1.27], + "1.7917": [0, 0.22, 1.01], + "1.8333": [0, 0.17, 0.75], + "1.875": [0, 0.11, 0.51], + "1.9167": [0, 0.07, 0.3], + "1.9583": [0, 0.03, 0.12], + "2.0": [0, 0, 0] + } + }, + "foot_left": { + "rotation": { + "0.0": [37.5, -12.5, -5], + "0.0417": [36.57, -12.2, -4.88], + "0.0833": [35.38, -11.84, -4.74], + "0.125": [33.95, -11.41, -4.57], + "0.1667": [32.3, -10.93, -4.37], + "0.2083": [30.48, -10.4, -4.16], + "0.25": [28.5, -9.83, -3.93], + "0.2917": [26.4, -9.23, -3.69], + "0.3333": [24.21, -8.59, -3.44], + "0.375": [21.95, -7.94, -3.18], + "0.4167": [19.65, -7.27, -2.91], + "0.4583": [17.35, -6.59, -2.64], + "0.5": [15.07, -5.91, -2.36], + "0.5417": [12.84, -5.23, -2.09], + "0.5833": [10.69, -4.57, -1.83], + "0.625": [8.65, -3.92, -1.57], + "0.6667": [6.75, -3.3, -1.32], + "0.7083": [5.01, -2.71, -1.08], + "0.75": [3.48, -2.15, -0.86], + "0.7917": [2.16, -1.65, -0.66], + "0.8333": [1.1, -1.19, -0.48], + "0.875": [0.33, -0.79, -0.32], + "0.9167": [-0.13, -0.45, -0.18], + "0.9583": [-0.25, -0.19, -0.07], + "1.0": [0, 0, 0], + "1.0417": [1.79, 0.18, 0.07], + "1.0833": [5.17, 0.15, 0.06], + "1.125": [9.83, -0.07, -0.03], + "1.1667": [15.47, -0.43, -0.17], + "1.2083": [21.78, -0.93, -0.37], + "1.25": [28.45, -1.51, -0.61], + "1.2917": [35.18, -2.17, -0.87], + "1.3333": [41.65, -2.87, -1.15], + "1.375": [47.57, -3.57, -1.43], + "1.4167": [52.62, -4.26, -1.71], + "1.4583": [56.51, -4.9, -1.96], + "1.5": [58.91, -5.47, -2.19], + "1.5417": [59.87, -6.02, -2.41], + "1.5833": [59.74, -6.63, -2.65], + "1.625": [58.7, -7.28, -2.91], + "1.6667": [56.93, -7.96, -3.18], + "1.7083": [54.6, -8.64, -3.46], + "1.75": [51.89, -9.33, -3.73], + "1.7917": [48.97, -9.99, -4], + "1.8333": [46.03, -10.62, -4.25], + "1.875": [43.23, -11.2, -4.48], + "1.9167": [40.76, -11.72, -4.69], + "1.9583": [38.79, -12.16, -4.86], + "2.0": [37.5, -12.5, -5] + } + }, + "leg_right_1": { + "rotation": { + "0.0": [20, 35, 0], + "0.0417": [17.2, 34.74, -0.21], + "0.0833": [13.49, 34.42, -0.46], + "0.125": [9.04, 34.05, -0.76], + "0.1667": [4.03, 33.64, -1.09], + "0.2083": [-1.35, 33.19, -1.45], + "0.25": [-6.94, 32.7, -1.84], + "0.2917": [-12.56, 32.2, -2.25], + "0.3333": [-18.02, 31.67, -2.67], + "0.375": [-23.16, 31.14, -3.1], + "0.4167": [-27.8, 30.6, -3.53], + "0.4583": [-31.75, 30.06, -3.96], + "0.5": [-34.84, 29.53, -4.38], + "0.5417": [-37.35, 28.94, -4.85], + "0.5833": [-39.66, 28.22, -5.43], + "0.625": [-41.72, 27.42, -6.06], + "0.6667": [-43.49, 26.58, -6.74], + "0.7083": [-44.93, 25.72, -7.42], + "0.75": [-46, 24.89, -8.09], + "0.7917": [-46.67, 24.12, -8.7], + "0.8333": [-46.89, 23.45, -9.24], + "0.875": [-46.62, 22.92, -9.66], + "0.9167": [-45.83, 22.56, -9.95], + "0.9583": [-44.47, 22.41, -10.07], + "1.0": [-42.5, 22.5, -10], + "1.0417": [-41.19, 22.66, -9.87], + "1.0833": [-39.55, 22.9, -9.68], + "1.125": [-37.62, 23.21, -9.43], + "1.1667": [-35.42, 23.6, -9.12], + "1.2083": [-32.99, 24.04, -8.76], + "1.25": [-30.34, 24.54, -8.36], + "1.2917": [-27.52, 25.09, -7.92], + "1.3333": [-24.55, 25.68, -7.45], + "1.375": [-21.45, 26.31, -6.95], + "1.4167": [-18.27, 26.96, -6.43], + "1.4583": [-15.02, 27.63, -5.9], + "1.5": [-11.73, 28.31, -5.35], + "1.5417": [-8.44, 29, -4.8], + "1.5833": [-5.16, 29.69, -4.25], + "1.625": [-1.94, 30.37, -3.7], + "1.6667": [1.2, 31.04, -3.17], + "1.7083": [4.23, 31.68, -2.66], + "1.75": [7.13, 32.3, -2.16], + "1.7917": [9.85, 32.88, -1.7], + "1.8333": [12.39, 33.41, -1.27], + "1.875": [14.7, 33.9, -0.88], + "1.9167": [16.76, 34.33, -0.53], + "1.9583": [18.53, 34.7, -0.24], + "2.0": [20, 35, 0] + }, + "position": { + "0.0": [0, 0, 1], + "0.0417": [0, 0, 0.95], + "0.0833": [0, 0, 0.89], + "0.125": [0, 0, 0.82], + "0.1667": [0, 0, 0.74], + "0.2083": [0, 0, 0.65], + "0.25": [0, 0, 0.55], + "0.2917": [0, 0, 0.44], + "0.3333": [0, 0, 0.33], + "0.375": [0, 0, 0.22], + "0.4167": [0, 0, 0.11], + "0.4583": [0, 0, -0.01], + "0.5": [0, 0, -0.12], + "0.5417": [0, 0, -0.24], + "0.5833": [0, 0, -0.35], + "0.625": [0, 0, -0.46], + "0.6667": [0, 0, -0.56], + "0.7083": [0, 0, -0.65], + "0.75": [0, 0, -0.73], + "0.7917": [0, 0, -0.81], + "0.8333": [0, 0, -0.87], + "0.875": [0, 0, -0.93], + "0.9167": [0, 0, -0.97], + "0.9583": [0, 0, -0.99], + "1.0": [0, 0, -1], + "1.0417": [0, 0, -0.99], + "1.0833": [0, 0, -0.97], + "1.125": [0, 0, -0.93], + "1.1667": [0, 0, -0.88], + "1.2083": [0, 0, -0.81], + "1.25": [0, 0, -0.73], + "1.2917": [0, 0, -0.65], + "1.3333": [0, 0, -0.56], + "1.375": [0, 0, -0.46], + "1.4167": [0, 0, -0.35], + "1.4583": [0, 0, -0.24], + "1.5": [0, 0, -0.12], + "1.5417": [0, 0, -0.01], + "1.5833": [0, 0, 0.11], + "1.625": [0, 0, 0.22], + "1.6667": [0, 0, 0.33], + "1.7083": [0, 0, 0.44], + "1.75": [0, 0, 0.55], + "1.7917": [0, 0, 0.65], + "1.8333": [0, 0, 0.74], + "1.875": [0, 0, 0.82], + "1.9167": [0, 0, 0.89], + "1.9583": [0, 0, 0.95], + "2.0": [0, 0, 1] + } + }, + "leg_right_2": { + "rotation": { + "0.0": [-3.5, 0, 0], + "0.0417": [-0.9, 0, 0], + "0.0833": [2.73, 0, 0], + "0.125": [7.15, 0, 0], + "0.1667": [12.14, 0, 0], + "0.2083": [17.46, 0, 0], + "0.25": [22.89, 0, 0], + "0.2917": [28.19, 0, 0], + "0.3333": [33.15, 0, 0], + "0.375": [37.53, 0, 0], + "0.4167": [41.1, 0, 0], + "0.4583": [43.64, 0, 0], + "0.5": [44.91, 0, 0], + "0.5417": [44.85, 0, 0], + "0.5833": [43.67, 0, 0], + "0.625": [41.54, 0, 0], + "0.6667": [38.65, 0, 0], + "0.7083": [35.19, 0, 0], + "0.75": [31.32, 0, 0], + "0.7917": [27.25, 0, 0], + "0.8333": [23.14, 0, 0], + "0.875": [19.17, 0, 0], + "0.9167": [15.54, 0, 0], + "0.9583": [12.42, 0, 0], + "1.0": [10, 0, 0], + "1.0417": [9.02, 0, 0], + "1.0833": [8.08, 0, 0], + "1.125": [7.2, 0, 0], + "1.1667": [6.35, 0, 0], + "1.2083": [5.56, 0, 0], + "1.25": [4.8, 0, 0], + "1.2917": [4.09, 0, 0], + "1.3333": [3.41, 0, 0], + "1.375": [2.78, 0, 0], + "1.4167": [2.17, 0, 0], + "1.4583": [1.6, 0, 0], + "1.5": [1.07, 0, 0], + "1.5417": [0.56, 0, 0], + "1.5833": [0.08, 0, 0], + "1.625": [-0.37, 0, 0], + "1.6667": [-0.79, 0, 0], + "1.7083": [-1.2, 0, 0], + "1.75": [-1.58, 0, 0], + "1.7917": [-1.94, 0, 0], + "1.8333": [-2.28, 0, 0], + "1.875": [-2.6, 0, 0], + "1.9167": [-2.92, 0, 0], + "1.9583": [-3.21, 0, 0], + "2.0": [-3.5, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0417": [0, 0.03, 0.12], + "0.0833": [0, 0.07, 0.3], + "0.125": [0, 0.11, 0.51], + "0.1667": [0, 0.17, 0.75], + "0.2083": [0, 0.22, 1.01], + "0.25": [0, 0.28, 1.27], + "0.2917": [0, 0.34, 1.52], + "0.3333": [0, 0.39, 1.75], + "0.375": [0, 0.43, 1.95], + "0.4167": [0, 0.47, 2.11], + "0.4583": [0, 0.49, 2.21], + "0.5": [0, 0.5, 2.25], + "0.5417": [0, 0.49, 2.21], + "0.5833": [0, 0.47, 2.11], + "0.625": [0, 0.43, 1.95], + "0.6667": [0, 0.39, 1.75], + "0.7083": [0, 0.34, 1.52], + "0.75": [0, 0.28, 1.27], + "0.7917": [0, 0.22, 1.01], + "0.8333": [0, 0.17, 0.75], + "0.875": [0, 0.11, 0.51], + "0.9167": [0, 0.07, 0.3], + "0.9583": [0, 0.03, 0.12], + "1.0": [0, 0, 0], + "1.0417": [0, -0.01, -0.04], + "1.0833": [0, -0.02, -0.08], + "1.125": [0, -0.02, -0.11], + "1.1667": [0, -0.03, -0.13], + "1.2083": [0, -0.03, -0.15], + "1.25": [0, -0.04, -0.16], + "1.2917": [0, -0.04, -0.16], + "1.3333": [0, -0.04, -0.17], + "1.375": [0, -0.04, -0.16], + "1.4167": [0, -0.04, -0.16], + "1.4583": [0, -0.03, -0.15], + "1.5": [0, -0.03, -0.14], + "1.5417": [0, -0.03, -0.13], + "1.5833": [0, -0.03, -0.11], + "1.625": [0, -0.02, -0.1], + "1.6667": [0, -0.02, -0.08], + "1.7083": [0, -0.02, -0.07], + "1.75": [0, -0.01, -0.05], + "1.7917": [0, -0.01, -0.04], + "1.8333": [0, -0.01, -0.03], + "1.875": [0, 0, -0.02], + "1.9167": [0, 0, -0.01], + "1.9583": [0, 0, 0], + "2.0": [0, 0, 0] + } + }, + "foot_right": { + "rotation": { + "0.0": [0, 0, 0], + "0.0417": [3.1, 0.26, 0.1], + "0.0833": [7.34, 0.58, 0.23], + "0.125": [12.47, 0.95, 0.38], + "0.1667": [18.25, 1.36, 0.54], + "0.2083": [24.44, 1.81, 0.73], + "0.25": [30.79, 2.3, 0.92], + "0.2917": [37.08, 2.8, 1.12], + "0.3333": [43.04, 3.33, 1.33], + "0.375": [48.45, 3.86, 1.55], + "0.4167": [53.06, 4.4, 1.76], + "0.4583": [56.63, 4.94, 1.98], + "0.5": [58.91, 5.47, 2.19], + "0.5417": [59.99, 6.06, 2.43], + "0.5833": [60.18, 6.78, 2.71], + "0.625": [59.58, 7.58, 3.03], + "0.6667": [58.32, 8.42, 3.37], + "0.7083": [56.5, 9.28, 3.71], + "0.75": [54.23, 10.11, 4.04], + "0.7917": [51.63, 10.88, 4.35], + "0.8333": [48.8, 11.55, 4.62], + "0.875": [45.87, 12.08, 4.83], + "0.9167": [42.93, 12.44, 4.98], + "0.9583": [40.1, 12.59, 5.04], + "1.0": [37.5, 12.5, 5], + "1.0417": [36.21, 12.34, 4.94], + "1.0833": [34.82, 12.1, 4.84], + "1.125": [33.33, 11.79, 4.71], + "1.1667": [31.75, 11.4, 4.56], + "1.2083": [30.09, 10.96, 4.38], + "1.25": [28.38, 10.46, 4.18], + "1.2917": [26.61, 9.91, 3.96], + "1.3333": [24.8, 9.32, 3.73], + "1.375": [22.97, 8.69, 3.48], + "1.4167": [21.12, 8.04, 3.22], + "1.4583": [19.26, 7.37, 2.95], + "1.5": [17.41, 6.69, 2.68], + "1.5417": [15.58, 6, 2.4], + "1.5833": [13.78, 5.31, 2.12], + "1.625": [12.02, 4.63, 1.85], + "1.6667": [10.32, 3.96, 1.59], + "1.7083": [8.68, 3.32, 1.33], + "1.75": [7.12, 2.7, 1.08], + "1.7917": [5.64, 2.12, 0.85], + "1.8333": [4.27, 1.59, 0.63], + "1.875": [3, 1.1, 0.44], + "1.9167": [1.86, 0.67, 0.27], + "1.9583": [0.86, 0.3, 0.12], + "2.0": [0, 0, 0] + } + }, + "arm_shoulder_left": { + "rotation": ["40 + Math.sin((query.anim_time - 0.0) * 180) * -5", 0, 0] + }, + "arm_left_1": { + "rotation": [0, 0, 17.5] + }, + "arm_left_2": { + "rotation": [7.5, -37.5, "-90 + Math.sin((query.anim_time - 0.3) * 180) * 5"] + }, + "hand_left": { + "rotation": [-17.5, -22.5, 2.5], + "position": [1.75, -1.5, -2] + }, + "index_left_1": { + "rotation": [15, 0, "40+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "index_right_2": { + "rotation": [0, 0, 35] + }, + "pinky_right_1": { + "rotation": [-20, 27.5, "22.5 + Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "pinky_right_2": { + "rotation": [0, 0, 32.5] + }, + "thumb_left_1": { + "rotation": [0, 37.5, 0] + }, + "thumb_left_2": { + "rotation": [0, 0, "35+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "arm_shoulder_right": { + "rotation": ["40 + Math.sin((query.anim_time - 0.0) * 180) * -5", 0, 0] + }, + "arm_right_1": { + "rotation": [0, 0, -17.5] + }, + "arm_right_2": { + "rotation": [7.5, 37.5, "90+ Math.sin((query.anim_time - 0.3) * 180) * 5"] + }, + "hand_right": { + "rotation": [-17.5, 22.5, -2.5], + "position": [-1.75, -1.5, -2] + }, + "index_right_1": { + "rotation": [15, 0, "-40+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "index_left_2": { + "rotation": [0, 0, -35] + }, + "pinky_left_1": { + "rotation": [-20, -27.5, "-22.5+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "pinky_left_2": { + "rotation": [0, 0, -32.5] + }, + "thumb_right_1": { + "rotation": [0, -37.5, 0] + }, + "thumb_right_2": { + "rotation": [0, 0, "-35+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "headrot": { + "rotation": [-10, "Math.sin((query.anim_time - 0.1) * 180) * -3", 0] + } + }, + "sound_effects": { + "0.0": { + "effect": "frank.footstep" + }, + "1.0": { + "effect": "frank.footstep" + } + } + }, + "animation.frank.run": { + "loop": true, + "animation_length": 1, + "bones": { + "root": { + "rotation": [0, "Math.cos((query.anim_time - 0.0) * 360) * 5", 0], + "position": { + "0.0": [0, 0, 0], + "0.0417": [0, 0.2, 0], + "0.0833": [0, 0.5, 0], + "0.125": [0, 0.84, 0], + "0.1667": [0, 1.17, 0], + "0.2083": [0, 1.41, 0], + "0.25": [0, 1.5, 0], + "0.2917": [0, 1.39, 0], + "0.3333": [0, 1.11, 0], + "0.375": [0, 0.75, 0], + "0.4167": [0, 0.39, 0], + "0.4583": [0, 0.11, 0], + "0.5": [0, 0, 0], + "0.5417": [0, 0.11, 0], + "0.5833": [0, 0.39, 0], + "0.625": [0, 0.75, 0], + "0.6667": [0, 1.11, 0], + "0.7083": [0, 1.39, 0], + "0.75": [0, 1.5, 0], + "0.7917": [0, 1.41, 0], + "0.8333": [0, 1.17, 0], + "0.875": [0, 0.84, 0], + "0.9167": [0, 0.5, 0], + "0.9583": [0, 0.2, 0], + "1.0": [0, 0, 0] + } + }, + "hip": { + "rotation": [-7.50152, -0.0019, 0.08722] + }, + "chest": { + "rotation": [20, "Math.cos((query.anim_time - 0.0) * 360) * 6", 0] + }, + "neck": { + "rotation": [2.5, "Math.sin((query.anim_time - 0.2) * 360) * 4", "Math.cos((query.anim_time - 0.0) * 360) * 5"] + }, + "bone2": { + "rotation": [0, 0, 0] + }, + "jaw": { + "rotation": ["11 + Math.sin((query.anim_time - 0.0) * 360) * 5 + Math.sin((query.anim_time - 0.0) * 2880) * 1", 0, 0] + }, + "small_arm_left_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 360) * -12", 0] + }, + "small_arm_left_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 360) * -12", 0] + }, + "small_arm_right_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 360) * -12", 0] + }, + "small_arm_right_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 360) * -12", 0] + }, + "leg_left_1": { + "rotation": { + "0.0": [-42.5, -22.5, 10], + "0.0417": [-39.11, -23.16, 9.47], + "0.0833": [-34.34, -24.07, 8.75], + "0.125": [-28.52, -25.17, 7.87], + "0.1667": [-21.95, -26.41, 6.87], + "0.2083": [-14.95, -27.73, 5.81], + "0.25": [-7.82, -29.09, 4.73], + "0.2917": [-0.89, -30.43, 3.65], + "0.3333": [5.54, -31.7, 2.64], + "0.375": [11.16, -32.85, 1.72], + "0.4167": [15.65, -33.81, 0.95], + "0.4583": [18.7, -34.55, 0.36], + "0.5": [20, -35, 0], + "0.5417": [17.1, -35.15, -0.12], + "0.5833": [8.66, -34.57, 0.35], + "0.625": [-3.03, -33.49, 1.21], + "0.6667": [-15.71, -32.13, 2.3], + "0.7083": [-27.07, -30.74, 3.41], + "0.75": [-34.84, -29.53, 4.38], + "0.7917": [-38.94, -28.37, 5.31], + "0.8333": [-41.17, -27.04, 6.37], + "0.875": [-42.1, -25.67, 7.46], + "0.9167": [-42.26, -24.38, 8.5], + "0.9583": [-42.21, -23.28, 9.37], + "1.0": [-42.5, -22.5, 10] + }, + "position": { + "0.0": [0, 0, -1], + "0.0417": [0, -0.01, -0.95], + "0.0833": [0, -0.02, -0.88], + "0.125": [0, -0.04, -0.79], + "0.1667": [0, -0.06, -0.7], + "0.2083": [0, -0.09, -0.6], + "0.25": [0, -0.11, -0.49], + "0.2917": [0, -0.12, -0.39], + "0.3333": [0, -0.13, -0.29], + "0.375": [0, -0.12, -0.19], + "0.4167": [0, -0.1, -0.11], + "0.4583": [0, -0.06, -0.05], + "0.5": [0, 0, 0], + "0.5417": [0, 0.23, 0.05], + "0.5833": [0, 0.58, 0.07], + "0.625": [0, 0.98, 0.06], + "0.6667": [0, 1.36, 0.02], + "0.7083": [0, 1.64, -0.04], + "0.75": [0, 1.75, -0.12], + "0.7917": [0, 1.64, -0.23], + "0.8333": [0, 1.36, -0.39], + "0.875": [0, 0.98, -0.57], + "0.9167": [0, 0.58, -0.74], + "0.9583": [0, 0.23, -0.9], + "1.0": [0, 0, -1] + } + }, + "leg_left_2": { + "rotation": { + "0.0": [10, 0, 0], + "0.0417": [9.15, 0, 0], + "0.0833": [7.81, 0, 0], + "0.125": [6.12, 0, 0], + "0.1667": [4.21, 0, 0], + "0.2083": [2.2, 0, 0], + "0.25": [0.22, 0, 0], + "0.2917": [-1.58, 0, 0], + "0.3333": [-3.09, 0, 0], + "0.375": [-4.16, 0, 0], + "0.4167": [-4.68, 0, 0], + "0.4583": [-4.5, 0, 0], + "0.5": [-3.5, 0, 0], + "0.5417": [1.95, 0, 0], + "0.5833": [11.14, 0, 0], + "0.625": [22.04, 0, 0], + "0.6667": [32.65, 0, 0], + "0.7083": [40.95, 0, 0], + "0.75": [44.91, 0, 0], + "0.7917": [43.51, 0, 0], + "0.8333": [38.15, 0, 0], + "0.875": [30.48, 0, 0], + "0.9167": [22.14, 0, 0], + "0.9583": [14.76, 0, 0], + "1.0": [10, 0, 0] + }, + "position": { + "0.5": [0, 0, 0], + "0.5417": [0, 0.07, 0.3], + "0.5833": [0, 0.17, 0.75], + "0.625": [0, 0.28, 1.27], + "0.6667": [0, 0.39, 1.75], + "0.7083": [0, 0.47, 2.11], + "0.75": [0, 0.5, 2.25], + "0.7917": [0, 0.47, 2.11], + "0.8333": [0, 0.39, 1.75], + "0.875": [0, 0.28, 1.27], + "0.9167": [0, 0.17, 0.75], + "0.9583": [0, 0.07, 0.3], + "1.0": [0, 0, 0] + } + }, + "foot_left": { + "rotation": { + "0.0": [37.5, -12.5, -5], + "0.0417": [35.38, -11.84, -4.74], + "0.0833": [32.3, -10.93, -4.37], + "0.125": [28.5, -9.83, -3.93], + "0.1667": [24.21, -8.59, -3.44], + "0.2083": [19.65, -7.27, -2.91], + "0.25": [15.07, -5.91, -2.36], + "0.2917": [10.69, -4.57, -1.83], + "0.3333": [6.75, -3.3, -1.32], + "0.375": [3.48, -2.15, -0.86], + "0.4167": [1.1, -1.19, -0.48], + "0.4583": [-0.13, -0.45, -0.18], + "0.5": [0, 0, 0], + "0.5417": [5.17, 0.15, 0.06], + "0.5833": [15.47, -0.43, -0.17], + "0.625": [28.45, -1.51, -0.61], + "0.6667": [41.65, -2.87, -1.15], + "0.7083": [52.62, -4.26, -1.71], + "0.75": [58.91, -5.47, -2.19], + "0.7917": [59.74, -6.63, -2.65], + "0.8333": [56.93, -7.96, -3.18], + "0.875": [51.89, -9.33, -3.73], + "0.9167": [46.03, -10.62, -4.25], + "0.9583": [40.76, -11.72, -4.69], + "1.0": [37.5, -12.5, -5] + } + }, + "leg_right_1": { + "rotation": { + "0.0": [47.5, 35, 0], + "0.0417": [39.22, 34.22, -0.63], + "0.0833": [27.29, 33.12, -1.5], + "0.125": [13.4, 31.83, -2.54], + "0.1667": [-0.76, 30.46, -3.63], + "0.2083": [-13.5, 29.13, -4.69], + "0.25": [-23.12, 27.97, -5.62], + "0.2917": [-29.99, 26.84, -6.53], + "0.3333": [-35.53, 25.61, -7.51], + "0.375": [-39.65, 24.43, -8.46], + "0.4167": [-42.25, 23.42, -9.26], + "0.4583": [-43.23, 22.74, -9.81], + "0.5": [-42.5, 22.5, -10], + "0.5417": [-39.55, 22.82, -9.75], + "0.5833": [-34.34, 23.6, -9.12], + "0.625": [-27.52, 24.7, -8.24], + "0.6667": [-19.71, 25.97, -7.22], + "0.7083": [-11.57, 27.25, -6.2], + "0.75": [-3.71, 28.41, -5.27], + "0.7917": [4.7, 29.55, -4.36], + "0.8333": [14.34, 30.8, -3.36], + "0.875": [24.32, 32.07, -2.34], + "0.9167": [33.76, 33.27, -1.39], + "0.9583": [41.78, 34.28, -0.58], + "1.0": [47.5, 35, 0] + }, + "position": { + "0.0": [0, 0, 1], + "0.0417": [0, 0.23, 0.88], + "0.0833": [0, 0.58, 0.7], + "0.125": [0, 0.98, 0.5], + "0.1667": [0, 1.36, 0.28], + "0.2083": [0, 1.64, 0.07], + "0.25": [0, 1.75, -0.12], + "0.2917": [0, 1.64, -0.31], + "0.3333": [0, 1.36, -0.54], + "0.375": [0, 0.98, -0.75], + "0.4167": [0, 0.58, -0.93], + "0.4583": [0, 0.23, -1.02], + "0.5": [0, 0, -1], + "0.5417": [0, -0.06, -0.93], + "0.5833": [0, -0.1, -0.81], + "0.625": [0, -0.12, -0.66], + "0.6667": [0, -0.13, -0.47], + "0.7083": [0, -0.12, -0.27], + "0.75": [0, -0.11, -0.06], + "0.7917": [0, -0.09, 0.16], + "0.8333": [0, -0.06, 0.37], + "0.875": [0, -0.04, 0.57], + "0.9167": [0, -0.02, 0.75], + "0.9583": [0, -0.01, 0.89], + "1.0": [0, 0, 1] + } + }, + "leg_right_2": { + "rotation": { + "0.0": [-28.5, 0, 0], + "0.0417": [-19.16, 0, 0], + "0.0833": [-5.21, 0, 0], + "0.125": [10.81, 0, 0], + "0.1667": [26.33, 0, 0], + "0.2083": [38.8, 0, 0], + "0.25": [45.66, 0, 0], + "0.2917": [45.76, 0, 0], + "0.3333": [40.92, 0, 0], + "0.375": [33.03, 0, 0], + "0.4167": [23.98, 0, 0], + "0.4583": [15.67, 0, 0], + "0.5": [10, 0, 0], + "0.5417": [7.2, 0, 0], + "0.5833": [5.79, 0, 0], + "0.625": [5.13, 0, 0], + "0.6667": [4.55, 0, 0], + "0.7083": [3.4, 0, 0], + "0.75": [1.02, 0, 0], + "0.7917": [-3.05, 0, 0], + "0.8333": [-8.39, 0, 0], + "0.875": [-14.3, 0, 0], + "0.9167": [-20.09, 0, 0], + "0.9583": [-25.05, 0, 0], + "1.0": [-28.5, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0417": [0, 0, 0.33], + "0.0833": [0, 0, 0.83], + "0.125": [0, 0, 1.41], + "0.1667": [0, 0, 1.94], + "0.2083": [0, 0, 2.34], + "0.25": [0, 0, 2.5], + "0.2917": [0, 0, 2.34], + "0.3333": [0, 0, 1.94], + "0.375": [0, 0, 1.41], + "0.4167": [0, 0, 0.83], + "0.4583": [0, 0, 0.33], + "0.5": [0, 0, 0], + "0.5417": [0, 0, -0.09], + "0.5833": [0, 0, -0.14], + "0.625": [0, 0, -0.18], + "0.6667": [0, 0, -0.19], + "0.7083": [0, 0, -0.18], + "0.75": [0, 0, -0.16], + "0.7917": [0, 0, -0.13], + "0.8333": [0, 0, -0.09], + "0.875": [0, 0, -0.06], + "0.9167": [0, 0, -0.03], + "0.9583": [0, 0, -0.01], + "1.0": [0, 0, 0] + } + }, + "foot_right": { + "rotation": { + "0.0": [0, 0, 0], + "0.0417": [2.01, 0.66, 0.26], + "0.0833": [4.79, 1.57, 0.63], + "0.125": [8.18, 2.67, 1.07], + "0.1667": [12, 3.91, 1.56], + "0.2083": [16.08, 5.23, 2.09], + "0.25": [20.24, 6.59, 2.64], + "0.2917": [24.33, 7.93, 3.17], + "0.3333": [28.16, 9.2, 3.68], + "0.375": [31.56, 10.35, 4.14], + "0.4167": [34.37, 11.31, 4.52], + "0.4583": [36.41, 12.05, 4.82], + "0.5": [37.5, 12.5, 5], + "0.5417": [36.95, 12.65, 5.06], + "0.5833": [33.7, 12.07, 4.83], + "0.625": [28.74, 10.99, 4.39], + "0.6667": [23.07, 9.63, 3.85], + "0.7083": [17.69, 8.24, 3.29], + "0.75": [13.59, 7.03, 2.81], + "0.7917": [10.57, 5.87, 2.35], + "0.8333": [7.79, 4.54, 1.82], + "0.875": [5.3, 3.17, 1.27], + "0.9167": [3.14, 1.88, 0.75], + "0.9583": [1.36, 0.78, 0.31], + "1.0": [0, 0, 0] + } + }, + "arm_shoulder_left": { + "rotation": ["65 + Math.sin((query.anim_time - 0.0) * 360) * -5", 0, 0] + }, + "arm_left_1": { + "rotation": [0, 0, 17.5] + }, + "arm_left_2": { + "rotation": [7.5, -50, "-105 + Math.sin((query.anim_time - 0.3) * 360) * 5"] + }, + "hand_left": { + "rotation": [-17.5, -22.5, -25], + "position": [1.75, -1.5, -2] + }, + "index_left_1": { + "rotation": [15, 0, "40+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "index_right_2": { + "rotation": [0, 0, 35] + }, + "pinky_right_1": { + "rotation": [-20, 27.5, "22.5 + Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "pinky_right_2": { + "rotation": [0, 0, 32.5] + }, + "thumb_left_1": { + "rotation": [0, 37.5, 0] + }, + "thumb_left_2": { + "rotation": [0, 0, "35+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "arm_shoulder_right": { + "rotation": ["65 + Math.sin((query.anim_time - 0.0) * 360) * -5", 0, 0] + }, + "arm_right_1": { + "rotation": [0, 0, -17.5] + }, + "arm_right_2": { + "rotation": [7.5, 50, "105+ Math.sin((query.anim_time - 0.3) * 360) * 5"] + }, + "hand_right": { + "rotation": [-17.5, 22.5, 25], + "position": [-1.75, -1.5, -2] + }, + "index_right_1": { + "rotation": [15, 0, "-40+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "index_left_2": { + "rotation": [0, 0, -35] + }, + "pinky_left_1": { + "rotation": [-20, -27.5, "-22.5+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "pinky_left_2": { + "rotation": [0, 0, -32.5] + }, + "thumb_right_1": { + "rotation": [0, -37.5, 0] + }, + "thumb_right_2": { + "rotation": [0, 0, "-35+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "headrot": { + "rotation": [-22.5, "Math.sin((query.anim_time - 0.1) * 360) * -1", "Math.cos((query.anim_time - 0.4) * 360) * -5"] + } + }, + "sound_effects": { + "0.0": { + "effect": "frank.footstep" + }, + "0.5": { + "effect": "frank.footstep" + } + } + }, + "animation.frank.run_slam": { + "loop": false, + "animation_length": 1, + "bones": { + "root": { + "rotation": [0, "Math.cos((query.anim_time - 0.0) * 360) * 5", 0], + "position": { + "0.0": [0, 0, 0], + "0.0417": [0, 0.2, 0], + "0.0833": [0, 0.5, 0], + "0.125": [0, 0.84, 0], + "0.1667": [0, 1.17, 0], + "0.2083": [0, 1.41, 0], + "0.25": [0, 1.5, 0], + "0.2917": [0.01, 1.39, 0.01], + "0.3333": [0.03, 1.11, -0.02], + "0.375": [0, 0.75, -0.06], + "0.4167": [-0.07, 0.39, 0.02], + "0.4583": [-0.04, 0.11, 0.06], + "0.5": [0, 0, 0], + "0.5417": [-0.33, 0.39, 0.33], + "0.5833": [-0.14, 1.11, 0.2], + "0.625": [0.87, 1.5, -0.92], + "0.6667": [0.74, 1.46, -0.49], + "0.7083": [-0.31, 1.34, 0.71], + "0.75": [-0.78, 1.17, 0.55], + "0.7917": [-0.22, 0.96, -0.39], + "0.8333": [0.37, 0.73, -0.42], + "0.875": [0.29, 0.5, 0.13], + "0.9167": [-0.03, 0.29, 0.19], + "0.9583": [-0.08, 0.12, -0.01], + "1.0": [0, 0, 0] + } + }, + "hip": { + "rotation": { + "0.0": [-7.5, 0, 0.09], + "0.0417": [-8.73, 0, 0.09], + "0.0833": [-10.72, 0, 0.09], + "0.125": [-13.05, 0, 0.09], + "0.1667": [-15.31, 0, 0.09], + "0.2083": [-17.08, 0, 0.09], + "0.25": [-17.95, 0, 0.09], + "0.2917": [-17.5, 0, 0.09], + "0.3333": [-14.77, 0, 0.09], + "0.375": [-10.09, 0, 0.09], + "0.4167": [-4.38, 0, 0.09], + "0.4583": [1.48, 0, 0.09], + "0.5": [6.57, 0, 0.09], + "0.5417": [10, 0, 0.09], + "0.5833": [12.04, 0, 0.09], + "0.625": [12.82, 0, 0.09], + "0.6667": [12.58, 0, 0.09], + "0.7083": [11.56, 0, 0.09], + "0.75": [10, 0, 0.09], + "0.7917": [7.89, 0, 0.09], + "0.8333": [4.81, 0, 0.09], + "0.875": [1.25, 0, 0.09], + "0.9167": [-2.32, 0, 0.09], + "0.9583": [-5.4, 0, 0.09], + "1.0": [-7.5, 0, 0.09] + } + }, + "chest": { + "rotation": { + "0.0833": [20, 5.2, 0], + "0.125": [19.53, 4.24, 0], + "0.1667": [18.86, 3, 0], + "0.2083": [18.08, 1.55, 0], + "0.25": [17.23, 0, 0], + "0.2917": [16.39, -1.55, 0], + "0.3333": [15.63, -3, 0], + "0.375": [15, -4.24, 0], + "0.4167": [14.32, -5.2, 0], + "0.4583": [13.61, -5.8, 0], + "0.5": [12.97, -6, 0], + "0.5417": [12.5, -5.8, 0], + "0.5833": [12.31, -5.2, 0], + "0.625": [12.5, -4.24, 0], + "0.6667": [12.94, -3, 0], + "0.7083": [13.64, -1.55, 0], + "0.75": [14.54, 0, 0], + "0.7917": [15.56, 1.55, 0], + "0.8333": [16.63, 3, 0], + "0.875": [17.69, 4.24, 0], + "0.9167": [18.65, 5.2, 0], + "0.9583": [19.44, 5.8, 0], + "1.0": [20, 6, 0] + } + }, + "neck": { + "rotation": { + "0.0833": [2.5, -2.68, 4.33], + "0.125": [1.8, -1.82, 3.54], + "0.1667": [0.83, -0.83, 2.5], + "0.2083": [-0.32, 0.21, 1.29], + "0.25": [-1.57, 1.24, 0], + "0.2917": [-2.82, 2.18, -1.29], + "0.3333": [-3.99, 2.97, -2.5], + "0.375": [-5, 3.56, -3.54], + "0.4167": [-6.18, 3.91, -4.33], + "0.4583": [-7.5, 3.99, -4.83], + "0.5": [-8.75, 3.8, -5], + "0.5417": [-9.72, 3.35, -4.83], + "0.5833": [-10.21, 2.68, -4.33], + "0.625": [-10, 1.82, -3.54], + "0.6667": [-9.31, 0.83, -2.5], + "0.7083": [-8.16, -0.21, -1.29], + "0.75": [-6.67, -1.24, 0], + "0.7917": [-4.96, -2.18, 1.29], + "0.8333": [-3.16, -2.97, 2.5], + "0.875": [-1.39, -3.56, 3.54], + "0.9167": [0.23, -3.91, 4.33], + "0.9583": [1.56, -3.99, 4.83], + "1.0": [2.5, -3.8, 5] + } + }, + "head": { + "rotation": { + "0.0": [-22.5, 0.59, 4.05], + "0.1667": [-22.5, -0.41, -0.52], + "0.2083": [-21.15, -0.63, -1.79], + "0.25": [-19.11, -0.81, -2.94], + "0.2917": [-16.71, -0.93, -3.89], + "0.3333": [-14.26, -0.99, -4.57], + "0.375": [-12.11, -0.99, -4.94], + "0.4167": [-10.58, -0.91, -4.97], + "0.4583": [-10, -0.78, -4.67], + "0.5": [-10.78, -0.59, -4.05], + "0.5417": [-12.78, -0.36, -3.15], + "0.5833": [-15.47, -0.1, -2.03], + "0.625": [-18.33, 0.16, -0.78], + "0.6667": [-20.85, 0.41, 0.52], + "0.7083": [-22.5, 0.63, 1.79], + "0.75": [-23.16, 0.81, 2.94], + "0.7917": [-23.41, 0.93, 3.89], + "0.8333": [-23.37, 0.99, 4.57], + "0.875": [-23.16, 0.99, 4.94], + "0.9167": [-22.86, 0.91, 4.97], + "0.9583": [-22.61, 0.78, 4.67], + "1.0": [-22.5, 0.59, 4.05] + } + }, + "bone2": { + "rotation": [0, 0, 0] + }, + "jaw": { + "rotation": { + "0.0": ["11 + Math.sin((query.anim_time - 0.0) * 360) * 5 + Math.sin((query.anim_time - 0.0) * 2880) * 1", 0, 0], + "0.3333": [-39.92564, -1.47497, -1.53982], + "0.5": [27.47302, 2.52357, -0.79223], + "0.875": ["11 + Math.sin((query.anim_time - 0.0) * 360) * 5 + Math.sin((query.anim_time - 0.0) * 2880) * 1", 0, 0] + } + }, + "small_arm_left_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 360) * -12", 0] + }, + "small_arm_left_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 360) * -12", 0] + }, + "small_arm_right_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 360) * -12", 0] + }, + "small_arm_right_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 360) * -12", 0] + }, + "leg_left_1": { + "rotation": { + "0.0": [-42.5, -22.5, 10], + "0.0417": [-39.11, -23.16, 9.47], + "0.0833": [-34.34, -24.07, 8.75], + "0.125": [-28.52, -25.17, 7.87], + "0.1667": [-21.95, -26.41, 6.87], + "0.2083": [-14.95, -27.73, 5.81], + "0.25": [-7.82, -29.09, 4.73], + "0.2917": [-0.89, -30.43, 3.65], + "0.3333": [5.54, -31.7, 2.64], + "0.375": [11.16, -32.85, 1.72], + "0.4167": [15.65, -33.81, 0.95], + "0.4583": [18.7, -34.55, 0.36], + "0.5": [20, -35, 0], + "0.5417": [17.1, -35.15, -0.12], + "0.5833": [8.66, -34.57, 0.35], + "0.625": [-3.03, -33.49, 1.21], + "0.6667": [-15.71, -32.13, 2.3], + "0.7083": [-27.07, -30.74, 3.41], + "0.75": [-34.84, -29.53, 4.38], + "0.7917": [-38.94, -28.37, 5.31], + "0.8333": [-41.17, -27.04, 6.37], + "0.875": [-42.1, -25.67, 7.46], + "0.9167": [-42.26, -24.38, 8.5], + "0.9583": [-42.21, -23.28, 9.37], + "1.0": [-42.5, -22.5, 10] + }, + "position": { + "0.0": [0, 0, -1], + "0.0417": [0, -0.01, -0.95], + "0.0833": [0, -0.02, -0.88], + "0.125": [0, -0.04, -0.79], + "0.1667": [0, -0.06, -0.7], + "0.2083": [0, -0.09, -0.6], + "0.25": [0, -0.11, -0.49], + "0.2917": [0, -0.12, -0.39], + "0.3333": [0, -0.13, -0.29], + "0.375": [0, -0.12, -0.19], + "0.4167": [0, -0.1, -0.11], + "0.4583": [0, -0.06, -0.05], + "0.5": [0, 0, 0], + "0.5417": [0, 0.23, 0.05], + "0.5833": [0, 0.58, 0.07], + "0.625": [0, 0.98, 0.06], + "0.6667": [0, 1.36, 0.02], + "0.7083": [0, 1.64, -0.04], + "0.75": [0, 1.75, -0.12], + "0.7917": [0, 1.64, -0.23], + "0.8333": [0, 1.36, -0.39], + "0.875": [0, 0.98, -0.57], + "0.9167": [0, 0.58, -0.74], + "0.9583": [0, 0.23, -0.9], + "1.0": [0, 0, -1] + } + }, + "leg_left_2": { + "rotation": { + "0.0": [10, 0, 0], + "0.0417": [9.15, 0, 0], + "0.0833": [7.81, 0, 0], + "0.125": [6.12, 0, 0], + "0.1667": [4.21, 0, 0], + "0.2083": [2.2, 0, 0], + "0.25": [0.22, 0, 0], + "0.2917": [-1.58, 0, 0], + "0.3333": [-3.09, 0, 0], + "0.375": [-4.16, 0, 0], + "0.4167": [-4.68, 0, 0], + "0.4583": [-4.5, 0, 0], + "0.5": [-3.5, 0, 0], + "0.5417": [1.95, 0, 0], + "0.5833": [11.14, 0, 0], + "0.625": [22.04, 0, 0], + "0.6667": [32.65, 0, 0], + "0.7083": [40.95, 0, 0], + "0.75": [44.91, 0, 0], + "0.7917": [43.51, 0, 0], + "0.8333": [38.15, 0, 0], + "0.875": [30.48, 0, 0], + "0.9167": [22.14, 0, 0], + "0.9583": [14.76, 0, 0], + "1.0": [10, 0, 0] + }, + "position": { + "0.5": [0, 0, 0], + "0.5417": [0, 0.07, 0.3], + "0.5833": [0, 0.17, 0.75], + "0.625": [0, 0.28, 1.27], + "0.6667": [0, 0.39, 1.75], + "0.7083": [0, 0.47, 2.11], + "0.75": [0, 0.5, 2.25], + "0.7917": [0, 0.47, 2.11], + "0.8333": [0, 0.39, 1.75], + "0.875": [0, 0.28, 1.27], + "0.9167": [0, 0.17, 0.75], + "0.9583": [0, 0.07, 0.3], + "1.0": [0, 0, 0] + } + }, + "foot_left": { + "rotation": { + "0.0": [37.5, -12.5, -5], + "0.0417": [35.38, -11.84, -4.74], + "0.0833": [32.3, -10.93, -4.37], + "0.125": [28.5, -9.83, -3.93], + "0.1667": [24.21, -8.59, -3.44], + "0.2083": [19.65, -7.27, -2.91], + "0.25": [15.07, -5.91, -2.36], + "0.2917": [10.69, -4.57, -1.83], + "0.3333": [6.75, -3.3, -1.32], + "0.375": [3.48, -2.15, -0.86], + "0.4167": [1.1, -1.19, -0.48], + "0.4583": [-0.13, -0.45, -0.18], + "0.5": [0, 0, 0], + "0.5417": [5.17, 0.15, 0.06], + "0.5833": [15.47, -0.43, -0.17], + "0.625": [28.45, -1.51, -0.61], + "0.6667": [41.65, -2.87, -1.15], + "0.7083": [52.62, -4.26, -1.71], + "0.75": [58.91, -5.47, -2.19], + "0.7917": [59.74, -6.63, -2.65], + "0.8333": [56.93, -7.96, -3.18], + "0.875": [51.89, -9.33, -3.73], + "0.9167": [46.03, -10.62, -4.25], + "0.9583": [40.76, -11.72, -4.69], + "1.0": [37.5, -12.5, -5] + } + }, + "leg_right_1": { + "rotation": { + "0.0": [47.5, 35, 0], + "0.0417": [39.22, 34.22, -0.63], + "0.0833": [27.29, 33.12, -1.5], + "0.125": [13.4, 31.83, -2.54], + "0.1667": [-0.76, 30.46, -3.63], + "0.2083": [-13.5, 29.13, -4.69], + "0.25": [-23.12, 27.97, -5.62], + "0.2917": [-29.99, 26.84, -6.53], + "0.3333": [-35.53, 25.61, -7.51], + "0.375": [-39.65, 24.43, -8.46], + "0.4167": [-42.25, 23.42, -9.26], + "0.4583": [-43.23, 22.74, -9.81], + "0.5": [-42.5, 22.5, -10], + "0.5417": [-39.55, 22.82, -9.75], + "0.5833": [-34.34, 23.6, -9.12], + "0.625": [-27.52, 24.7, -8.24], + "0.6667": [-19.71, 25.97, -7.22], + "0.7083": [-11.57, 27.25, -6.2], + "0.75": [-3.71, 28.41, -5.27], + "0.7917": [4.7, 29.55, -4.36], + "0.8333": [14.34, 30.8, -3.36], + "0.875": [24.32, 32.07, -2.34], + "0.9167": [33.76, 33.27, -1.39], + "0.9583": [41.78, 34.28, -0.58], + "1.0": [47.5, 35, 0] + }, + "position": { + "0.0": [0, 0, 1], + "0.0417": [0, 0, 0.89], + "0.0833": [0, 0, 0.74], + "0.125": [0, 0, 0.55], + "0.1667": [0, 0, 0.33], + "0.2083": [0, 0, 0.11], + "0.25": [0, 0, -0.12], + "0.2917": [0, 0, -0.35], + "0.3333": [0, 0, -0.56], + "0.375": [0, 0, -0.73], + "0.4167": [0, 0, -0.87], + "0.4583": [0, 0, -0.97], + "0.5": [0, 0, -1], + "0.5417": [0, 0, -0.97], + "0.5833": [0, 0, -0.88], + "0.625": [0, 0, -0.73], + "0.6667": [0, 0, -0.56], + "0.7083": [0, 0, -0.35], + "0.75": [0, 0, -0.13], + "0.7917": [0, 0, 0.11], + "0.8333": [0, 0, 0.33], + "0.875": [0, 0, 0.55], + "0.9167": [0, 0, 0.74], + "0.9583": [0, 0, 0.89], + "1.0": [0, 0, 1] + } + }, + "leg_right_2": { + "rotation": { + "0.0": [-28.5, 0, 0], + "0.0417": [-19.16, 0, 0], + "0.0833": [-5.21, 0, 0], + "0.125": [10.81, 0, 0], + "0.1667": [26.33, 0, 0], + "0.2083": [38.8, 0, 0], + "0.25": [45.66, 0, 0], + "0.2917": [45.76, 0, 0], + "0.3333": [40.92, 0, 0], + "0.375": [33.03, 0, 0], + "0.4167": [23.98, 0, 0], + "0.4583": [15.67, 0, 0], + "0.5": [10, 0, 0], + "0.5417": [7.2, 0, 0], + "0.5833": [5.79, 0, 0], + "0.625": [5.13, 0, 0], + "0.6667": [4.55, 0, 0], + "0.7083": [3.4, 0, 0], + "0.75": [1.02, 0, 0], + "0.7917": [-3.05, 0, 0], + "0.8333": [-8.39, 0, 0], + "0.875": [-14.3, 0, 0], + "0.9167": [-20.09, 0, 0], + "0.9583": [-25.05, 0, 0], + "1.0": [-28.5, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0417": [0, 0, 0.33], + "0.0833": [0, 0, 0.83], + "0.125": [0, 0, 1.41], + "0.1667": [0, 0, 1.94], + "0.2083": [0, 0, 2.34], + "0.25": [0, 0, 2.5], + "0.2917": [0, 0, 2.34], + "0.3333": [0, 0, 1.94], + "0.375": [0, 0, 1.41], + "0.4167": [0, 0, 0.83], + "0.4583": [0, 0, 0.33], + "0.5": [0, 0, 0], + "0.5417": [0, 0, -0.09], + "0.5833": [0, 0, -0.14], + "0.625": [0, 0, -0.18], + "0.6667": [0, 0, -0.19], + "0.7083": [0, 0, -0.18], + "0.75": [0, 0, -0.16], + "0.7917": [0, 0, -0.13], + "0.8333": [0, 0, -0.09], + "0.875": [0, 0, -0.06], + "0.9167": [0, 0, -0.03], + "0.9583": [0, 0, -0.01], + "1.0": [0, 0, 0] + } + }, + "foot_right": { + "rotation": { + "0.0": [0, 0, 0], + "0.0417": [2.01, 0.66, 0.26], + "0.0833": [4.79, 1.57, 0.63], + "0.125": [8.18, 2.67, 1.07], + "0.1667": [12, 3.91, 1.56], + "0.2083": [16.08, 5.23, 2.09], + "0.25": [20.24, 6.59, 2.64], + "0.2917": [24.33, 7.93, 3.17], + "0.3333": [28.16, 9.2, 3.68], + "0.375": [31.56, 10.35, 4.14], + "0.4167": [34.37, 11.31, 4.52], + "0.4583": [36.41, 12.05, 4.82], + "0.5": [37.5, 12.5, 5], + "0.5417": [36.95, 12.65, 5.06], + "0.5833": [33.7, 12.07, 4.83], + "0.625": [28.74, 10.99, 4.39], + "0.6667": [23.07, 9.63, 3.85], + "0.7083": [17.69, 8.24, 3.29], + "0.75": [13.59, 7.03, 2.81], + "0.7917": [10.57, 5.87, 2.35], + "0.8333": [7.79, 4.54, 1.82], + "0.875": [5.3, 3.17, 1.27], + "0.9167": [3.14, 1.88, 0.75], + "0.9583": [1.36, 0.78, 0.31], + "1.0": [0, 0, 0] + } + }, + "arm_shoulder_left": { + "rotation": { + "0.0833": [62.5, 0, 0], + "0.125": [47.89, -1.13, -0.26], + "0.1667": [27, -2.86, -0.66], + "0.2083": [2.9, -4.89, -1.13], + "0.25": [-21.46, -6.94, -1.61], + "0.2917": [-43.22, -8.72, -2.03], + "0.3333": [-59.5, -9.95, -2.34], + "0.375": [-67.35, -10.34, -2.47], + "0.4167": [-57.73, -8.59, -2.21], + "0.4583": [-29.38, -4.9, -1.54], + "0.5": [3.12, -0.89, -0.81], + "0.5417": [24.97, 1.82, -0.31], + "0.5833": [29.45, 2.47, -0.2], + "0.625": [30.43, 2.76, -0.16], + "0.6667": [29.11, 2.76, -0.17], + "0.7083": [26.68, 2.58, -0.22], + "0.75": [24.38, 2.31, -0.27], + "0.7917": [23.43, 2.02, -0.31], + "0.8333": [24.97, 1.82, -0.31], + "0.875": [33.82, 1.45, -0.25], + "0.9167": [46.24, 0.91, -0.15], + "0.9583": [57.9, 0.37, -0.06], + "1.0": [65, 0, 0] + }, + "position": { + "0.0833": [0, 0, 0], + "0.125": [0, 0.19, 0.15], + "0.1667": [0, 0.47, 0.4], + "0.2083": [0, 0.81, 0.68], + "0.25": [0, 1.15, 0.96], + "0.2917": [0, 1.45, 1.18], + "0.3333": [0, 1.67, 1.3], + "0.375": [0, 1.75, 1.25], + "0.4167": [0, 1.52, 0.68], + "0.4583": [0, 0.98, -0.3], + "0.5": [0, 0.4, -1.31], + "0.5417": [0, 0, -2], + "0.5833": [0, -0.09, -2.19], + "0.625": [0, -0.13, -2.3], + "0.6667": [0, -0.12, -2.33], + "0.7083": [0, -0.09, -2.31], + "0.75": [0, -0.05, -2.24], + "0.7917": [0, -0.02, -2.13], + "0.8333": [0, 0, -2], + "0.875": [0, 0, -1.59], + "0.9167": [0, 0, -1], + "0.9583": [0, 0, -0.41], + "1.0": [0, 0, 0] + } + }, + "arm_left_1": { + "rotation": { + "0.0833": [0, 0, 17.5], + "0.125": [0.07, 0.07, 17.46], + "0.1667": [0.23, 0.22, 17.37], + "0.2083": [0.41, 0.39, 17.27], + "0.25": [0.54, 0.52, 17.19], + "0.2917": [0.56, 0.55, 17.18], + "0.3333": [0.41, 0.39, 17.27], + "0.375": [0, 0, 17.5], + "0.4167": [-1.76, -1.7, 18.49], + "0.4583": [-4.36, -4.21, 19.96], + "0.5": [-6.72, -6.49, 21.28], + "0.5417": [-7.75, -7.49, 21.86], + "0.5833": [-7.39, -7.14, 21.66], + "0.625": [-6.44, -6.22, 21.13], + "0.6667": [-5.11, -4.93, 20.38], + "0.7083": [-3.59, -3.47, 19.52], + "0.75": [-2.1, -2.03, 18.68], + "0.7917": [-0.84, -0.81, 17.97], + "0.8333": [0, 0, 17.5], + "0.875": [0.54, 0.53, 17.19], + "0.9167": [0.48, 0.47, 17.23], + "0.9583": [0.18, 0.18, 17.4], + "1.0": [0, 0, 17.5] + } + }, + "arm_left_2": { + "rotation": { + "0.0833": [7.5, -50, -109.89], + "0.125": [7.6, -46.13, -103.88], + "0.1667": [7.74, -40.54, -95.12], + "0.2083": [7.9, -33.94, -84.97], + "0.25": [8.08, -26.99, -74.76], + "0.2917": [8.24, -20.38, -65.71], + "0.3333": [8.38, -14.8, -58.89], + "0.375": [8.48, -10.93, -55.24], + "0.4167": [8.55, -8.18, -56.55], + "0.4583": [8.54, -8.48, -63.65], + "0.5": [8.5, -10.01, -72.12], + "0.5417": [8.48, -10.93, -77.74], + "0.5833": [8.49, -10.58, -78.73], + "0.625": [8.51, -9.79, -78.72], + "0.6667": [8.53, -8.87, -78.08], + "0.7083": [8.55, -8.19, -77.21], + "0.75": [8.55, -8.08, -76.53], + "0.7917": [8.53, -8.87, -76.52], + "0.8333": [8.48, -10.93, -77.74], + "0.875": [8.28, -18.86, -83.74], + "0.9167": [7.99, -30.46, -93.04], + "0.9583": [7.7, -42.06, -102.81], + "1.0": [7.5, -50, -109.76] + } + }, + "hand_left": { + "rotation": { + "0.0833": [-17.5, -22.5, -25], + "0.125": [-16.72, -22.92, -28.12], + "0.1667": [-15.46, -23.7, -33.27], + "0.2083": [-13.98, -24.61, -39.29], + "0.25": [-12.55, -25.41, -45.04], + "0.2917": [-11.42, -25.87, -49.37], + "0.3333": [-10.86, -25.77, -51.13], + "0.375": [-11.14, -24.87, -49.17], + "0.4167": [-14.19, -20.64, -34.03], + "0.4583": [-19.35, -14.19, -9.22], + "0.5": [-24.72, -7.67, 16.34], + "0.5417": [-28.36, -3.22, 33.75], + "0.5833": [-29.26703, -3.40818, 36.60642], + "0.6667": [-29.83035, -5.25829, 36.67221], + "0.75": [-29.66, -1.18, 40.45], + "0.7917": [-29.08, -2.01, 37.55], + "0.8333": [-28.36, -3.22, 33.75], + "0.875": [-26.16, -7.13, 21.81], + "0.9167": [-22.93, -12.86, 4.37], + "0.9583": [-19.71, -18.58, -13.07], + "1.0": [-17.5, -22.5, -25] + }, + "position": { + "0.0833": [1.75, -1.5, -2], + "0.125": [1.75, -1.34, -1.8], + "0.1667": [1.75, -1.11, -1.52], + "0.2083": [1.75, -0.83, -1.18], + "0.25": [1.75, -0.55, -0.82], + "0.2917": [1.75, -0.29, -0.48], + "0.3333": [1.75, -0.1, -0.2], + "0.375": [1.75, 0, 0], + "0.4167": [1.75, -0.1, 0.14], + "0.4583": [1.75, -0.41, 0.12], + "0.5": [1.75, -0.76, 0.05], + "0.5417": [1.75, -1, 0], + "0.5833": [1.75, -1.05, 0.02], + "0.625": [1.75, -1.06, 0.06], + "0.6667": [1.75, -1.04, 0.1], + "0.7083": [1.75, -1.02, 0.14], + "0.75": [1.75, -0.99, 0.15], + "0.7917": [1.75, -0.98, 0.1], + "0.8333": [1.75, -1, 0], + "0.875": [1.75, -1.1, -0.41], + "0.9167": [1.75, -1.25, -1], + "0.9583": [1.75, -1.4, -1.59], + "1.0": [1.75, -1.5, -2] + } + }, + "index_left_1": { + "rotation": [15, 0, "40+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "index_right_2": { + "rotation": { + "0.0833": [0, 0, 35], + "0.125": [-0.26, 0.01, 35.78], + "0.1667": [-0.87, 0.03, 37.59], + "0.2083": [-1.56, 0.05, 39.66], + "0.25": [-2.09, 0.06, 41.22], + "0.2917": [-2.17, 0.06, 41.48], + "0.3333": [-1.56, 0.05, 39.66], + "0.375": [0, 0, 35], + "0.4167": [6.76, -0.2, 14.87], + "0.4583": [16.77, -0.49, -14.97], + "0.5": [25.86, -0.75, -42.04], + "0.5417": [29.82, -0.86, -53.84], + "0.5833": [29.24, -0.85, -52.11], + "0.625": [27.63, -0.8, -47.3], + "0.6667": [25.18, -0.73, -40.02], + "0.7083": [22.11, -0.64, -30.88], + "0.75": [18.62, -0.54, -20.47], + "0.7917": [14.9, -0.43, -9.39], + "0.8333": [11.16, -0.32, 1.76], + "0.875": [7.6, -0.22, 12.37], + "0.9167": [4.41, -0.13, 21.85], + "0.9583": [1.81, -0.05, 29.59], + "1.0": [0, 0, 35] + } + }, + "pinky_right_1": { + "rotation": [-20, 27.5, "22.5 + Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "pinky_right_2": { + "rotation": { + "0.0833": [0, 0, 32.5], + "0.125": [0.02, -0.18, 33.09], + "0.1667": [0.07, -0.59, 34.48], + "0.2083": [0.13, -1.07, 36.06], + "0.25": [0.18, -1.42, 37.24], + "0.2917": [0.19, -1.48, 37.44], + "0.3333": [0.13, -1.07, 36.06], + "0.375": [0, 0, 32.5], + "0.4167": [-0.58, 4.6, 17.15], + "0.4583": [-1.43, 11.42, -5.62], + "0.5": [-2.2, 17.61, -26.27], + "0.5417": [-2.54, 20.3, -35.27], + "0.5833": [-2.49, 19.91, -33.94], + "0.625": [-2.35, 18.81, -30.28], + "0.6667": [-2.15, 17.14, -24.73], + "0.7083": [-1.88, 15.05, -17.75], + "0.75": [-1.59, 12.68, -9.81], + "0.7917": [-1.27, 10.14, -1.36], + "0.8333": [-0.95, 7.6, 7.14], + "0.875": [-0.65, 5.17, 15.24], + "0.9167": [-0.38, 3, 22.47], + "0.9583": [-0.15, 1.24, 28.38], + "1.0": [0, 0, 32.5] + } + }, + "thumb_left_1": { + "rotation": { + "0.0833": [0, 37.5, 0], + "0.125": [1.99, 37.88, 2.03], + "0.1667": [6.65, 38.77, 6.76], + "0.2083": [11.97, 39.79, 12.17], + "0.25": [15.96, 40.56, 16.23], + "0.2917": [16.62, 40.68, 16.9], + "0.3333": [11.97, 39.79, 12.17], + "0.375": [0, 37.5, 0], + "0.4167": [-51.67, 27.6, -52.54], + "0.4583": [-128.28, 12.93, -130.44], + "0.5": [-197.77, -0.38, -201.09], + "0.5417": [-228.06, -6.18, -231.89], + "0.5833": [-223.6, -5.33, -227.36], + "0.625": [-211.27, -2.97, -214.81], + "0.6667": [-192.59, 0.61, -195.82], + "0.7083": [-169.12, 5.11, -171.96], + "0.75": [-142.39, 10.23, -144.78], + "0.7917": [-113.94, 15.67, -115.86], + "0.8333": [-85.33, 21.16, -86.76], + "0.875": [-58.09, 26.37, -59.06], + "0.9167": [-33.75, 31.03, -34.32], + "0.9583": [-13.88, 34.84, -14.11], + "1.0": [0, 37.5, 0] + } + }, + "thumb_left_2": { + "rotation": { + "0.0833": [0, 0, 38.46], + "0.125": [0.06, 0.2, 38.59], + "0.1667": [0.2, 0.66, 39.52], + "0.2083": [0.36, 1.18, 40.51], + "0.25": [0.48, 1.58, 40.9], + "0.2917": [0.5, 1.64, 40.03], + "0.3333": [0.36, 1.18, 37.32], + "0.375": [0, 0, 32.17], + "0.4167": [-1.57, -5.11, 13.22], + "0.4583": [-3.89, -12.69, -14.1], + "0.5": [-5.99, -19.57, -38.62], + "0.5417": [-6.91, -22.56, -49.29], + "0.5833": [-6.77, -22.12, -47.71], + "0.625": [-6.4, -20.9, -43.29], + "0.6667": [-5.83, -19.05, -36.49], + "0.7083": [-5.12, -16.73, -27.77], + "0.75": [-4.31, -14.09, -17.62], + "0.7917": [-3.45, -11.27, -6.59], + "0.8333": [-2.59, -8.44, 4.72], + "0.875": [-1.76, -5.75, 15.64], + "0.9167": [-1.02, -3.34, 25.48], + "0.9583": [-0.42, -1.37, 33.5], + "1.0": [0, 0, 39] + } + }, + "arm_shoulder_right": { + "rotation": { + "0.0": [65, 0, 0], + "0.0417": [49.91, 1.13, 0.26], + "0.0833": [28.39, 2.86, 0.66], + "0.125": [3.67, 4.89, 1.13], + "0.1667": [-21.18, 6.94, 1.61], + "0.2083": [-43.22, 8.72, 2.03], + "0.25": [-59.57, 9.95, 2.34], + "0.2917": [-67.35, 10.34, 2.47], + "0.3333": [-57.6, 8.59, 2.21], + "0.375": [-29.24, 4.9, 1.54], + "0.4167": [3.18, 0.89, 0.81], + "0.4583": [24.97, -1.82, 0.31], + "0.5": [29.47, -2.47, 0.2], + "0.5417": [30.5, -2.76, 0.16], + "0.5833": [29.2, -2.76, 0.17], + "0.625": [26.77, -2.58, 0.22], + "0.6667": [24.43, -2.31, 0.27], + "0.7083": [23.43, -2.02, 0.31], + "0.75": [24.97, -1.82, 0.31], + "0.7917": [30.37, -1.6, 0.27], + "0.8333": [38.12, -1.28, 0.22], + "0.875": [46.75, -0.91, 0.15], + "0.9167": [54.9, -0.54, 0.09], + "0.9583": [61.32, -0.22, 0.04], + "1.0": [65, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0417": [0, 0.19, 0.15], + "0.0833": [0, 0.47, 0.4], + "0.125": [0, 0.81, 0.68], + "0.1667": [0, 1.15, 0.96], + "0.2083": [0, 1.45, 1.18], + "0.25": [0, 1.67, 1.3], + "0.2917": [0, 1.75, 1.25], + "0.3333": [0, 1.52, 0.68], + "0.375": [0, 0.98, -0.3], + "0.4167": [0, 0.4, -1.31], + "0.4583": [0, 0, -2], + "0.5": [0, -0.09, -2.19], + "0.5417": [0, -0.13, -2.3], + "0.5833": [0, -0.12, -2.33], + "0.625": [0, -0.09, -2.31], + "0.6667": [0, -0.05, -2.24], + "0.7083": [0, -0.02, -2.13], + "0.75": [0, 0, -2], + "0.7917": [0, 0, -1.76], + "0.8333": [0, 0, -1.41], + "0.875": [0, 0, -1], + "0.9167": [0, 0, -0.59], + "0.9583": [0, 0, -0.24], + "1.0": [0, 0, 0] + } + }, + "arm_right_1": { + "rotation": { + "0.0": [0, 0, -17.5], + "0.0417": [0, 0, -17.5], + "0.0833": [0, 0, -17.5], + "0.125": [0, 0, -17.5], + "0.1667": [0, 0, -17.5], + "0.2083": [0, 0, -17.5], + "0.25": [0, 0, -17.5], + "0.2917": [0, 0, -17.5], + "0.3333": [0, 0, -17.5], + "0.375": [0, 0, -17.5], + "0.4167": [0, 0, -17.5], + "0.4583": [0, 0, -17.5], + "0.5": [0, 0, -17.5], + "0.5417": [0, 0, -17.5], + "0.5833": [0, 0, -17.5], + "0.625": [0, 0, -17.5], + "0.6667": [0, 0, -17.5], + "0.7083": [0, 0, -17.5], + "0.75": [0, 0, -17.5], + "0.7917": [0, 0, -17.5], + "0.8333": [0, 0, -17.5], + "0.875": [0, 0, -17.5], + "0.9167": [0, 0, -17.5], + "0.9583": [0, 0, -17.5], + "1.0": [0, 0, -17.5] + } + }, + "arm_right_2": { + "rotation": { + "0.0": [7.5, 50, 100.24], + "0.0417": [7.6, 46.13, 95.37], + "0.0833": [7.74, 40.54, 88.6], + "0.125": [7.9, 33.94, 80.74], + "0.1667": [8.08, 26.99, 72.6], + "0.2083": [8.24, 20.38, 64.99], + "0.25": [8.38, 14.8, 58.84], + "0.2917": [8.48, 10.93, 55.24], + "0.3333": [8.55, 8.18, 56.24], + "0.375": [8.54, 8.48, 63.24], + "0.4167": [8.5, 10.01, 71.93], + "0.4583": [8.48, 10.93, 77.74], + "0.5": [8.49, 10.58, 78.64], + "0.5417": [6.09462, 12.38329, 85.88043], + "0.6667": [8.55, 8.08, 76.14], + "0.7083": [8.53, 8.87, 76.37], + "0.75": [8.48, 10.93, 77.74], + "0.7917": [8.28, 18.86, 83.33], + "0.8333": [7.99, 30.46, 90.85], + "0.875": [7.7, 42.06, 97.65], + "0.9167": [7.5, 50, 101.65] + } + }, + "hand_right": { + "rotation": { + "0.0": [-17.5, 22.5, 25], + "0.0417": [-16.72, 22.92, 28.12], + "0.0833": [-15.46, 23.7, 33.27], + "0.125": [-13.98, 24.61, 39.29], + "0.1667": [-12.55, 25.41, 45.04], + "0.2083": [-11.42, 25.87, 49.37], + "0.25": [-10.86, 25.77, 51.13], + "0.2917": [-11.14, 24.87, 49.17], + "0.3333": [-14.19, 20.64, 34.03], + "0.375": [-19.35, 14.19, 9.22], + "0.4167": [-24.72, 7.67, -16.34], + "0.4583": [-28.36, 3.22, -33.75], + "0.5": [-28.67063, 7.87025, -30.54724], + "0.6667": [-29.66, 1.18, -40.45], + "0.7083": [-29.08, 2.01, -37.55], + "0.75": [-28.36, 3.22, -33.75], + "0.7917": [-27.06, 5.54, -26.68], + "0.8333": [-25.14, 8.93, -16.34], + "0.875": [-22.93, 12.86, -4.37], + "0.9167": [-20.72, 16.79, 7.59], + "0.9583": [-18.81, 20.18, 17.93], + "1.0": [-17.5, 22.5, 25] + }, + "position": { + "0.0": [-1.75, -1.5, -2], + "0.0417": [-1.75, -1.34, -1.8], + "0.0833": [-1.75, -1.11, -1.52], + "0.125": [-1.75, -0.83, -1.18], + "0.1667": [-1.75, -0.55, -0.82], + "0.2083": [-1.75, -0.29, -0.48], + "0.25": [-1.75, -0.1, -0.2], + "0.2917": [-1.75, 0, 0], + "0.3333": [-1.75, -0.1, 0.14], + "0.375": [-1.75, -0.41, 0.13], + "0.4167": [-1.75, -0.76, 0.05], + "0.4583": [-1.75, -1, 0], + "0.5": [-1.75, -1.05, 0.02], + "0.5417": [-1.75, -1.06, 0.06], + "0.5833": [-1.75, -1.04, 0.1], + "0.625": [-1.75, -1.02, 0.14], + "0.6667": [-1.75, -0.99, 0.15], + "0.7083": [-1.75, -0.98, 0.1], + "0.75": [-1.75, -1, 0], + "0.7917": [-1.75, -1.06, -0.24], + "0.8333": [-1.75, -1.15, -0.59], + "0.875": [-1.75, -1.25, -1], + "0.9167": [-1.75, -1.35, -1.41], + "0.9583": [-1.75, -1.44, -1.76], + "1.0": [-1.75, -1.5, -2] + } + }, + "index_right_1": { + "rotation": [15, 0, "-40+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "index_left_2": { + "rotation": { + "0.0": [0, 0, -35], + "0.0417": [-0.26, -0.01, -35.78], + "0.0833": [-0.87, -0.03, -37.59], + "0.125": [-1.56, -0.05, -39.66], + "0.1667": [-2.09, -0.06, -41.22], + "0.2083": [-2.17, -0.06, -41.48], + "0.25": [-1.56, -0.05, -39.66], + "0.2917": [0, 0, -35], + "0.3333": [6.76, 0.2, -14.87], + "0.375": [16.77, 0.49, 14.97], + "0.4167": [25.86, 0.75, 42.04], + "0.4583": [29.82, 0.86, 53.84], + "0.5": [29.4, 0.85, 52.59], + "0.5417": [28.22, 0.82, 49.07], + "0.5833": [26.4, 0.76, 43.65], + "0.625": [24.07, 0.7, 36.7], + "0.6667": [21.34, 0.62, 28.57], + "0.7083": [18.34, 0.53, 19.63], + "0.75": [15.19, 0.44, 10.25], + "0.7917": [12.01, 0.35, 0.79], + "0.8333": [8.93, 0.26, -8.39], + "0.875": [6.07, 0.18, -16.92], + "0.9167": [3.54, 0.1, -24.45], + "0.9583": [1.48, 0.04, -30.59], + "1.0": [0, 0, -35] + } + }, + "pinky_left_1": { + "rotation": [-20, -27.5, "-22.5+ Math.cos((query.anim_time - 0.0) * 360) * 4"] + }, + "pinky_left_2": { + "rotation": { + "0.0": [0, 0, -32.5], + "0.0417": [0.02, 0.18, -33.09], + "0.0833": [0.07, 0.59, -34.48], + "0.125": [0.13, 1.07, -36.06], + "0.1667": [0.18, 1.42, -37.24], + "0.2083": [0.19, 1.48, -37.44], + "0.25": [0.13, 1.07, -36.06], + "0.2917": [0, 0, -32.5], + "0.3333": [-0.58, -4.6, -17.15], + "0.375": [-1.43, -11.42, 5.62], + "0.4167": [-2.2, -17.61, 26.27], + "0.4583": [-2.54, -20.3, 35.27], + "0.5": [-2.5, -20.02, 34.31], + "0.5417": [-2.4, -19.21, 31.63], + "0.5833": [-2.25, -17.97, 27.49], + "0.625": [-2.05, -16.38, 22.19], + "0.6667": [-1.82, -14.53, 15.99], + "0.7083": [-1.56, -12.48, 9.17], + "0.75": [-1.29, -10.34, 2.02], + "0.7917": [-1.02, -8.18, -5.2], + "0.8333": [-0.76, -6.08, -12.2], + "0.875": [-0.52, -4.13, -18.71], + "0.9167": [-0.3, -2.41, -24.45], + "0.9583": [-0.13, -1.01, -29.14], + "1.0": [0, 0, -32.5] + } + }, + "thumb_right_1": { + "rotation": { + "0.0": [0, -37.5, 0], + "0.0417": [1.99, -37.88, -2.03], + "0.0833": [6.65, -38.77, -6.76], + "0.125": [11.97, -39.79, -12.17], + "0.1667": [15.96, -40.56, -16.23], + "0.2083": [16.62, -40.68, -16.9], + "0.25": [11.97, -39.79, -12.17], + "0.2917": [0, -37.5, 0], + "0.3333": [-51.67, -27.6, 52.54], + "0.375": [-128.28, -12.93, 130.44], + "0.4167": [-197.77, 0.38, 201.09], + "0.4583": [-228.06, 6.18, 231.89], + "0.5": [-224.84, 5.57, 228.62], + "0.5417": [-215.81, 3.84, 219.43], + "0.5833": [-201.9, 1.17, 205.29], + "0.625": [-184.05, -2.25, 187.14], + "0.6667": [-163.18, -6.24, 165.92], + "0.7083": [-140.24, -10.64, 142.59], + "0.75": [-116.16, -15.25, 118.11], + "0.7917": [-91.87, -19.9, 93.41], + "0.8333": [-68.3, -24.42, 69.45], + "0.875": [-46.4, -28.61, 47.18], + "0.9167": [-27.09, -32.31, 27.55], + "0.9583": [-11.31, -35.33, 11.5], + "1.0": [0, -37.5, 0] + } + }, + "thumb_right_2": { + "rotation": { + "0.0": [0, 0, -31], + "0.0417": [0.06, -0.2, -31.84], + "0.0833": [0.2, -0.66, -33.89], + "0.125": [0.36, -1.18, -36.45], + "0.1667": [0.48, -1.58, -38.76], + "0.2083": [0.5, -1.64, -40.03], + "0.25": [0.36, -1.18, -39.42], + "0.2917": [0, 0, -36.04], + "0.3333": [-1.57, 5.11, -17.45], + "0.375": [-3.89, 12.69, 11.17], + "0.4167": [-5.99, 19.57, 37.63], + "0.4583": [-6.91, 22.56, 49.29], + "0.5": [-6.81, 22.24, 48.04], + "0.5417": [-6.54, 21.35, 44.55], + "0.5833": [-6.12, 19.97, 39.22], + "0.625": [-5.58, 18.21, 32.47], + "0.6667": [-4.94, 16.14, 24.74], + "0.7083": [-4.25, 13.87, 16.43], + "0.75": [-3.52, 11.49, 7.93], + "0.7917": [-2.78, 9.09, -0.43], + "0.8333": [-2.07, 6.76, -8.36], + "0.875": [-1.41, 4.59, -15.6], + "0.9167": [-0.82, 2.68, -21.93], + "0.9583": [-0.34, 1.12, -27.15], + "1.0": [0, 0, -31] + } + } + }, + "sound_effects": { + "0.0": { + "effect": "frank.footstep" + }, + "0.5": { + "effect": "frank.footstep" + } + } + }, + "animation.frank.idle": { + "loop": true, + "animation_length": 2, + "bones": { + "root": { + "position": [0, "-1 + Math.cos((query.anim_time - 0.0) * 180) * 1", 0] + }, + "hip": { + "rotation": ["-20 + Math.sin((query.anim_time - 0.0) * 180) * -1", -5, 0] + }, + "chest": { + "rotation": ["22.5+ Math.sin((query.anim_time - 0.15) * 180) * -1", 0, -5] + }, + "neck": { + "rotation": ["5+ Math.sin((query.anim_time - 0.24) * 180) * -1", 7.5, 0] + }, + "bone2": { + "rotation": [0, 0, 0] + }, + "jaw": { + "rotation": ["-11.5 + Math.sin((query.anim_time - 0.0) * 180) * 5 + Math.sin((query.anim_time - 0.0) * 1440) * 1", 0, 0] + }, + "small_arm_left_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 180) * -12", 0] + }, + "small_arm_left_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 180) * -12", 0] + }, + "small_arm_right_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 180) * -12", 0] + }, + "small_arm_right_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 180) * -12", 0] + }, + "leg_left_1": { + "rotation": { + "0.0": [0, -35, 0], + "0.0417": [0, -34.88, 0], + "0.0833": [0, -34.73, 0], + "0.125": [0, -34.55, 0], + "0.1667": [0, -34.34, 0], + "0.2083": [0, -34.11, 0], + "0.25": [0, -33.87, 0], + "0.2917": [0, -33.61, 0], + "0.3333": [0, -33.33, 0], + "0.375": [0, -33.05, 0], + "0.4167": [0, -32.76, 0], + "0.4583": [0, -32.48, 0], + "0.5": [0, -32.19, 0], + "0.5417": [0, -31.9, 0], + "0.5833": [0, -31.63, 0], + "0.625": [0, -31.36, 0], + "0.6667": [0, -31.11, 0], + "0.7083": [0, -30.88, 0], + "0.75": [0, -30.66, 0], + "0.7917": [0, -30.47, 0], + "0.8333": [0, -30.31, 0], + "0.875": [0, -30.18, 0], + "0.9167": [0, -30.08, 0], + "0.9583": [0, -30.02, 0], + "1.0": [0, -30, 0], + "1.0417": [0, -30.02, 0], + "1.0833": [0, -30.08, 0], + "1.125": [0, -30.18, 0], + "1.1667": [0, -30.31, 0], + "1.2083": [0, -30.47, 0], + "1.25": [0, -30.66, 0], + "1.2917": [0, -30.88, 0], + "1.3333": [0, -31.11, 0], + "1.375": [0, -31.36, 0], + "1.4167": [0, -31.63, 0], + "1.4583": [0, -31.9, 0], + "1.5": [0, -32.19, 0], + "1.5417": [0, -32.48, 0], + "1.5833": [0, -32.76, 0], + "1.625": [0, -33.05, 0], + "1.6667": [0, -33.33, 0], + "1.7083": [0, -33.61, 0], + "1.75": [0, -33.87, 0], + "1.7917": [0, -34.11, 0], + "1.8333": [0, -34.34, 0], + "1.875": [0, -34.55, 0], + "1.9167": [0, -34.73, 0], + "1.9583": [0, -34.88, 0], + "2.0": [0, -35, 0] + }, + "position": { + "0.0": [0, 0, 1], + "0.0417": [0.01, 0.01, 0.97], + "0.0833": [0.02, 0.02, 0.94], + "0.125": [0.04, 0.03, 0.9], + "0.1667": [0.05, 0.04, 0.85], + "0.2083": [0.07, 0.05, 0.8], + "0.25": [0.09, 0.07, 0.75], + "0.2917": [0.11, 0.08, 0.69], + "0.3333": [0.13, 0.1, 0.63], + "0.375": [0.16, 0.12, 0.57], + "0.4167": [0.18, 0.13, 0.51], + "0.4583": [0.2, 0.15, 0.44], + "0.5": [0.23, 0.17, 0.38], + "0.5417": [0.25, 0.19, 0.32], + "0.5833": [0.27, 0.2, 0.26], + "0.625": [0.29, 0.22, 0.2], + "0.6667": [0.31, 0.23, 0.14], + "0.7083": [0.33, 0.25, 0.09], + "0.75": [0.35, 0.26, 0.05], + "0.7917": [0.36, 0.27, 0], + "0.8333": [0.38, 0.28, -0.03], + "0.875": [0.39, 0.29, -0.06], + "0.9167": [0.39, 0.3, -0.08], + "0.9583": [0.4, 0.3, -0.1], + "1.0": [0.4, 0.3, -0.1], + "1.0417": [0.4, 0.3, -0.1], + "1.0833": [0.39, 0.3, -0.08], + "1.125": [0.39, 0.29, -0.06], + "1.1667": [0.38, 0.28, -0.03], + "1.2083": [0.36, 0.27, 0], + "1.25": [0.35, 0.26, 0.05], + "1.2917": [0.33, 0.25, 0.09], + "1.3333": [0.31, 0.23, 0.14], + "1.375": [0.29, 0.22, 0.2], + "1.4167": [0.27, 0.2, 0.26], + "1.4583": [0.25, 0.19, 0.32], + "1.5": [0.22, 0.17, 0.38], + "1.5417": [0.2, 0.15, 0.44], + "1.5833": [0.18, 0.13, 0.51], + "1.625": [0.16, 0.12, 0.57], + "1.6667": [0.13, 0.1, 0.63], + "1.7083": [0.11, 0.08, 0.69], + "1.75": [0.09, 0.07, 0.75], + "1.7917": [0.07, 0.05, 0.8], + "1.8333": [0.05, 0.04, 0.85], + "1.875": [0.04, 0.03, 0.9], + "1.9167": [0.02, 0.02, 0.94], + "1.9583": [0.01, 0.01, 0.97], + "2.0": [0, 0, 1] + } + }, + "leg_left_2": { + "rotation": { + "0.0": [6.5, 0, 0], + "0.0417": [6.68, 0, 0], + "0.0833": [6.91, 0, 0], + "0.125": [7.18, 0, 0], + "0.1667": [7.49, 0, 0], + "0.2083": [7.83, 0, 0], + "0.25": [8.2, 0, 0], + "0.2917": [8.59, 0, 0], + "0.3333": [9, 0, 0], + "0.375": [9.42, 0, 0], + "0.4167": [9.85, 0, 0], + "0.4583": [10.29, 0, 0], + "0.5": [10.72, 0, 0], + "0.5417": [11.14, 0, 0], + "0.5833": [11.56, 0, 0], + "0.625": [11.96, 0, 0], + "0.6667": [12.33, 0, 0], + "0.7083": [12.68, 0, 0], + "0.75": [13, 0, 0], + "0.7917": [13.29, 0, 0], + "0.8333": [13.53, 0, 0], + "0.875": [13.73, 0, 0], + "0.9167": [13.88, 0, 0], + "0.9583": [13.97, 0, 0], + "1.0": [14, 0, 0], + "1.0417": [13.97, 0, 0], + "1.0833": [13.88, 0, 0], + "1.125": [13.73, 0, 0], + "1.1667": [13.53, 0, 0], + "1.2083": [13.29, 0, 0], + "1.25": [13, 0, 0], + "1.2917": [12.68, 0, 0], + "1.3333": [12.33, 0, 0], + "1.375": [11.96, 0, 0], + "1.4167": [11.56, 0, 0], + "1.4583": [11.14, 0, 0], + "1.5": [10.72, 0, 0], + "1.5417": [10.29, 0, 0], + "1.5833": [9.85, 0, 0], + "1.625": [9.42, 0, 0], + "1.6667": [9, 0, 0], + "1.7083": [8.59, 0, 0], + "1.75": [8.2, 0, 0], + "1.7917": [7.83, 0, 0], + "1.8333": [7.49, 0, 0], + "1.875": [7.18, 0, 0], + "1.9167": [6.91, 0, 0], + "1.9583": [6.68, 0, 0], + "2.0": [6.5, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0417": [0, 0.01, 0.01], + "0.0833": [0, 0.02, 0.02], + "0.125": [0, 0.04, 0.03], + "0.1667": [0, 0.05, 0.04], + "0.2083": [0, 0.07, 0.05], + "0.25": [0, 0.09, 0.07], + "0.2917": [0, 0.11, 0.08], + "0.3333": [0, 0.13, 0.1], + "0.375": [0, 0.16, 0.12], + "0.4167": [0, 0.18, 0.13], + "0.4583": [0, 0.2, 0.15], + "0.5": [0, 0.23, 0.17], + "0.5417": [0, 0.25, 0.19], + "0.5833": [0, 0.27, 0.2], + "0.625": [0, 0.29, 0.22], + "0.6667": [0, 0.31, 0.23], + "0.7083": [0, 0.33, 0.25], + "0.75": [0, 0.35, 0.26], + "0.7917": [0, 0.36, 0.27], + "0.8333": [0, 0.38, 0.28], + "0.875": [0, 0.39, 0.29], + "0.9167": [0, 0.39, 0.3], + "0.9583": [0, 0.4, 0.3], + "1.0": [0, 0.4, 0.3], + "1.0417": [0, 0.4, 0.3], + "1.0833": [0, 0.39, 0.3], + "1.125": [0, 0.39, 0.29], + "1.1667": [0, 0.38, 0.28], + "1.2083": [0, 0.36, 0.27], + "1.25": [0, 0.35, 0.26], + "1.2917": [0, 0.33, 0.25], + "1.3333": [0, 0.31, 0.23], + "1.375": [0, 0.29, 0.22], + "1.4167": [0, 0.27, 0.2], + "1.4583": [0, 0.25, 0.19], + "1.5": [0, 0.22, 0.17], + "1.5417": [0, 0.2, 0.15], + "1.5833": [0, 0.18, 0.13], + "1.625": [0, 0.16, 0.12], + "1.6667": [0, 0.13, 0.1], + "1.7083": [0, 0.11, 0.08], + "1.75": [0, 0.09, 0.07], + "1.7917": [0, 0.07, 0.05], + "1.8333": [0, 0.05, 0.04], + "1.875": [0, 0.04, 0.03], + "1.9167": [0, 0.02, 0.02], + "1.9583": [0, 0.01, 0.01], + "2.0": [0, 0, 0] + } + }, + "foot_left": { + "rotation": { + "0.0": [7.5, 0, 0], + "0.0417": [7.38, 0, 0], + "0.0833": [7.23, 0, 0], + "0.125": [7.05, 0, 0], + "0.1667": [6.84, 0, 0], + "0.2083": [6.61, 0, 0], + "0.25": [6.37, 0, 0], + "0.2917": [6.11, 0, 0], + "0.3333": [5.83, 0, 0], + "0.375": [5.55, 0, 0], + "0.4167": [5.26, 0, 0], + "0.4583": [4.98, 0, 0], + "0.5": [4.69, 0, 0], + "0.5417": [4.4, 0, 0], + "0.5833": [4.13, 0, 0], + "0.625": [3.86, 0, 0], + "0.6667": [3.61, 0, 0], + "0.7083": [3.38, 0, 0], + "0.75": [3.16, 0, 0], + "0.7917": [2.97, 0, 0], + "0.8333": [2.81, 0, 0], + "0.875": [2.68, 0, 0], + "0.9167": [2.58, 0, 0], + "0.9583": [2.52, 0, 0], + "1.0": [2.5, 0, 0], + "1.0417": [2.52, 0, 0], + "1.0833": [2.58, 0, 0], + "1.125": [2.68, 0, 0], + "1.1667": [2.81, 0, 0], + "1.2083": [2.97, 0, 0], + "1.25": [3.16, 0, 0], + "1.2917": [3.38, 0, 0], + "1.3333": [3.61, 0, 0], + "1.375": [3.86, 0, 0], + "1.4167": [4.13, 0, 0], + "1.4583": [4.4, 0, 0], + "1.5": [4.69, 0, 0], + "1.5417": [4.98, 0, 0], + "1.5833": [5.26, 0, 0], + "1.625": [5.55, 0, 0], + "1.6667": [5.83, 0, 0], + "1.7083": [6.11, 0, 0], + "1.75": [6.37, 0, 0], + "1.7917": [6.61, 0, 0], + "1.8333": [6.84, 0, 0], + "1.875": [7.05, 0, 0], + "1.9167": [7.23, 0, 0], + "1.9583": [7.38, 0, 0], + "2.0": [7.5, 0, 0] + } + }, + "leg_right_1": { + "rotation": { + "0.0": [-42.5, 22.5, -10], + "0.0417": [-42.8, 22.5, -10], + "0.0833": [-43.18, 22.5, -10], + "0.125": [-43.64, 22.5, -10], + "0.1667": [-44.15, 22.5, -10], + "0.2083": [-44.72, 22.5, -10], + "0.25": [-45.33, 22.5, -10], + "0.2917": [-45.98, 22.5, -10], + "0.3333": [-46.67, 22.5, -10], + "0.375": [-47.37, 22.5, -10], + "0.4167": [-48.09, 22.5, -10], + "0.4583": [-48.81, 22.5, -10], + "0.5": [-49.53, 22.5, -10], + "0.5417": [-50.24, 22.5, -10], + "0.5833": [-50.93, 22.5, -10], + "0.625": [-51.59, 22.5, -10], + "0.6667": [-52.22, 22.5, -10], + "0.7083": [-52.81, 22.5, -10], + "0.75": [-53.34, 22.5, -10], + "0.7917": [-53.81, 22.5, -10], + "0.8333": [-54.22, 22.5, -10], + "0.875": [-54.55, 22.5, -10], + "0.9167": [-54.79, 22.5, -10], + "0.9583": [-54.95, 22.5, -10], + "1.0": [-55, 22.5, -10], + "1.0417": [-54.95, 22.5, -10], + "1.0833": [-54.79, 22.5, -10], + "1.125": [-54.55, 22.5, -10], + "1.1667": [-54.22, 22.5, -10], + "1.2083": [-53.81, 22.5, -10], + "1.25": [-53.34, 22.5, -10], + "1.2917": [-52.81, 22.5, -10], + "1.3333": [-52.22, 22.5, -10], + "1.375": [-51.59, 22.5, -10], + "1.4167": [-50.93, 22.5, -10], + "1.4583": [-50.24, 22.5, -10], + "1.5": [-49.53, 22.5, -10], + "1.5417": [-48.81, 22.5, -10], + "1.5833": [-48.09, 22.5, -10], + "1.625": [-47.37, 22.5, -10], + "1.6667": [-46.67, 22.5, -10], + "1.7083": [-45.98, 22.5, -10], + "1.75": [-45.33, 22.5, -10], + "1.7917": [-44.72, 22.5, -10], + "1.8333": [-44.15, 22.5, -10], + "1.875": [-43.64, 22.5, -10], + "1.9167": [-43.18, 22.5, -10], + "1.9583": [-42.8, 22.5, -10], + "2.0": [-42.5, 22.5, -10] + }, + "position": { + "0.0": [0, 0, -1], + "0.0417": [-0.01, 0.01, -1], + "0.0833": [-0.03, 0.03, -1], + "0.125": [-0.05, 0.05, -1], + "0.1667": [-0.07, 0.07, -1], + "0.2083": [-0.09, 0.09, -1], + "0.25": [-0.11, 0.11, -1], + "0.2917": [-0.14, 0.14, -1], + "0.3333": [-0.17, 0.17, -1], + "0.375": [-0.19, 0.19, -1], + "0.4167": [-0.22, 0.22, -1], + "0.4583": [-0.25, 0.25, -1], + "0.5": [-0.28, 0.28, -1], + "0.5417": [-0.31, 0.31, -1], + "0.5833": [-0.34, 0.34, -1], + "0.625": [-0.36, 0.36, -1], + "0.6667": [-0.39, 0.39, -1], + "0.7083": [-0.41, 0.41, -1], + "0.75": [-0.43, 0.43, -1], + "0.7917": [-0.45, 0.45, -1], + "0.8333": [-0.47, 0.47, -1], + "0.875": [-0.48, 0.48, -1], + "0.9167": [-0.49, 0.49, -1], + "0.9583": [-0.5, 0.5, -1], + "1.0": [-0.5, 0.5, -1], + "1.0417": [-0.5, 0.5, -1], + "1.0833": [-0.49, 0.49, -1], + "1.125": [-0.48, 0.48, -1], + "1.1667": [-0.47, 0.47, -1], + "1.2083": [-0.45, 0.45, -1], + "1.25": [-0.43, 0.43, -1], + "1.2917": [-0.41, 0.41, -1], + "1.3333": [-0.39, 0.39, -1], + "1.375": [-0.36, 0.36, -1], + "1.4167": [-0.34, 0.34, -1], + "1.4583": [-0.31, 0.31, -1], + "1.5": [-0.28, 0.28, -1], + "1.5417": [-0.25, 0.25, -1], + "1.5833": [-0.22, 0.22, -1], + "1.625": [-0.19, 0.19, -1], + "1.6667": [-0.17, 0.17, -1], + "1.7083": [-0.14, 0.14, -1], + "1.75": [-0.11, 0.11, -1], + "1.7917": [-0.09, 0.09, -1], + "1.8333": [-0.07, 0.07, -1], + "1.875": [-0.05, 0.05, -1], + "1.9167": [-0.03, 0.03, -1], + "1.9583": [-0.01, 0.01, -1], + "2.0": [0, 0, -1] + } + }, + "leg_right_2": { + "rotation": { + "0.0": [10, 0, 0], + "0.0417": [10.36, 0, 0], + "0.0833": [10.82, 0, 0], + "0.125": [11.36, 0, 0], + "0.1667": [11.98, 0, 0], + "0.2083": [12.66, 0, 0], + "0.25": [13.4, 0, 0], + "0.2917": [14.18, 0, 0], + "0.3333": [15, 0, 0], + "0.375": [15.84, 0, 0], + "0.4167": [16.71, 0, 0], + "0.4583": [17.57, 0, 0], + "0.5": [18.44, 0, 0], + "0.5417": [19.29, 0, 0], + "0.5833": [20.12, 0, 0], + "0.625": [20.91, 0, 0], + "0.6667": [21.67, 0, 0], + "0.7083": [22.37, 0, 0], + "0.75": [23.01, 0, 0], + "0.7917": [23.58, 0, 0], + "0.8333": [24.06, 0, 0], + "0.875": [24.46, 0, 0], + "0.9167": [24.75, 0, 0], + "0.9583": [24.94, 0, 0], + "1.0": [25, 0, 0], + "1.0417": [24.94, 0, 0], + "1.0833": [24.75, 0, 0], + "1.125": [24.46, 0, 0], + "1.1667": [24.06, 0, 0], + "1.2083": [23.58, 0, 0], + "1.25": [23.01, 0, 0], + "1.2917": [22.37, 0, 0], + "1.3333": [21.67, 0, 0], + "1.375": [20.91, 0, 0], + "1.4167": [20.12, 0, 0], + "1.4583": [19.29, 0, 0], + "1.5": [18.44, 0, 0], + "1.5417": [17.57, 0, 0], + "1.5833": [16.71, 0, 0], + "1.625": [15.84, 0, 0], + "1.6667": [15, 0, 0], + "1.7083": [14.18, 0, 0], + "1.75": [13.4, 0, 0], + "1.7917": [12.66, 0, 0], + "1.8333": [11.98, 0, 0], + "1.875": [11.36, 0, 0], + "1.9167": [10.82, 0, 0], + "1.9583": [10.36, 0, 0], + "2.0": [10, 0, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.0417": [0, 0, 0.02], + "0.0833": [0, 0, 0.05], + "0.125": [0, 0, 0.09], + "0.1667": [0, 0, 0.13], + "0.2083": [0, 0, 0.18], + "0.25": [0, 0, 0.23], + "0.2917": [0, 0, 0.28], + "0.3333": [0, 0, 0.33], + "0.375": [0, 0, 0.39], + "0.4167": [0, 0, 0.45], + "0.4583": [0, 0, 0.5], + "0.5": [0, 0, 0.56], + "0.5417": [0, 0, 0.62], + "0.5833": [0, 0, 0.67], + "0.625": [0, 0, 0.73], + "0.6667": [0, 0, 0.78], + "0.7083": [0, 0, 0.82], + "0.75": [0, 0, 0.87], + "0.7917": [0, 0, 0.91], + "0.8333": [0, 0, 0.94], + "0.875": [0, 0, 0.96], + "0.9167": [0, 0, 0.98], + "0.9583": [0, 0, 1], + "1.0": [0, 0, 1], + "1.0417": [0, 0, 1], + "1.0833": [0, 0, 0.98], + "1.125": [0, 0, 0.96], + "1.1667": [0, 0, 0.94], + "1.2083": [0, 0, 0.91], + "1.25": [0, 0, 0.87], + "1.2917": [0, 0, 0.82], + "1.3333": [0, 0, 0.78], + "1.375": [0, 0, 0.73], + "1.4167": [0, 0, 0.67], + "1.4583": [0, 0, 0.62], + "1.5": [0, 0, 0.56], + "1.5417": [0, 0, 0.5], + "1.5833": [0, 0, 0.45], + "1.625": [0, 0, 0.39], + "1.6667": [0, 0, 0.33], + "1.7083": [0, 0, 0.28], + "1.75": [0, 0, 0.23], + "1.7917": [0, 0, 0.18], + "1.8333": [0, 0, 0.13], + "1.875": [0, 0, 0.09], + "1.9167": [0, 0, 0.05], + "1.9583": [0, 0, 0.02], + "2.0": [0, 0, 0] + } + }, + "foot_right": { + "rotation": { + "0.0": [37.5, 12.5, 0], + "0.0417": [37.5, 12.5, 0], + "0.0833": [37.5, 12.5, 0], + "0.125": [37.5, 12.5, 0], + "0.1667": [37.5, 12.5, 0], + "0.2083": [37.5, 12.5, 0], + "0.25": [37.5, 12.5, 0], + "0.2917": [37.5, 12.5, 0], + "0.3333": [37.5, 12.5, 0], + "0.375": [37.5, 12.5, 0], + "0.4167": [37.5, 12.5, 0], + "0.4583": [37.5, 12.5, 0], + "0.5": [37.5, 12.5, 0], + "0.5417": [37.5, 12.5, 0], + "0.5833": [37.5, 12.5, 0], + "0.625": [37.5, 12.5, 0], + "0.6667": [37.5, 12.5, 0], + "0.7083": [37.5, 12.5, 0], + "0.75": [37.5, 12.5, 0], + "0.7917": [37.5, 12.5, 0], + "0.8333": [37.5, 12.5, 0], + "0.875": [37.5, 12.5, 0], + "0.9167": [37.5, 12.5, 0], + "0.9583": [37.5, 12.5, 0], + "1.0": [37.5, 12.5, 0], + "1.0417": [37.5, 12.5, 0], + "1.0833": [37.5, 12.5, 0], + "1.125": [37.5, 12.5, 0], + "1.1667": [37.5, 12.5, 0], + "1.2083": [37.5, 12.5, 0], + "1.25": [37.5, 12.5, 0], + "1.2917": [37.5, 12.5, 0], + "1.3333": [37.5, 12.5, 0], + "1.375": [37.5, 12.5, 0], + "1.4167": [37.5, 12.5, 0], + "1.4583": [37.5, 12.5, 0], + "1.5": [37.5, 12.5, 0], + "1.5417": [37.5, 12.5, 0], + "1.5833": [37.5, 12.5, 0], + "1.625": [37.5, 12.5, 0], + "1.6667": [37.5, 12.5, 0], + "1.7083": [37.5, 12.5, 0], + "1.75": [37.5, 12.5, 0], + "1.7917": [37.5, 12.5, 0], + "1.8333": [37.5, 12.5, 0], + "1.875": [37.5, 12.5, 0], + "1.9167": [37.5, 12.5, 0], + "1.9583": [37.5, 12.5, 0], + "2.0": [37.5, 12.5, 0] + } + }, + "arm_shoulder_left": { + "rotation": ["51.8397 + Math.cos((query.anim_time - 0.06) * 180) * 3", -17.33786, -16.23565], + "position": [0, 2.75, 0] + }, + "arm_left_1": { + "rotation": [-15, 10, 17.5] + }, + "arm_left_2": { + "rotation": [-2.35753, "-Math.cos((query.anim_time - 0.1) * 180) * 5.9077", "-108.3825+ Math.sin((query.anim_time - 0.1) * 180) * -2"] + }, + "hand_left": { + "rotation": [-27.5, -37.5, -15], + "position": { + "0.0": { + "post": [1.75, -1.5, 1.5], + "lerp_mode": "catmullrom" + } + } + }, + "index_left_1": { + "rotation": [15, 0, "80+ Math.sin((query.anim_time + 0.2) * 180) * 8"] + }, + "index_right_2": { + "rotation": [0, 0, 35] + }, + "pinky_right_1": { + "rotation": [-20, 27.5, "80+ Math.sin((query.anim_time + 0.1) * 180) * 8"] + }, + "pinky_right_2": { + "rotation": [0, 0, 32.5] + }, + "thumb_left_1": { + "rotation": [0, "27.5 + Math.sin((query.anim_time + 0.3) * 180) * 8", 0] + }, + "thumb_left_2": { + "rotation": [0, 0, -2.5] + }, + "arm_shoulder_right": { + "rotation": ["51.8397 + Math.sin((query.anim_time - 0.06) * 180) * 3", 17.33786, 16.23565], + "position": [0, 2.75, 0] + }, + "arm_right_1": { + "rotation": [12.5, 2.5, -17.5] + }, + "arm_right_2": { + "rotation": [-5.46465, "35.1939+Math.sin((query.anim_time - 0.2) * 180) * 5.9077", "103.8964+ Math.cos((query.anim_time - 0.2) * 180) * -2"] + }, + "hand_right": { + "rotation": [-32.5, 2.5, 30], + "position": { + "0.0": { + "post": [-1.75, -1.5, -2], + "lerp_mode": "catmullrom" + } + } + }, + "index_right_1": { + "rotation": [15, 0, "-80+ Math.sin((query.anim_time + 0.2) * 180) * 8"] + }, + "index_left_2": { + "rotation": [0, 0, -35] + }, + "pinky_left_1": { + "rotation": [-20, -27.5, "-80+ Math.sin((query.anim_time + 0.1) * 180) * 8"] + }, + "pinky_left_2": { + "rotation": [0, 0, -32.5] + }, + "thumb_right_1": { + "rotation": [0, "-27.5+ Math.sin((query.anim_time + 0.3) * 180) * 8", 0] + }, + "thumb_right_2": { + "rotation": [0, 0, -32.5] + }, + "headrot": { + "rotation": ["-10+ Math.sin((query.anim_time - 0.2) * 180) * 4", -12.5, 0] + } + } + }, + "animation.frank.idle_event": { + "loop": true, + "animation_length": 4, + "bones": { + "root": { + "position": [0, 0, 0] + }, + "hip": { + "rotation": { + "0.0": [-20, -5, 0], + "0.125": [-20.27, -10.9, -0.72], + "0.25": [-20.35, -16.81, -1.45], + "0.375": [-20.27, -22.71, -2.17], + "0.5": [-20.07, -28.61, -2.89], + "0.625": [-19.84, -34.51, -3.62], + "0.6667": [-19.76, -36.48, -3.86], + "0.75": [-19.64, -37.93, -3.95], + "0.875": [-19.44, -39.81, -4.03], + "1.0": [-19.22, -41.1, -4], + "1.125": [-18.99, -41.52, -3.84], + "1.25": [-18.75, -40.82, -3.51], + "1.375": [-18.53, -38.74, -2.99], + "1.5": [-18.38, -34.99, -2.25], + "1.625": [-18.29, -26.08, -0.7], + "1.75": [-18.28, -12.88, 1.52], + "1.875": [-18.3, 1.77, 3.92], + "2.0": [-18.35, 15.03, 6.03], + "2.125": [-18.41, 24.07, 7.38], + "2.1667": [-18.43, 25.65, 7.58], + "2.25": [-18.45, 26.43, 7.64], + "2.375": [-18.46, 26.52, 7.52], + "2.5": [-18.48, 25.53, 7.19], + "2.625": [-18.5, 23.64, 6.7], + "2.75": [-18.53, 21.07, 6.08], + "2.875": [-18.58, 18.04, 5.37], + "3.0": [-18.64, 14.73, 4.62], + "3.125": [-18.72, 11.38, 3.86], + "3.25": [-18.79, 8.18, 3.15], + "3.375": [-18.84, 5.34, 2.5], + "3.5": [-18.88, 3.06, 1.98], + "3.5833": [-18.9, 1.97, 1.72], + "3.625": [-18.92, 1.27, 1.55], + "3.75": [-19.06, -0.82, 1.03], + "3.875": [-19.4, -2.91, 0.52], + "4.0": [-20, -5, 0] + }, + "position": { + "0.0": [0, 0, 0], + "0.6667": [0, -1.5, 0], + "1.0": [0, -1.7, 0], + "1.5": [0, -0.6, 0], + "1.8333": [1.5, 1.05, -3.65], + "2.1667": [3, 1.1, -7.3], + "3.0": [2.9, 0.4, -7.27], + "3.3333": [2.93, 0.53, -7.25], + "4.0": [0, 0, 0] + } + }, + "chest": { + "rotation": { + "0.0": [22.95, 0, -5], + "0.125": [21.19, 4.5, -6.34], + "0.2083": [20.26, 7.5, -7.24], + "0.25": [20.19, 6.83, -6.71], + "0.375": [20.06, 3.21, -4.16], + "0.5": [19.97, -1.99, -0.68], + "0.625": [19.91, -7.69, 3.06], + "0.75": [19.88, -12.78, 6.37], + "0.875": [19.91, -16.19, 8.56], + "1.0": [20.01, -18.3, 9.79], + "1.125": [20.2, -19.19, 10.1], + "1.25": [20.43, -18.75, 9.57], + "1.375": [20.68, -16.91, 8.25], + "1.4167": [20.75, -15.97, 7.65], + "1.5": [20.81, -15.14, 7.14], + "1.625": [20.9, -13.47, 6.14], + "1.75": [20.99, -11.4, 4.91], + "1.875": [21.09, -9.02, 3.52], + "2.0": [21.18, -6.42, 2], + "2.125": [21.28, -3.71, 0.42], + "2.25": [21.38, -0.97, -1.18], + "2.375": [21.48, 1.7, -2.75], + "2.5": [21.58, 4.2, -4.23], + "2.625": [21.68, 6.44, -5.56], + "2.75": [21.78, 8.32, -6.71], + "2.875": [21.88, 9.74, -7.61], + "2.9583": [21.94, 10.4, -8.05], + "3.0": [22.01, 10.84, -8.39], + "3.125": [22.23, 10.95, -8.76], + "3.25": [22.45, 9.68, -8.41], + "3.375": [22.63, 7.64, -7.64], + "3.5": [22.8, 5.44, -6.77], + "3.625": [22.95, 3.7, -6.1], + "3.6667": [23, 3.33, -5.98], + "3.75": [23.11, 2.5, -5.74], + "3.875": [23.16, 1.25, -5.37], + "4.0": [22.95, 0, -5] + } + }, + "neck": { + "rotation": { + "0.0": [5.68, 7.5, 0], + "0.125": [5.19, 7.32, 2.21], + "0.25": [4.97, 7.13, 4.41], + "0.2917": [4.97, 7.07, 5.15], + "0.375": [5.01, 6.97, 6.35], + "0.5": [5.07, 6.77, 8.65], + "0.625": [5.12, 6.55, 11.23], + "0.75": [5.15, 6.34, 13.81], + "0.875": [5.2, 6.15, 16.05], + "1.0": [5.3, 6.01, 17.64], + "1.125": [5.62, 5.79, 19.08], + "1.25": [6.04, 5.63, 19.46], + "1.375": [6.36, 5.78, 18.78], + "1.4167": [6.41, 5.95, 18.33], + "1.5": [6.41, 7.26, 15.63], + "1.625": [6.11, 9.7, 9.49], + "1.6667": [5.96, 10.04, 7.42], + "1.75": [5.89, 10.05, 6.6], + "1.875": [5.76, 9.95, 5.25], + "2.0": [5.6, 9.75, 3.79], + "2.125": [5.43, 9.45, 2.27], + "2.25": [5.25, 9.1, 0.74], + "2.375": [5.07, 8.72, -0.75], + "2.5": [4.9, 8.34, -2.14], + "2.625": [4.76, 7.97, -3.37], + "2.75": [4.65, 7.65, -4.41], + "2.875": [4.57, 7.41, -5.19], + "2.9583": [4.55, 7.3, -5.55], + "3.0": [4.55, 7.24, -5.73], + "3.125": [4.65, 7.14, -5.74], + "3.25": [4.84, 7.15, -5.13], + "3.375": [5.07, 7.21, -4.15], + "3.5": [5.29, 7.31, -3.04], + "3.625": [5.5, 7.4, -2.01], + "3.75": [5.65, 7.45, -1.33], + "3.875": [5.78, 7.48, -0.66], + "4.0": [5.68, 7.5, 0] + } + }, + "head": { + "rotation": { + "0.0": [-12.35, -12.5, 0], + "0.125": [-11.56, -12.07, 6.85], + "0.2083": [-11.98, -11.78, 11.41], + "0.25": [-12.13, -10.65, 13.12], + "0.375": [-12.16, -5.39, 18.02], + "0.4583": [-11.92, -2.6, 18.99], + "0.5": [-11.68, -1.82, 17.78], + "0.625": [-10.76, -1.35, 9.58], + "0.6667": [-11, -1.28, 7.54], + "0.75": [-11.35, -1.21, 6.99], + "0.875": [-12.17, -1.13, 6.72], + "1.0": [-13.21, -1.08, 6.82], + "1.125": [-14.34, -1.06, 6.94], + "1.25": [-15.45, -1.03, 6.76], + "1.375": [-16.38, -1, 5.92], + "1.4583": [-16.85, -0.97, 4.83], + "1.5": [-17.41, -0.78, 1.02], + "1.625": [-18.04, -0.17, -15.23], + "1.6667": [-18.38, -0.54, -18.01], + "1.75": [-18.55, -0.77, -18.27], + "1.875": [-18.87, -1.22, -18.21], + "2.0": [-19.25, -1.79, -17.69], + "2.125": [-19.67, -2.44, -16.8], + "2.25": [-20.1, -3.14, -15.62], + "2.375": [-20.52, -3.89, -14.26], + "2.5": [-20.89, -4.64, -12.8], + "2.625": [-21.2, -5.39, -11.34], + "2.75": [-21.42, -6.09, -9.97], + "2.875": [-21.52, -6.73, -8.78], + "3.0": [-21.48, -7.28, -7.86], + "3.125": [-21.06, -8.13, -6.58], + "3.25": [-20.23, -8.89, -5.43], + "3.375": [-19.08, -9.58, -4.4], + "3.5": [-17.81, -10.19, -3.48], + "3.625": [-16.66, -10.73, -2.67], + "3.75": [-15.83, -11.2, -1.96], + "3.875": [-14.62, -11.85, -0.98], + "4.0": [-12.35, -12.5, 0] + } + }, + "bone2": { + "rotation": [0, 0, 0] + }, + "jaw": { + "rotation": ["-11.5 + Math.sin((query.anim_time - 0.0) * 180) * 5 + Math.sin((query.anim_time - 0.0) * 1440) * 1", 0, 0] + }, + "small_arm_left_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 180) * -12", 0] + }, + "small_arm_left_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 180) * -12", 0] + }, + "small_arm_right_1": { + "rotation": [0, "Math.cos((query.anim_time - 0.4) * 180) * -12", 0] + }, + "small_arm_right_2": { + "rotation": [0, "Math.sin((query.anim_time - 0.5) * 180) * -12", 0] + }, + "leg_left_1": { + "rotation": { + "0.0": [0, -35, 0], + "0.2083": [0, -35, 0], + "0.375": [-6.91181, -58.09834, -0.99476], + "0.5833": [22.3293, -66.16898, -12.93287], + "1.5": [22.3293, -66.16898, -12.93287], + "1.7083": [33.26796, -52.81606, -4.71359], + "1.9167": [0.32738, -34.64897, -17.92691], + "2.1667": [-18.13777, -10.33981, 1.12986], + "3.3333": [-18.13777, -10.33981, 1.12986], + "3.625": [-28.13777, -10.33981, 1.12986], + "3.7917": [-24.96918, -27.45933, -4.52261], + "4.0": [0, -35, 0] + }, + "position": { + "0.0": [0, 0, 1], + "0.2083": [0, 0, 1], + "0.375": [0, 0.6, 2.6], + "0.5833": [0, 0, 4.6], + "1.5": [0, 0, 4.6], + "1.7083": [1, 0, 0.7], + "1.9167": [2.32, 1.46, -3.25], + "2.1667": [3.9, 1.5, -8], + "3.3333": [3.9, 1.5, -8], + "3.625": [3.1, 1.5, -3.5], + "3.7917": [1.72, 1.23, -1.5], + "4.0": [0, 0, 1] + } + }, + "leg_left_2": { + "rotation": { + "0.0": [6.5, 0, 0], + "0.2083": [6.5, 0, 0], + "0.375": [17.5, 0, 0], + "0.5833": [6.5, 0, 0], + "1.5": [6.5, 0, 0], + "1.7083": [-5.5, 0, 0], + "1.9167": [9.5, 0, 0], + "2.2083": [-0.5, 0, 0], + "3.3333": [-0.5, 0, 0], + "3.625": [-3.28141, 5.21612, -2.41088], + "3.7917": [11.06588, 2.89784, -1.33938], + "4.0": [6.5, 0, 0] + }, + "position": [0, 0, 0] + }, + "foot_left": { + "rotation": { + "0.0": [7.5, 0, 0], + "1.9167": [7.5, 0, 0], + "2.2083": [20.5, 0, 0], + "3.3333": [20.5, 0, 0], + "3.625": [31.81, 0, 0], + "4.0": [7.5, 0, 0] + } + }, + "leg_right_1": { + "rotation": { + "0.0": [-42.5, 22.5, -10], + "1.5": [-42.5, 22.5, -10], + "2.1667": [-22.48219, 41.38205, -6.20802], + "3.3333": [-22.48219, 41.38205, -6.20802], + "4.0": [-42.5, 22.5, -10] + }, + "position": { + "0.0": [0, 0, -1], + "1.5": [0, 0, -1], + "2.1667": [2.5, 1.9, -4.9], + "3.3333": [2.5, 1.9, -4.9], + "4.0": [0, 0, -1] + } + }, + "leg_right_2": { + "rotation": { + "0.0": [10, 0, 0], + "1.5": [10, 0, 0], + "2.1667": [-2.55101, -2.67201, -0.69958], + "3.3333": [-2.55101, -2.67201, -0.69958], + "4.0": [10, 0, 0] + }, + "position": [0, 0, 0] + }, + "foot_right": { + "rotation": { + "0.0": [37.5, 12.5, 0], + "1.5": [37.5, 12.5, 0], + "2.1667": [35.89105, 12.52216, -1.40111], + "3.3333": [35.89105, 12.52216, -1.40111], + "4.0": [37.5, 12.5, 0] + } + }, + "arm_shoulder_left": { + "rotation": ["51.8397 + Math.cos((query.anim_time - 0.06) * 180) * 3", -17.33786, -16.23565], + "position": [0, 2.75, 0] + }, + "arm_left_1": { + "rotation": { + "0.0": [-15, 10, 17.5], + "0.125": [-19.08, 4.74, 20.07], + "0.25": [-25.09, -2.93, 23.83], + "0.375": [-31.86, -11.66, 28.09], + "0.5": [-38.25, -20.09, 32.14], + "0.625": [-43.09, -26.87, 35.29], + "0.6667": [-44.16, -28.53, 36.02], + "0.75": [-45.06, -30.25, 36.76], + "0.875": [-45.86, -32.69, 37.85], + "1.0": [-46.11, -34.86, 38.83], + "1.125": [-45.95, -36.7, 39.63], + "1.25": [-45.53, -38.11, 40.17], + "1.375": [-44.97, -39.02, 40.37], + "1.5": [-44.41, -39.34, 40.16], + "1.625": [-44, -38.98, 39.46], + "1.75": [-43.88, -37.87, 38.18], + "1.7917": [-43.93, -37.31, 37.62], + "1.875": [-44.16, -35.89, 36.23], + "2.0": [-44.83, -32.72, 33.26], + "2.125": [-45.76, -28.58, 29.48], + "2.25": [-46.81, -23.74, 25.16], + "2.375": [-47.84, -18.5, 20.59], + "2.5": [-48.73, -13.13, 16.03], + "2.625": [-49.32, -7.91, 11.77], + "2.75": [-49.49, -3.14, 8.09], + "2.875": [-49.09, 0.92, 5.26], + "3.0": [-47.99, 3.96, 3.56], + "3.125": [-45.42, 6.44, 3.1], + "3.25": [-41.58, 8.09, 4], + "3.375": [-36.88, 9.07, 5.89], + "3.5": [-31.75, 9.56, 8.4], + "3.625": [-26.58, 9.73, 11.19], + "3.75": [-21.8, 9.74, 13.87], + "3.875": [-17.8, 9.78, 16.1], + "4.0": [-15, 10, 17.5] + } + }, + "arm_left_2": { + "rotation": { + "0.0": [-2.36, -5.62, -107.76], + "0.125": [-4.44, -5.85, -112.11], + "0.1667": [-5.14, -5.84, -113.3], + "0.25": [-4.56, -6.63, -110.77], + "0.375": [-3.25, -8.29, -105.35], + "0.5": [-1.55, -10.39, -98.47], + "0.625": [0.42, -12.73, -90.68], + "0.75": [2.52, -15.12, -82.47], + "0.875": [4.6, -17.41, -74.33], + "1.0": [6.54, -19.51, -66.74], + "1.125": [8.2, -21.39, -60.2], + "1.25": [9.43, -23.02, -55.21], + "1.2917": [9.72, -23.5, -53.98], + "1.375": [10.6, -25.4, -50.68], + "1.5": [11.59, -28.68, -48.05], + "1.625": [11.96, -31.53, -47.77], + "1.75": [11.43, -32.93, -49.4], + "1.875": [9.77, -31.83, -52.47], + "1.9167": [8.91, -30.73, -53.74], + "2.0": [7.96, -29.33, -55.03], + "2.125": [6.02, -26.3, -57.52], + "2.25": [3.6, -22.38, -60.56], + "2.375": [0.82, -17.82, -64.03], + "2.5": [-2.18, -12.88, -67.81], + "2.625": [-5.28, -7.8, -71.8], + "2.75": [-8.33, -2.75, -75.89], + "2.875": [-11.21, 2.1, -79.97], + "3.0": [-13.79, 6.59, -83.9], + "3.125": [-15.94, 10.55, -87.55], + "3.25": [-17.51, 13.73, -90.75], + "3.375": [-18.39, 15.86, -93.37], + "3.5": [-15.18, 13.05, -95.99], + "3.625": [-11.98, 9.33, -98.58], + "3.75": [-8.77, 4.73, -101.31], + "3.875": [-5.56, -0.42, -104.34], + "4.0": [-2.36, -5.62, -107.76] + } + }, + "hand_left": { + "rotation": [-27.5, -37.5, -15], + "position": [1.75, -1.5, 1.5] + }, + "index_left_1": { + "rotation": [15, 0, "80+ Math.sin((query.anim_time + 0.2) * 180) * 8"] + }, + "index_right_2": { + "rotation": [0, 0, 35] + }, + "pinky_right_1": { + "rotation": [-20, 27.5, "80+ Math.sin((query.anim_time + 0.1) * 180) * 8"] + }, + "pinky_right_2": { + "rotation": [0, 0, 32.5] + }, + "thumb_left_1": { + "rotation": [0, "27.5 + Math.sin((query.anim_time + 0.3) * 180) * 8", 0] + }, + "thumb_left_2": { + "rotation": [0, 0, -2.5] + }, + "arm_shoulder_right": { + "rotation": ["51.8397 + Math.sin((query.anim_time - 0.06) * 180) * 3", 17.33786, 16.23565], + "position": [0, 2.75, 0] + }, + "arm_right_1": { + "rotation": { + "0.0": [12.5, 2.5, -17.5], + "0.125": [9.61, 5.47, -19.43], + "0.25": [5.36, 9.97, -22.33], + "0.375": [0.56, 14.93, -25.55], + "0.5": [-3.98, 19.26, -28.41], + "0.625": [-7.46, 21.89, -30.26], + "0.6667": [-8.25, 22.2, -30.54], + "0.75": [-9.15, 21.88, -30.46], + "0.875": [-9.75, 19.68, -29.24], + "1.0": [-9.72, 16.22, -27.24], + "1.125": [-9.35, 12.39, -25.06], + "1.25": [-8.96, 9.08, -23.33], + "1.375": [-8.83, 7.19, -22.65], + "1.4583": [-9.03, 7.15, -23.09], + "1.5": [-9.17, 7.41, -23.45], + "1.625": [-9.69, 8.96, -25.14], + "1.75": [-10.36, 11.47, -27.61], + "1.875": [-11.12, 14.65, -30.63], + "2.0": [-11.94, 18.23, -33.95], + "2.125": [-12.76, 21.96, -37.35], + "2.25": [-13.54, 25.56, -40.59], + "2.375": [-14.23, 28.75, -43.44], + "2.5": [-14.79, 31.28, -45.67], + "2.625": [-15.17, 32.87, -47.04], + "2.75": [-15.75, 33.88, -47.76], + "2.875": [-16.37, 33.66, -47.24], + "3.0": [-16.74, 32.47, -45.76], + "3.125": [-16.54, 30.55, -43.62], + "3.25": [-15.48, 28.14, -41.1], + "3.3333": [-14.15, 26.39, -39.36], + "3.375": [-13.13, 25.33, -38.34], + "3.5": [-8.66, 21.08, -34.38], + "3.625": [-2.83, 15.85, -29.6], + "3.75": [3.33, 10.47, -24.72], + "3.875": [8.79, 5.75, -20.45], + "4.0": [12.5, 2.5, -17.5] + } + }, + "arm_right_2": { + "rotation": { + "0.0": [-5.46, 31.72, 102.28], + "0.125": [-6.63, 39.28, 99.05], + "0.25": [-7.79, 45.99, 96.14], + "0.375": [-8.95, 51.59, 93.33], + "0.5": [-10.11, 56.15, 90.42], + "0.5417": [-10.5, 57.5, 89.39], + "0.625": [-11.56, 57.73, 87.38], + "0.75": [-13.32, 57.66, 83.39], + "0.875": [-15.3, 57.13, 78.84], + "1.0": [-17.52, 56.09, 74.39], + "1.125": [-20, 54.43, 70.64], + "1.25": [-22.78, 52.08, 68.19], + "1.375": [-25.87, 49.09, 67.61], + "1.4167": [-26.98, 47.97, 67.93], + "1.5": [-33.15, 41.08, 73.06], + "1.625": [-45.13, 26.47, 88.17], + "1.75": [-55.12, 13.44, 103.47], + "1.8333": [-57.78, 9.38, 108.93], + "1.875": [-57.76, 9.25, 109.27], + "2.0": [-56.74, 10.02, 109.25], + "2.125": [-54.54, 12.22, 107.94], + "2.25": [-51.43, 15.48, 105.67], + "2.375": [-47.69, 19.41, 102.8], + "2.5": [-43.61, 23.61, 99.67], + "2.625": [-39.47, 27.71, 96.62], + "2.75": [-35.56, 31.31, 94.02], + "2.875": [-32.16, 34.02, 92.19], + "2.9583": [-30.31, 35.15, 91.58], + "3.0": [-29.03, 35.67, 91.41], + "3.125": [-25.42, 36.06, 91.86], + "3.25": [-22.16, 35.28, 93.38], + "3.375": [-19.21, 33.95, 95.52], + "3.5": [-16.56, 32.52, 97.79], + "3.625": [-14.16, 31.4, 99.67], + "3.6667": [-13.42, 31.18, 100.1], + "3.75": [-11.43, 30.72, 100.97], + "3.875": [-8.45, 30.54, 101.82], + "4.0": [-5.46, 31.72, 102.28] + } + }, + "hand_right": { + "rotation": [-32.5, 2.5, 30], + "position": [-1.75, -1.5, -2] + }, + "index_right_1": { + "rotation": [15, 0, "-80+ Math.sin((query.anim_time + 0.2) * 180) * 8"] + }, + "index_left_2": { + "rotation": [0, 0, -35] + }, + "pinky_left_1": { + "rotation": [-20, -27.5, "-80+ Math.sin((query.anim_time + 0.1) * 180) * 8"] + }, + "pinky_left_2": { + "rotation": [0, 0, -32.5] + }, + "thumb_right_1": { + "rotation": [0, "-27.5+ Math.sin((query.anim_time + 0.3) * 180) * 8", 0] + }, + "thumb_right_2": { + "rotation": [0, 0, -32.5] + } + }, + "sound_effects": { + "0.0": { + "effect": "frank.idle_event" + } + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/blockstates/black_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/black_cage_panel.json new file mode 100644 index 0000000..035bbd6 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/black_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/black" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/black_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/black_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/black_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/black", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/black_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/black_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/black_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/black", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/black_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/black_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/black_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/black", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/black_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/black_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/black_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/black_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/black_hamster_bottle.json new file mode 100644 index 0000000..a515654 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/black_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/black" + }, + "facing=east": { + "model": "hamsters:block/bottle/black", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/black", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/black", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/black_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/black_hamster_bowl.json new file mode 100644 index 0000000..600e6fd --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/black_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/black" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/blue_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/blue_cage_panel.json new file mode 100644 index 0000000..4a49cc6 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/blue_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/blue" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/blue_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/blue_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/blue_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/blue", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/blue_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/blue_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/blue_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/blue", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/blue_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/blue_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/blue_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/blue", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/blue_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/blue_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/blue_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/blue_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/blue_hamster_bottle.json index db0c5fd..5b637ab 100644 --- a/src/main/resources/assets/hamsters/blockstates/blue_hamster_bottle.json +++ b/src/main/resources/assets/hamsters/blockstates/blue_hamster_bottle.json @@ -1,5 +1,5 @@ { - "variants": { + "variants": { "facing=north": { "model": "hamsters:block/bottle/blue" }, @@ -15,5 +15,5 @@ "model": "hamsters:block/bottle/blue", "y": 270 } - } -} \ No newline at end of file + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/blue_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/blue_hamster_bowl.json index f40d344..96c30b8 100644 --- a/src/main/resources/assets/hamsters/blockstates/blue_hamster_bowl.json +++ b/src/main/resources/assets/hamsters/blockstates/blue_hamster_bowl.json @@ -1,33 +1,33 @@ { - "multipart": [ - { - "apply": { - "model": "hamsters:block/bowl/blue" - } - }, - { - "apply": { - "model": "hamsters:block/template/seeds_1" - }, - "when": { - "seeds": 1 - } - }, - { - "apply": { - "model": "hamsters:block/template/seeds_2" - }, - "when": { - "seeds": 2 - } - }, - { - "apply": { - "model": "hamsters:block/template/seeds_3" - }, - "when": { - "seeds": 3 - } - } - ] -} \ No newline at end of file + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/blue" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/brown_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/brown_cage_panel.json new file mode 100644 index 0000000..99718f1 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/brown_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/brown" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/brown_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/brown_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/brown_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/brown", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/brown_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/brown_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/brown_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/brown", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/brown_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/brown_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/brown_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/brown", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/brown_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/brown_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/brown_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/brown_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/brown_hamster_bottle.json new file mode 100644 index 0000000..0bcdda3 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/brown_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/brown" + }, + "facing=east": { + "model": "hamsters:block/bottle/brown", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/brown", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/brown", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/brown_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/brown_hamster_bowl.json new file mode 100644 index 0000000..ea50e39 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/brown_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/brown" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/cage_panel.json b/src/main/resources/assets/hamsters/blockstates/cage_panel.json new file mode 100644 index 0000000..86dfd9d --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/cage" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/cage_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/cage_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/cage_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/cage", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/cage_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/cage_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/cage_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/cage", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/cage_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/cage_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/cage_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/cage", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/cage_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/cage_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/cage_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/cyan_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/cyan_cage_panel.json new file mode 100644 index 0000000..f2917ea --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/cyan_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/cyan" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/cyan_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/cyan_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/cyan_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/cyan", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/cyan_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/cyan_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/cyan_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/cyan", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/cyan_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/cyan_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/cyan_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/cyan", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/cyan_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/cyan_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/cyan_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/cyan_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/cyan_hamster_bottle.json new file mode 100644 index 0000000..381f0f7 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/cyan_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/cyan" + }, + "facing=east": { + "model": "hamsters:block/bottle/cyan", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/cyan", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/cyan", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/cyan_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/cyan_hamster_bowl.json new file mode 100644 index 0000000..a2c17c2 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/cyan_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/cyan" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/gray_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/gray_cage_panel.json new file mode 100644 index 0000000..fdf22de --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/gray_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/gray" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/gray_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/gray_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/gray_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/gray", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/gray_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/gray_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/gray_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/gray", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/gray_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/gray_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/gray_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/gray", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/gray_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/gray_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/gray_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/gray_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/gray_hamster_bottle.json new file mode 100644 index 0000000..52818c7 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/gray_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/gray" + }, + "facing=east": { + "model": "hamsters:block/bottle/gray", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/gray", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/gray", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/gray_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/gray_hamster_bowl.json new file mode 100644 index 0000000..a84b1fc --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/gray_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/gray" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/green_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/green_cage_panel.json new file mode 100644 index 0000000..6f87712 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/green_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/green" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/green_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/green_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/green_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/green", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/green_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/green_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/green_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/green", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/green_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/green_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/green_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/green", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/green_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/green_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/green_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/green_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/green_hamster_bottle.json new file mode 100644 index 0000000..a9b2bba --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/green_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/green" + }, + "facing=east": { + "model": "hamsters:block/bottle/green", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/green", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/green", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/green_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/green_hamster_bowl.json new file mode 100644 index 0000000..66506fd --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/green_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/green" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/light_blue_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/light_blue_cage_panel.json new file mode 100644 index 0000000..b0651d1 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/light_blue_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/light_blue" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/light_blue_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/light_blue_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/light_blue_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/light_blue", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/light_blue_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/light_blue_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/light_blue_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/light_blue", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/light_blue_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/light_blue_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/light_blue_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/light_blue", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/light_blue_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/light_blue_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/light_blue_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/light_blue_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/light_blue_hamster_bottle.json new file mode 100644 index 0000000..108e58f --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/light_blue_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/light_blue" + }, + "facing=east": { + "model": "hamsters:block/bottle/light_blue", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/light_blue", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/light_blue", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/light_blue_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/light_blue_hamster_bowl.json new file mode 100644 index 0000000..462cb85 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/light_blue_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/light_blue" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/light_gray_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/light_gray_cage_panel.json new file mode 100644 index 0000000..9cc39bd --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/light_gray_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/light_gray" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/light_gray_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/light_gray_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/light_gray_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/light_gray", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/light_gray_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/light_gray_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/light_gray_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/light_gray", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/light_gray_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/light_gray_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/light_gray_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/light_gray", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/light_gray_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/light_gray_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/light_gray_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/light_gray_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/light_gray_hamster_bottle.json new file mode 100644 index 0000000..f5fed06 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/light_gray_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/light_gray" + }, + "facing=east": { + "model": "hamsters:block/bottle/light_gray", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/light_gray", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/light_gray", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/light_gray_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/light_gray_hamster_bowl.json new file mode 100644 index 0000000..5e862ea --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/light_gray_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/light_gray" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/lime_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/lime_cage_panel.json new file mode 100644 index 0000000..c326b7d --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/lime_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/lime" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/lime_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/lime_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/lime_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/lime", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/lime_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/lime_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/lime_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/lime", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/lime_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/lime_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/lime_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/lime", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/lime_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/lime_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/lime_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/lime_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/lime_hamster_bottle.json new file mode 100644 index 0000000..294e8e8 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/lime_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/lime" + }, + "facing=east": { + "model": "hamsters:block/bottle/lime", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/lime", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/lime", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/lime_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/lime_hamster_bowl.json new file mode 100644 index 0000000..70d2d67 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/lime_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/lime" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/magenta_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/magenta_cage_panel.json new file mode 100644 index 0000000..e029164 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/magenta_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/magenta" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/magenta_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/magenta_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/magenta_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/magenta", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/magenta_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/magenta_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/magenta_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/magenta", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/magenta_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/magenta_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/magenta_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/magenta", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/magenta_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/magenta_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/magenta_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/magenta_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/magenta_hamster_bottle.json new file mode 100644 index 0000000..44c1716 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/magenta_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/magenta" + }, + "facing=east": { + "model": "hamsters:block/bottle/magenta", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/magenta", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/magenta", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/magenta_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/magenta_hamster_bowl.json new file mode 100644 index 0000000..821646b --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/magenta_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/magenta" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/orange_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/orange_cage_panel.json new file mode 100644 index 0000000..520cc58 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/orange_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/orange" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/orange_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/orange_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/orange_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/orange", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/orange_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/orange_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/orange_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/orange", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/orange_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/orange_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/orange_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/orange", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/orange_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/orange_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/orange_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/orange_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/orange_hamster_bottle.json new file mode 100644 index 0000000..3f9a493 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/orange_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/orange" + }, + "facing=east": { + "model": "hamsters:block/bottle/orange", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/orange", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/orange", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/orange_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/orange_hamster_bowl.json new file mode 100644 index 0000000..d8d0a7f --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/orange_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/orange" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/pink_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/pink_cage_panel.json new file mode 100644 index 0000000..daa9c7d --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/pink_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/pink" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/pink_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/pink_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/pink_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/pink", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/pink_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/pink_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/pink_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/pink", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/pink_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/pink_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/pink_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/pink", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/pink_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/pink_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/pink_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/pink_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/pink_hamster_bottle.json new file mode 100644 index 0000000..f612f96 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/pink_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/pink" + }, + "facing=east": { + "model": "hamsters:block/bottle/pink", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/pink", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/pink", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/pink_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/pink_hamster_bowl.json new file mode 100644 index 0000000..ac0e714 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/pink_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/pink" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/purple_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/purple_cage_panel.json new file mode 100644 index 0000000..c75810d --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/purple_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/purple" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/purple_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/purple_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/purple_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/purple", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/purple_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/purple_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/purple_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/purple", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/purple_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/purple_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/purple_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/purple", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/purple_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/purple_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/purple_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/purple_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/purple_hamster_bottle.json new file mode 100644 index 0000000..25d2e0e --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/purple_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/purple" + }, + "facing=east": { + "model": "hamsters:block/bottle/purple", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/purple", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/purple", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/purple_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/purple_hamster_bowl.json new file mode 100644 index 0000000..f426d5f --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/purple_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/purple" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/red_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/red_cage_panel.json new file mode 100644 index 0000000..71cd8a9 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/red_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/red" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/red_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/red_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/red_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/red", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/red_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/red_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/red_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/red", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/red_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/red_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/red_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/red", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/red_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/red_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/red_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/red_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/red_hamster_bottle.json new file mode 100644 index 0000000..4a3c0a2 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/red_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/red" + }, + "facing=east": { + "model": "hamsters:block/bottle/red", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/red", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/red", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/red_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/red_hamster_bowl.json new file mode 100644 index 0000000..ce930c8 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/red_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/red" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/blockstates/white_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/white_cage_panel.json new file mode 100644 index 0000000..1660a37 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/white_cage_panel.json @@ -0,0 +1,20 @@ +{ + "variants": { + "facing=north,type=none": { "model": "hamsters:block/cage_panel/white" }, + "facing=north,type=top": { "model": "hamsters:block/cage_panel/white_top" }, + "facing=north,type=middle": { "model": "hamsters:block/cage_panel/white_middle" }, + "facing=north,type=bottom": { "model": "hamsters:block/cage_panel/white_bottom" }, + "facing=east,type=none": { "model": "hamsters:block/cage_panel/white", "y": 90 }, + "facing=east,type=top": { "model": "hamsters:block/cage_panel/white_top", "y": 90 }, + "facing=east,type=middle": { "model": "hamsters:block/cage_panel/white_middle", "y": 90 }, + "facing=east,type=bottom": { "model": "hamsters:block/cage_panel/white_bottom", "y": 90 }, + "facing=south,type=none": { "model": "hamsters:block/cage_panel/white", "y": 180 }, + "facing=south,type=top": { "model": "hamsters:block/cage_panel/white_top", "y": 180 }, + "facing=south,type=middle": { "model": "hamsters:block/cage_panel/white_middle", "y": 180 }, + "facing=south,type=bottom": { "model": "hamsters:block/cage_panel/white_bottom", "y": 180 }, + "facing=west,type=none": { "model": "hamsters:block/cage_panel/white", "y": 270 }, + "facing=west,type=top": { "model": "hamsters:block/cage_panel/white_top", "y": 270 }, + "facing=west,type=middle": { "model": "hamsters:block/cage_panel/white_middle", "y": 270 }, + "facing=west,type=bottom": { "model": "hamsters:block/cage_panel/white_bottom", "y": 270 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/blockstates/white_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/white_hamster_bottle.json new file mode 100644 index 0000000..ede0e00 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/white_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/white" + }, + "facing=east": { + "model": "hamsters:block/bottle/white", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/white", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/white", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/blockstates/white_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/white_hamster_bowl.json new file mode 100644 index 0000000..4c8d38a --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/white_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/white" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/blockstates/wno.py b/src/main/resources/assets/hamsters/blockstates/wno.py new file mode 100644 index 0000000..ab70171 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/wno.py @@ -0,0 +1,108 @@ +import json +import os + + +################################################################# + +def ensure_outputs_exist(): + for file in os.walk(_cwd + f"\\{input_path}\\"): + try: + os.mkdir(file[0].replace(input_path, output_path)) + except: + continue + +# these 2 are for looping/replacing through every single key and value in a dict +def dict_replace_value(d, old, new): + x = {} + for k, v in d.items(): + if isinstance(v, dict): + v = dict_replace_value(v, old, new) + elif isinstance(v, list): + v = list_replace_value(v, old, new) + elif isinstance(v, str): + if not old is None and not new is None: + v = v.replace(old, new) + v = v.replace("{namespace}",f"{namespace}") + x[k] = v + return x + +def list_replace_value(l, old, new): + x = [] + for e in l: + if isinstance(e, list): + e = list_replace_value(e, old, new) + elif isinstance(e, dict): + e = dict_replace_value(e, old, new) + elif isinstance(e, str): + if not old is None and not new is None: + e = e.replace(old, new) + e = e.replace("{namespace}",f"{namespace}") + x.append(e) + return x + +################################################################# + + +colors = [ + "orange", + "magenta", + "light_blue", + "yellow", + "lime", + "pink", + "gray", + "light_gray", + "cyan", + "purple", + "blue", + "brown", + "green", + "red", + "black" +] + +woods = [ + "spruce", + "birch", + "jungle", + "acacia", + "dark_oak", + "mangrove", + "crimson", + "warped", + "bamboo", + "cherry" +] + +namespace = "another_furniture" + +cwd = os.getcwd() + + +process_specific = input("process specific file (or enter to skip): ") +if process_specific == "oak": + typea = "oak" + files_to_process = [f for f in os.listdir(cwd) if os.path.isfile(os.path.join(cwd, f)) and f.startswith("oak")] +elif process_specific != "": + files_to_process = [process_specific + ".json"] +else: + typea = "white" + files_to_process = [f for f in os.listdir(cwd) if os.path.isfile(os.path.join(cwd, f)) and f.startswith("white")] + +for file in files_to_process: + should_process = input("should process file " + file + "? ") + if should_process == "" or should_process.lower() == "y" or should_process.lower() == "yes": + f = open(file, "r") + data = json.loads(f.read()) + if "white" in file: + for color in colors: + new_data = dict_replace_value(data, "white", color) + with open(file.replace("white", color), "w+") as f: + f.write(json.dumps(new_data, indent=4) + "\n") + elif "oak" in file: + for wood in woods: + new_data = dict_replace_value(data, "oak", wood) + with open(file.replace("oak", wood), "w+") as f: + f.write(json.dumps(new_data, indent=4) + "\n") + + diff --git a/src/main/resources/assets/hamsters/blockstates/yellow_cage_panel.json b/src/main/resources/assets/hamsters/blockstates/yellow_cage_panel.json new file mode 100644 index 0000000..c8ac103 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/yellow_cage_panel.json @@ -0,0 +1,64 @@ +{ + "variants": { + "facing=north,type=none": { + "model": "hamsters:block/cage_panel/yellow" + }, + "facing=north,type=top": { + "model": "hamsters:block/cage_panel/yellow_top" + }, + "facing=north,type=middle": { + "model": "hamsters:block/cage_panel/yellow_middle" + }, + "facing=north,type=bottom": { + "model": "hamsters:block/cage_panel/yellow_bottom" + }, + "facing=east,type=none": { + "model": "hamsters:block/cage_panel/yellow", + "y": 90 + }, + "facing=east,type=top": { + "model": "hamsters:block/cage_panel/yellow_top", + "y": 90 + }, + "facing=east,type=middle": { + "model": "hamsters:block/cage_panel/yellow_middle", + "y": 90 + }, + "facing=east,type=bottom": { + "model": "hamsters:block/cage_panel/yellow_bottom", + "y": 90 + }, + "facing=south,type=none": { + "model": "hamsters:block/cage_panel/yellow", + "y": 180 + }, + "facing=south,type=top": { + "model": "hamsters:block/cage_panel/yellow_top", + "y": 180 + }, + "facing=south,type=middle": { + "model": "hamsters:block/cage_panel/yellow_middle", + "y": 180 + }, + "facing=south,type=bottom": { + "model": "hamsters:block/cage_panel/yellow_bottom", + "y": 180 + }, + "facing=west,type=none": { + "model": "hamsters:block/cage_panel/yellow", + "y": 270 + }, + "facing=west,type=top": { + "model": "hamsters:block/cage_panel/yellow_top", + "y": 270 + }, + "facing=west,type=middle": { + "model": "hamsters:block/cage_panel/yellow_middle", + "y": 270 + }, + "facing=west,type=bottom": { + "model": "hamsters:block/cage_panel/yellow_bottom", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/yellow_hamster_bottle.json b/src/main/resources/assets/hamsters/blockstates/yellow_hamster_bottle.json new file mode 100644 index 0000000..d6b0854 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/yellow_hamster_bottle.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "hamsters:block/bottle/yellow" + }, + "facing=east": { + "model": "hamsters:block/bottle/yellow", + "y": 90 + }, + "facing=south": { + "model": "hamsters:block/bottle/yellow", + "y": 180 + }, + "facing=west": { + "model": "hamsters:block/bottle/yellow", + "y": 270 + } + } +} diff --git a/src/main/resources/assets/hamsters/blockstates/yellow_hamster_bowl.json b/src/main/resources/assets/hamsters/blockstates/yellow_hamster_bowl.json new file mode 100644 index 0000000..04200d2 --- /dev/null +++ b/src/main/resources/assets/hamsters/blockstates/yellow_hamster_bowl.json @@ -0,0 +1,33 @@ +{ + "multipart": [ + { + "apply": { + "model": "hamsters:block/bowl/yellow" + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_1" + }, + "when": { + "seeds": 1 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_2" + }, + "when": { + "seeds": 2 + } + }, + { + "apply": { + "model": "hamsters:block/template/seeds_3" + }, + "when": { + "seeds": 3 + } + } + ] +} diff --git a/src/main/resources/assets/hamsters/geo/entity/frank_scp.geo.json b/src/main/resources/assets/hamsters/geo/entity/frank_scp.geo.json new file mode 100644 index 0000000..ba2339f --- /dev/null +++ b/src/main/resources/assets/hamsters/geo/entity/frank_scp.geo.json @@ -0,0 +1,357 @@ +{ + "format_version": "1.12.0", + "minecraft:geometry": [ + { + "description": { + "identifier": "geometry.sf.scp_survival.wendigo", + "texture_width": 144, + "texture_height": 144, + "visible_bounds_width": 9, + "visible_bounds_height": 5, + "visible_bounds_offset": [0, 1.5, 0] + }, + "bones": [ + { + "name": "root", + "pivot": [0, 0, 0] + }, + { + "name": "hip", + "parent": "root", + "pivot": [0, 15.75, 17.75], + "rotation": [35, 0, 0], + "cubes": [ + {"origin": [-4.5, 15.5, 15], "size": [9, 12, 5], "uv": [0, 78]} + ] + }, + { + "name": "chest", + "parent": "hip", + "pivot": [0, 26.5, 18.5], + "rotation": [22.5, 0, 0], + "cubes": [ + {"origin": [-6, 26.5, 14], "size": [12, 9, 7], "uv": [64, 64]} + ] + }, + { + "name": "neck", + "parent": "chest", + "pivot": [0, 35, 19.5], + "rotation": [22.5, 0, 0], + "cubes": [ + {"origin": [-9.5, 34.5, 12], "size": [19, 11, 13], "uv": [0, 54]} + ] + }, + { + "name": "headrot", + "parent": "neck", + "pivot": [0, 44, 15.5], + "rotation": [-72.5, 0, 0] + }, + { + "name": "head", + "parent": "headrot", + "pivot": [0, 44, 15.5], + "cubes": [ + {"origin": [-10.5, 38.5, -3], "size": [21, 18, 21], "uv": [0, 0]}, + {"origin": [-10.5, 34.5, 4], "size": [21, 4, 4], "inflate": -0.02, "uv": [0, 114]} + ] + }, + { + "name": "bone2", + "parent": "head", + "pivot": [0, 38.025, -2.375], + "cubes": [ + {"origin": [0.5, 37.525, -3], "size": [2, 1, 1], "uv": [3, 106], "mirror": true}, + {"origin": [-2.5, 37.525, -3], "size": [2, 1, 1], "inflate": -0.02, "uv": [3, 106]}, + {"origin": [-5.5, 37.525, -3], "size": [2, 1, 1], "inflate": -0.02, "uv": [3, 106]}, + {"origin": [-8.5, 37.525, -3], "size": [2, 1, 1], "inflate": -0.02, "uv": [3, 106]}, + {"origin": [-10.5, 37.525, -3], "size": [1, 1, 2], "inflate": -0.02, "uv": [12, 100]}, + {"origin": [3.5, 37.525, -3], "size": [2, 1, 1], "inflate": -0.02, "uv": [3, 106], "mirror": true}, + {"origin": [6.5, 37.525, -3], "size": [2, 1, 1], "inflate": -0.02, "uv": [3, 106], "mirror": true}, + {"origin": [9.5, 37.525, -3], "size": [1, 1, 2], "inflate": -0.02, "uv": [12, 100], "mirror": true} + ] + }, + { + "name": "jaw", + "parent": "head", + "pivot": [0, 37.5, 4], + "rotation": [39.9844, 0, 0], + "cubes": [ + {"origin": [-10.5, 34.5, -3], "size": [21, 3, 8], "uv": [19, 125]}, + {"origin": [-8.5, 37.5, -3], "size": [2, 1, 1], "uv": [3, 100]}, + {"origin": [-10.5, 37.5, -3], "size": [1, 1, 2], "uv": [12, 100]}, + {"origin": [9.5, 37.5, -3], "size": [1, 1, 2], "uv": [12, 100], "mirror": true}, + {"origin": [-5.5, 37.5, -3], "size": [2, 1, 1], "uv": [3, 100]}, + {"origin": [-2.5, 37.5, -3], "size": [2, 1, 1], "uv": [3, 100]}, + {"origin": [0.5, 37.5, -3], "size": [2, 1, 1], "uv": [3, 100], "mirror": true}, + {"origin": [3.5, 37.5, -3], "size": [2, 1, 1], "uv": [3, 100], "mirror": true}, + {"origin": [6.5, 37.5, -3], "size": [2, 1, 1], "uv": [3, 100], "mirror": true} + ] + }, + { + "name": "arm_shoulder_left", + "parent": "head", + "pivot": [10.5, 44, 15.5] + }, + { + "name": "arm_left_1", + "parent": "arm_shoulder_left", + "pivot": [10.5, 44, 10.5], + "rotation": [55, 22, 27], + "cubes": [ + {"origin": [5.5, 40, 6.5], "size": [27, 8, 8], "uv": [63, 0]} + ] + }, + { + "name": "arm_left_2", + "parent": "arm_left_1", + "pivot": [32.5, 44, 11], + "rotation": [-27.5, 30, -25], + "cubes": [ + {"origin": [31.5, 40.5, 7], "size": [32, 7, 7], "uv": [0, 40]} + ] + }, + { + "name": "hand_left", + "parent": "arm_left_2", + "pivot": [62, 44.5, 10.5], + "rotation": [-7.5, 0, -35], + "cubes": [ + {"origin": [57.5, 41.5, 6.5], "size": [12, 5, 8], "uv": [76, 32]} + ] + }, + { + "name": "index_left_1", + "parent": "hand_left", + "pivot": [69.5, 43.5, 8], + "rotation": [-12.51293, 18.75494, -27.54639], + "cubes": [ + {"origin": [68.5, 42, 6.5], "size": [8, 3, 3], "inflate": 0.02, "uv": [70, 80]} + ] + }, + { + "name": "index_right_2", + "parent": "index_left_1", + "pivot": [76.5, 45, 8], + "rotation": [0, 0, 50], + "cubes": [ + {"origin": [76.5, 42, 6.5], "size": [12, 3, 3], "uv": [28, 78]} + ] + }, + { + "name": "pinky_right_1", + "parent": "hand_left", + "pivot": [68.5, 43.5, 14], + "rotation": [23.5, -35, -32], + "cubes": [ + {"origin": [67.5, 42, 12.5], "size": [8, 3, 3], "inflate": 0.02, "uv": [70, 80]} + ] + }, + { + "name": "pinky_right_2", + "parent": "pinky_right_1", + "pivot": [75.5, 45, 14], + "rotation": [0, 0, 50], + "cubes": [ + {"origin": [75.5, 42, 12.5], "size": [12, 3, 3], "uv": [28, 78]} + ] + }, + { + "name": "thumb_left_1", + "parent": "hand_left", + "pivot": [64.5, 43.5, 7], + "rotation": [-98.59321, 59.75682, -101.14303], + "cubes": [ + {"origin": [63.5, 42, 5.5], "size": [8, 3, 3], "inflate": 0.02, "uv": [70, 80]} + ] + }, + { + "name": "thumb_left_2", + "parent": "thumb_left_1", + "pivot": [71.5, 45, 7], + "rotation": [0, 0, 50], + "cubes": [ + {"origin": [71.5, 42, 5.5], "size": [12, 3, 3], "uv": [28, 78]} + ] + }, + { + "name": "arm_shoulder_right", + "parent": "head", + "pivot": [-10.5, 44, 15.5] + }, + { + "name": "arm_right_1", + "parent": "arm_shoulder_right", + "pivot": [-10.5, 44, 10.5], + "rotation": [55, -22, -27], + "cubes": [ + {"origin": [-32.5, 40, 6.5], "size": [27, 8, 8], "uv": [63, 0], "mirror": true} + ] + }, + { + "name": "arm_right_2", + "parent": "arm_right_1", + "pivot": [-32.5, 44, 11], + "rotation": [-27.5, -30, 25], + "cubes": [ + {"origin": [-63.5, 40.5, 7], "size": [32, 7, 7], "uv": [0, 40], "mirror": true} + ] + }, + { + "name": "hand_right", + "parent": "arm_right_2", + "pivot": [-62, 44.5, 10.5], + "rotation": [-7.5, 0, 35], + "cubes": [ + {"origin": [-69.5, 41.5, 6.5], "size": [12, 5, 8], "uv": [76, 32], "mirror": true} + ] + }, + { + "name": "index_right_1", + "parent": "hand_right", + "pivot": [-69.5, 43.5, 8], + "rotation": [-12.51293, -18.75494, 27.54639], + "cubes": [ + {"origin": [-76.5, 42, 6.5], "size": [8, 3, 3], "inflate": 0.02, "uv": [70, 80], "mirror": true} + ] + }, + { + "name": "index_left_2", + "parent": "index_right_1", + "pivot": [-76.5, 45, 8], + "rotation": [0, 0, -50], + "cubes": [ + {"origin": [-88.5, 42, 6.5], "size": [12, 3, 3], "uv": [28, 78], "mirror": true} + ] + }, + { + "name": "pinky_left_1", + "parent": "hand_right", + "pivot": [-68.5, 43.5, 14], + "rotation": [23.5, 35, 32], + "cubes": [ + {"origin": [-75.5, 42, 12.5], "size": [8, 3, 3], "inflate": 0.02, "uv": [70, 80], "mirror": true} + ] + }, + { + "name": "pinky_left_2", + "parent": "pinky_left_1", + "pivot": [-75.5, 45, 14], + "rotation": [0, 0, -50], + "cubes": [ + {"origin": [-87.5, 42, 12.5], "size": [12, 3, 3], "uv": [28, 78], "mirror": true} + ] + }, + { + "name": "thumb_right_1", + "parent": "hand_right", + "pivot": [-64.5, 43.5, 7], + "rotation": [-98.59321, -59.75682, 101.14303], + "cubes": [ + {"origin": [-71.5, 42, 5.5], "size": [8, 3, 3], "inflate": 0.02, "uv": [70, 80], "mirror": true} + ] + }, + { + "name": "thumb_right_2", + "parent": "thumb_right_1", + "pivot": [-71.5, 45, 7], + "rotation": [0, 0, -50], + "cubes": [ + {"origin": [-83.5, 42, 5.5], "size": [12, 3, 3], "uv": [28, 78], "mirror": true} + ] + }, + { + "name": "small_arm_left_1", + "parent": "chest", + "pivot": [6, 31, 16.5], + "rotation": [25.5, 57, 45.5], + "cubes": [ + {"origin": [4.5, 29.5, 15], "size": [10, 3, 3], "inflate": 0.02, "uv": [78, 45]} + ] + }, + { + "name": "small_arm_left_2", + "parent": "small_arm_left_1", + "pivot": [14.5, 31, 18], + "rotation": [0, 27.5, 0], + "cubes": [ + {"origin": [14.5, 29.5, 15], "size": [3, 3, 3], "uv": [0, 54]} + ] + }, + { + "name": "small_arm_right_1", + "parent": "chest", + "pivot": [-6, 31, 16.5], + "rotation": [25.5, -57, -45.5], + "cubes": [ + {"origin": [-14.5, 29.5, 15], "size": [10, 3, 3], "inflate": 0.02, "uv": [101, 48], "mirror": true} + ] + }, + { + "name": "small_arm_right_2", + "parent": "small_arm_right_1", + "pivot": [-14.5, 31, 18], + "rotation": [0, -27.5, 0], + "cubes": [ + {"origin": [-17.5, 29.5, 15], "size": [3, 3, 3], "uv": [0, 54], "mirror": true} + ] + }, + { + "name": "leg_left_1", + "parent": "root", + "pivot": [3.75, 16.5, 16.5], + "rotation": [-25, 17, -25], + "cubes": [ + {"origin": [1.25, 5.5, 15], "size": [4, 12, 4], "inflate": 0.02, "uv": [54, 80]} + ] + }, + { + "name": "leg_left_2", + "parent": "leg_left_1", + "pivot": [3.75, 5.5, 15], + "rotation": [80, 0, 0], + "cubes": [ + {"origin": [1.25, -8.5, 15], "size": [4, 14, 4], "uv": [0, 0]} + ] + }, + { + "name": "foot_left", + "parent": "leg_left_2", + "pivot": [3.75, -8.5, 16], + "rotation": [-60, 20.5, 14], + "cubes": [ + {"origin": [1.25, -10.5, 12], "size": [4, 2, 4], "uv": [84, 16]} + ] + }, + { + "name": "leg_right_1", + "parent": "root", + "pivot": [-3.75, 16.5, 16.5], + "rotation": [-25, -17, 25], + "cubes": [ + {"origin": [-5.25, 5.5, 15], "size": [4, 12, 4], "inflate": 0.02, "uv": [54, 80], "mirror": true} + ] + }, + { + "name": "leg_right_2", + "parent": "leg_right_1", + "pivot": [-3.75, 5.5, 15], + "rotation": [80, 0, 0], + "cubes": [ + {"origin": [-5.25, -8.5, 15], "size": [4, 14, 4], "uv": [0, 0], "mirror": true} + ] + }, + { + "name": "foot_right", + "parent": "leg_right_2", + "pivot": [-3.75, -8.5, 16], + "rotation": [-60, -20.5, -14], + "cubes": [ + {"origin": [-5.25, -10.5, 12], "size": [4, 2, 4], "uv": [84, 16], "mirror": true} + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/lang/en_us.json b/src/main/resources/assets/hamsters/lang/en_us.json index 240288a..b48bd04 100644 --- a/src/main/resources/assets/hamsters/lang/en_us.json +++ b/src/main/resources/assets/hamsters/lang/en_us.json @@ -13,9 +13,74 @@ "block.hamsters.tunnel": "Tunnel", "block.hamsters.hamster_wheel": "Hamster Wheel", - "block.hamsters.blue_hamster_bowl": "Blue Hamster Bowl", - "block.hamsters.blue_hamster_bottle": "Blue Hamster Bottle", - "item.hamsters.hamster_ball": "Hamster Ball", + "block.hamsters.cage_panel": "Cage Panel", + "block.hamsters.red_cage_panel": "Red Cage Panel", + "block.hamsters.orange_cage_panel": "Orange Cage Panel", + "block.hamsters.yellow_cage_panel": "Yellow Cage Panel", + "block.hamsters.lime_cage_panel": "Lime Cage Panel", + "block.hamsters.green_cage_panel": "Green Cage Panel", + "block.hamsters.cyan_cage_panel": "Cyan Cage Panel", + "block.hamsters.blue_cage_panel": "Blue Cage Panel", + "block.hamsters.light_blue_cage_panel": "Light Blue Cage Panel", + "block.hamsters.pink_cage_panel": "Pink Cage Panel", + "block.hamsters.magenta_cage_panel": "Magenta Cage Panel", + "block.hamsters.purple_cage_panel": "Purple Cage Panel", + "block.hamsters.white_cage_panel": "White Cage Panel", + "block.hamsters.light_gray_cage_panel": "Light Gray Cage Panel", + "block.hamsters.gray_cage_panel": "Gray Cage Panel", + "block.hamsters.black_cage_panel": "Black Cage Panel", + "block.hamsters.brown_cage_panel": "Brown Cage Panel", + + "item.hamsters.red_hamster_ball": "Red Hamster Ball", + "item.hamsters.orange_hamster_ball": "Orange Hamster Ball", + "item.hamsters.yellow_hamster_ball": "Yellow Hamster Ball", + "item.hamsters.lime_hamster_ball": "Lime Hamster Ball", + "item.hamsters.green_hamster_ball": "Green Hamster Ball", + "item.hamsters.cyan_hamster_ball": "Cyan Hamster Ball", + "item.hamsters.blue_hamster_ball": "Blue Hamster Ball", + "item.hamsters.light_blue_hamster_ball": "Light Blue Hamster Ball", + "item.hamsters.pink_hamster_ball": "Pink Hamster Ball", + "item.hamsters.magenta_hamster_ball": "Magenta Hamster Ball", + "item.hamsters.purple_hamster_ball": "Purple Hamster Ball", + "item.hamsters.white_hamster_ball": "White Hamster Ball", + "item.hamsters.light_gray_hamster_ball": "Light Gray Hamster Ball", + "item.hamsters.gray_hamster_ball": "Gray Hamster Ball", + "item.hamsters.black_hamster_ball": "Black Hamster Ball", + "item.hamsters.brown_hamster_ball": "Brown Hamster Ball", + + "block.hamsters.red_hamster_bowl": "Red Hamster Bowl", + "block.hamsters.orange_hamster_bowl": "Orange Hamster Bowl", + "block.hamsters.yellow_hamster_bowl": "Yellow Hamster Bowl", + "block.hamsters.lime_hamster_bowl": "Lime Hamster Bowl", + "block.hamsters.green_hamster_bowl": "Green Hamster Bowl", + "block.hamsters.cyan_hamster_bowl": "Cyan Hamster Bowl", + "block.hamsters.blue_hamster_bowl": "Blue Hamster Bowl", + "block.hamsters.light_blue_hamster_bowl": "Light Blue Hamster Bowl", + "block.hamsters.pink_hamster_bowl": "Pink Hamster Bowl", + "block.hamsters.magenta_hamster_bowl": "Magenta Hamster Bowl", + "block.hamsters.purple_hamster_bowl": "Purple Hamster Bowl", + "block.hamsters.white_hamster_bowl": "White Hamster Bowl", + "block.hamsters.light_gray_hamster_bowl": "Light Gray Hamster Bowl", + "block.hamsters.gray_hamster_bowl": "Gray Hamster Bowl", + "block.hamsters.black_hamster_bowl": "Black Hamster Bowl", + "block.hamsters.brown_hamster_bowl": "Brown Hamster Bowl", + + "block.hamsters.red_hamster_bottle": "Red Hamster Bottle", + "block.hamsters.orange_hamster_bottle": "Orange Hamster Bottle", + "block.hamsters.yellow_hamster_bottle": "Yellow Hamster Bottle", + "block.hamsters.lime_hamster_bottle": "Lime Hamster Bottle", + "block.hamsters.green_hamster_bottle": "Green Hamster Bottle", + "block.hamsters.cyan_hamster_bottle": "Cyan Hamster Bottle", + "block.hamsters.blue_hamster_bottle": "Blue Hamster Bottle", + "block.hamsters.light_blue_hamster_bottle": "Light Blue Hamster Bottle", + "block.hamsters.pink_hamster_bottle": "Pink Hamster Bottle", + "block.hamsters.magenta_hamster_bottle": "Magenta Hamster Bottle", + "block.hamsters.purple_hamster_bottle": "Purple Hamster Bottle", + "block.hamsters.white_hamster_bottle": "White Hamster Bottle", + "block.hamsters.light_gray_hamster_bottle": "Light Gray Hamster Bottle", + "block.hamsters.gray_hamster_bottle": "Gray Hamster Bottle", + "block.hamsters.black_hamster_bottle": "Black Hamster Bottle", + "block.hamsters.brown_hamster_bottle": "Brown Hamster Bottle", "hamsters.subtitles.hamster.ambient": "Hamster squeaks", "hamsters.subtitles.hamster.hurt": "Hamster hurts", diff --git a/src/main/resources/assets/hamsters/models/block/bottle/black.json b/src/main/resources/assets/hamsters/models/block/bottle/black.json new file mode 100644 index 0000000..7d7b1f8 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/black.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/black" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/blue.json b/src/main/resources/assets/hamsters/models/block/bottle/blue.json index a6035a8..7922f47 100644 --- a/src/main/resources/assets/hamsters/models/block/bottle/blue.json +++ b/src/main/resources/assets/hamsters/models/block/bottle/blue.json @@ -1,6 +1,6 @@ { - "parent": "hamsters:block/template/bottle", - "textures": { - "bowl": "hamsters:block/bottle/blue" - } -} \ No newline at end of file + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/brown.json b/src/main/resources/assets/hamsters/models/block/bottle/brown.json new file mode 100644 index 0000000..a1b324d --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/brown.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/brown" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/cyan.json b/src/main/resources/assets/hamsters/models/block/bottle/cyan.json new file mode 100644 index 0000000..c645cc3 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/cyan.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/cyan" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/gray.json b/src/main/resources/assets/hamsters/models/block/bottle/gray.json new file mode 100644 index 0000000..2d2d337 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/gray.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/green.json b/src/main/resources/assets/hamsters/models/block/bottle/green.json new file mode 100644 index 0000000..831dd9b --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/green.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/green" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/light_blue.json b/src/main/resources/assets/hamsters/models/block/bottle/light_blue.json new file mode 100644 index 0000000..5c3ec89 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/light_blue.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/light_blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/light_gray.json b/src/main/resources/assets/hamsters/models/block/bottle/light_gray.json new file mode 100644 index 0000000..06eb133 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/light_gray.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/light_gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/lime.json b/src/main/resources/assets/hamsters/models/block/bottle/lime.json new file mode 100644 index 0000000..b46e408 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/lime.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/lime" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/magenta.json b/src/main/resources/assets/hamsters/models/block/bottle/magenta.json new file mode 100644 index 0000000..b4519e2 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/magenta.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/magenta" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/orange.json b/src/main/resources/assets/hamsters/models/block/bottle/orange.json new file mode 100644 index 0000000..f5691ab --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/orange.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/orange" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/pink.json b/src/main/resources/assets/hamsters/models/block/bottle/pink.json new file mode 100644 index 0000000..ad147e9 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/pink.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/pink" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/purple.json b/src/main/resources/assets/hamsters/models/block/bottle/purple.json new file mode 100644 index 0000000..7b0e0c2 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/purple.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/purple" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/red.json b/src/main/resources/assets/hamsters/models/block/bottle/red.json new file mode 100644 index 0000000..6ef7da5 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/red.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/red" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bottle/white.json b/src/main/resources/assets/hamsters/models/block/bottle/white.json new file mode 100644 index 0000000..cc9a615 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/white.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/white" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/bottle/wno.py b/src/main/resources/assets/hamsters/models/block/bottle/wno.py new file mode 100644 index 0000000..ab70171 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/wno.py @@ -0,0 +1,108 @@ +import json +import os + + +################################################################# + +def ensure_outputs_exist(): + for file in os.walk(_cwd + f"\\{input_path}\\"): + try: + os.mkdir(file[0].replace(input_path, output_path)) + except: + continue + +# these 2 are for looping/replacing through every single key and value in a dict +def dict_replace_value(d, old, new): + x = {} + for k, v in d.items(): + if isinstance(v, dict): + v = dict_replace_value(v, old, new) + elif isinstance(v, list): + v = list_replace_value(v, old, new) + elif isinstance(v, str): + if not old is None and not new is None: + v = v.replace(old, new) + v = v.replace("{namespace}",f"{namespace}") + x[k] = v + return x + +def list_replace_value(l, old, new): + x = [] + for e in l: + if isinstance(e, list): + e = list_replace_value(e, old, new) + elif isinstance(e, dict): + e = dict_replace_value(e, old, new) + elif isinstance(e, str): + if not old is None and not new is None: + e = e.replace(old, new) + e = e.replace("{namespace}",f"{namespace}") + x.append(e) + return x + +################################################################# + + +colors = [ + "orange", + "magenta", + "light_blue", + "yellow", + "lime", + "pink", + "gray", + "light_gray", + "cyan", + "purple", + "blue", + "brown", + "green", + "red", + "black" +] + +woods = [ + "spruce", + "birch", + "jungle", + "acacia", + "dark_oak", + "mangrove", + "crimson", + "warped", + "bamboo", + "cherry" +] + +namespace = "another_furniture" + +cwd = os.getcwd() + + +process_specific = input("process specific file (or enter to skip): ") +if process_specific == "oak": + typea = "oak" + files_to_process = [f for f in os.listdir(cwd) if os.path.isfile(os.path.join(cwd, f)) and f.startswith("oak")] +elif process_specific != "": + files_to_process = [process_specific + ".json"] +else: + typea = "white" + files_to_process = [f for f in os.listdir(cwd) if os.path.isfile(os.path.join(cwd, f)) and f.startswith("white")] + +for file in files_to_process: + should_process = input("should process file " + file + "? ") + if should_process == "" or should_process.lower() == "y" or should_process.lower() == "yes": + f = open(file, "r") + data = json.loads(f.read()) + if "white" in file: + for color in colors: + new_data = dict_replace_value(data, "white", color) + with open(file.replace("white", color), "w+") as f: + f.write(json.dumps(new_data, indent=4) + "\n") + elif "oak" in file: + for wood in woods: + new_data = dict_replace_value(data, "oak", wood) + with open(file.replace("oak", wood), "w+") as f: + f.write(json.dumps(new_data, indent=4) + "\n") + + diff --git a/src/main/resources/assets/hamsters/models/block/bottle/yellow.json b/src/main/resources/assets/hamsters/models/block/bottle/yellow.json new file mode 100644 index 0000000..70d1dae --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bottle/yellow.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bottle", + "textures": { + "all": "hamsters:block/bottle/yellow" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/black.json b/src/main/resources/assets/hamsters/models/block/bowl/black.json new file mode 100644 index 0000000..31485e1 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/black.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/black" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/blue.json b/src/main/resources/assets/hamsters/models/block/bowl/blue.json index 35d8f3e..60c0e8f 100644 --- a/src/main/resources/assets/hamsters/models/block/bowl/blue.json +++ b/src/main/resources/assets/hamsters/models/block/bowl/blue.json @@ -1,6 +1,6 @@ { - "parent": "hamsters:block/template/bowl", - "textures": { - "bowl": "hamsters:block/bowl/blue" - } -} \ No newline at end of file + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/brown.json b/src/main/resources/assets/hamsters/models/block/bowl/brown.json new file mode 100644 index 0000000..750ac6e --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/brown.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/brown" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/cyan.json b/src/main/resources/assets/hamsters/models/block/bowl/cyan.json new file mode 100644 index 0000000..fa0b84f --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/cyan.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/cyan" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/gray.json b/src/main/resources/assets/hamsters/models/block/bowl/gray.json new file mode 100644 index 0000000..8a9c364 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/gray.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/green.json b/src/main/resources/assets/hamsters/models/block/bowl/green.json new file mode 100644 index 0000000..5513e3c --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/green.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/green" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/light_blue.json b/src/main/resources/assets/hamsters/models/block/bowl/light_blue.json new file mode 100644 index 0000000..2be9a2f --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/light_blue.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/light_blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/light_gray.json b/src/main/resources/assets/hamsters/models/block/bowl/light_gray.json new file mode 100644 index 0000000..66122a9 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/light_gray.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/light_gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/lime.json b/src/main/resources/assets/hamsters/models/block/bowl/lime.json new file mode 100644 index 0000000..4281cc6 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/lime.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/lime" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/magenta.json b/src/main/resources/assets/hamsters/models/block/bowl/magenta.json new file mode 100644 index 0000000..392e803 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/magenta.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/magenta" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/orange.json b/src/main/resources/assets/hamsters/models/block/bowl/orange.json new file mode 100644 index 0000000..5ad46c9 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/orange.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/orange" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/pink.json b/src/main/resources/assets/hamsters/models/block/bowl/pink.json new file mode 100644 index 0000000..c0b04b5 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/pink.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/pink" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/purple.json b/src/main/resources/assets/hamsters/models/block/bowl/purple.json new file mode 100644 index 0000000..7d87e7f --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/purple.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/purple" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/red.json b/src/main/resources/assets/hamsters/models/block/bowl/red.json new file mode 100644 index 0000000..5d2c591 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/red.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/red" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/bowl/white.json b/src/main/resources/assets/hamsters/models/block/bowl/white.json new file mode 100644 index 0000000..d9b4ff2 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/white.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/white" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/bowl/wno.py b/src/main/resources/assets/hamsters/models/block/bowl/wno.py new file mode 100644 index 0000000..ab70171 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/wno.py @@ -0,0 +1,108 @@ +import json +import os + + +################################################################# + +def ensure_outputs_exist(): + for file in os.walk(_cwd + f"\\{input_path}\\"): + try: + os.mkdir(file[0].replace(input_path, output_path)) + except: + continue + +# these 2 are for looping/replacing through every single key and value in a dict +def dict_replace_value(d, old, new): + x = {} + for k, v in d.items(): + if isinstance(v, dict): + v = dict_replace_value(v, old, new) + elif isinstance(v, list): + v = list_replace_value(v, old, new) + elif isinstance(v, str): + if not old is None and not new is None: + v = v.replace(old, new) + v = v.replace("{namespace}",f"{namespace}") + x[k] = v + return x + +def list_replace_value(l, old, new): + x = [] + for e in l: + if isinstance(e, list): + e = list_replace_value(e, old, new) + elif isinstance(e, dict): + e = dict_replace_value(e, old, new) + elif isinstance(e, str): + if not old is None and not new is None: + e = e.replace(old, new) + e = e.replace("{namespace}",f"{namespace}") + x.append(e) + return x + +################################################################# + + +colors = [ + "orange", + "magenta", + "light_blue", + "yellow", + "lime", + "pink", + "gray", + "light_gray", + "cyan", + "purple", + "blue", + "brown", + "green", + "red", + "black" +] + +woods = [ + "spruce", + "birch", + "jungle", + "acacia", + "dark_oak", + "mangrove", + "crimson", + "warped", + "bamboo", + "cherry" +] + +namespace = "another_furniture" + +cwd = os.getcwd() + + +process_specific = input("process specific file (or enter to skip): ") +if process_specific == "oak": + typea = "oak" + files_to_process = [f for f in os.listdir(cwd) if os.path.isfile(os.path.join(cwd, f)) and f.startswith("oak")] +elif process_specific != "": + files_to_process = [process_specific + ".json"] +else: + typea = "white" + files_to_process = [f for f in os.listdir(cwd) if os.path.isfile(os.path.join(cwd, f)) and f.startswith("white")] + +for file in files_to_process: + should_process = input("should process file " + file + "? ") + if should_process == "" or should_process.lower() == "y" or should_process.lower() == "yes": + f = open(file, "r") + data = json.loads(f.read()) + if "white" in file: + for color in colors: + new_data = dict_replace_value(data, "white", color) + with open(file.replace("white", color), "w+") as f: + f.write(json.dumps(new_data, indent=4) + "\n") + elif "oak" in file: + for wood in woods: + new_data = dict_replace_value(data, "oak", wood) + with open(file.replace("oak", wood), "w+") as f: + f.write(json.dumps(new_data, indent=4) + "\n") + + diff --git a/src/main/resources/assets/hamsters/models/block/bowl/yellow.json b/src/main/resources/assets/hamsters/models/block/bowl/yellow.json new file mode 100644 index 0000000..c1b41e0 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/bowl/yellow.json @@ -0,0 +1,6 @@ +{ + "parent": "hamsters:block/template/bowl", + "textures": { + "all": "hamsters:block/bowl/yellow" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/black.json b/src/main/resources/assets/hamsters/models/block/cage_panel/black.json new file mode 100644 index 0000000..2be438a --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/black.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/black", + "particle": "hamsters:block/cage/black_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/black_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/black_bottom.json new file mode 100644 index 0000000..239f4ee --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/black_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/black_bottom", + "particle": "hamsters:block/cage/black_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/black_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/black_middle.json new file mode 100644 index 0000000..d81931c --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/black_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/black_middle", + "particle": "hamsters:block/cage/black_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/black_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/black_top.json new file mode 100644 index 0000000..054bac3 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/black_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/black_top", + "particle": "hamsters:block/cage/black_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/blue.json b/src/main/resources/assets/hamsters/models/block/cage_panel/blue.json new file mode 100644 index 0000000..7c82bd4 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/blue.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/blue", + "particle": "hamsters:block/cage/blue_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/blue_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/blue_bottom.json new file mode 100644 index 0000000..f60c398 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/blue_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/blue_bottom", + "particle": "hamsters:block/cage/blue_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/blue_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/blue_middle.json new file mode 100644 index 0000000..50a9336 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/blue_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/blue_middle", + "particle": "hamsters:block/cage/blue_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/blue_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/blue_top.json new file mode 100644 index 0000000..031ff92 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/blue_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/blue_top", + "particle": "hamsters:block/cage/blue_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/brown.json b/src/main/resources/assets/hamsters/models/block/cage_panel/brown.json new file mode 100644 index 0000000..d3e93fd --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/brown.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/brown", + "particle": "hamsters:block/cage/brown_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/brown_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/brown_bottom.json new file mode 100644 index 0000000..26cdd82 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/brown_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/brown_bottom", + "particle": "hamsters:block/cage/brown_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/brown_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/brown_middle.json new file mode 100644 index 0000000..8d76ee3 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/brown_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/brown_middle", + "particle": "hamsters:block/cage/brown_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/brown_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/brown_top.json new file mode 100644 index 0000000..604d617 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/brown_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/brown_top", + "particle": "hamsters:block/cage/brown_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/cage.json b/src/main/resources/assets/hamsters/models/block/cage_panel/cage.json new file mode 100644 index 0000000..4b6c8bd --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/cage.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/cage", + "particle": "hamsters:block/cage/cage_middle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/cage_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/cage_bottom.json new file mode 100644 index 0000000..173ee4d --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/cage_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/cage_bottom", + "particle": "hamsters:block/cage/cage_middle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/cage_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/cage_middle.json new file mode 100644 index 0000000..abf80f6 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/cage_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/cage_middle", + "particle": "hamsters:block/cage/cage_middle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/cage_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/cage_top.json new file mode 100644 index 0000000..3d8e325 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/cage_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/cage_top", + "particle": "hamsters:block/cage/cage_middle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/cyan.json b/src/main/resources/assets/hamsters/models/block/cage_panel/cyan.json new file mode 100644 index 0000000..2f72297 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/cyan.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/cyan", + "particle": "hamsters:block/cage/cyan_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/cyan_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/cyan_bottom.json new file mode 100644 index 0000000..f4de76f --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/cyan_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/cyan_bottom", + "particle": "hamsters:block/cage/cyan_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/cyan_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/cyan_middle.json new file mode 100644 index 0000000..c23df64 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/cyan_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/cyan_middle", + "particle": "hamsters:block/cage/cyan_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/cyan_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/cyan_top.json new file mode 100644 index 0000000..c354131 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/cyan_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/cyan_top", + "particle": "hamsters:block/cage/cyan_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/gray.json b/src/main/resources/assets/hamsters/models/block/cage_panel/gray.json new file mode 100644 index 0000000..abfa03c --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/gray.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/gray", + "particle": "hamsters:block/cage/gray_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/gray_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/gray_bottom.json new file mode 100644 index 0000000..d314899 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/gray_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/gray_bottom", + "particle": "hamsters:block/cage/gray_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/gray_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/gray_middle.json new file mode 100644 index 0000000..4ab1fb4 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/gray_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/gray_middle", + "particle": "hamsters:block/cage/gray_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/gray_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/gray_top.json new file mode 100644 index 0000000..f3cfb0b --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/gray_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/gray_top", + "particle": "hamsters:block/cage/gray_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/green.json b/src/main/resources/assets/hamsters/models/block/cage_panel/green.json new file mode 100644 index 0000000..564f5ec --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/green.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/green", + "particle": "hamsters:block/cage/green_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/green_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/green_bottom.json new file mode 100644 index 0000000..1ef8843 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/green_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/green_bottom", + "particle": "hamsters:block/cage/green_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/green_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/green_middle.json new file mode 100644 index 0000000..36db8c8 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/green_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/green_middle", + "particle": "hamsters:block/cage/green_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/green_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/green_top.json new file mode 100644 index 0000000..1732554 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/green_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/green_top", + "particle": "hamsters:block/cage/green_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue.json b/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue.json new file mode 100644 index 0000000..4e1ceb1 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/light_blue", + "particle": "hamsters:block/cage/light_blue_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue_bottom.json new file mode 100644 index 0000000..20392cf --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/light_blue_bottom", + "particle": "hamsters:block/cage/light_blue_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue_middle.json new file mode 100644 index 0000000..2544849 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/light_blue_middle", + "particle": "hamsters:block/cage/light_blue_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue_top.json new file mode 100644 index 0000000..9696ec9 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/light_blue_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/light_blue_top", + "particle": "hamsters:block/cage/light_blue_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray.json b/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray.json new file mode 100644 index 0000000..08289c1 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/light_gray", + "particle": "hamsters:block/cage/light_gray_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray_bottom.json new file mode 100644 index 0000000..fb8fb82 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/light_gray_bottom", + "particle": "hamsters:block/cage/light_gray_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray_middle.json new file mode 100644 index 0000000..18ba650 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/light_gray_middle", + "particle": "hamsters:block/cage/light_gray_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray_top.json new file mode 100644 index 0000000..43b134f --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/light_gray_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/light_gray_top", + "particle": "hamsters:block/cage/light_gray_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/lime.json b/src/main/resources/assets/hamsters/models/block/cage_panel/lime.json new file mode 100644 index 0000000..57763b0 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/lime.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/lime", + "particle": "hamsters:block/cage/lime_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/lime_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/lime_bottom.json new file mode 100644 index 0000000..35f8eeb --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/lime_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/lime_bottom", + "particle": "hamsters:block/cage/lime_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/lime_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/lime_middle.json new file mode 100644 index 0000000..052feba --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/lime_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/lime_middle", + "particle": "hamsters:block/cage/lime_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/lime_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/lime_top.json new file mode 100644 index 0000000..11e4925 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/lime_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/lime_top", + "particle": "hamsters:block/cage/lime_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/magenta.json b/src/main/resources/assets/hamsters/models/block/cage_panel/magenta.json new file mode 100644 index 0000000..5bf34eb --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/magenta.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/magenta", + "particle": "hamsters:block/cage/magenta_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/magenta_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/magenta_bottom.json new file mode 100644 index 0000000..7b0c87d --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/magenta_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/magenta_bottom", + "particle": "hamsters:block/cage/magenta_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/magenta_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/magenta_middle.json new file mode 100644 index 0000000..5aa6adf --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/magenta_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/magenta_middle", + "particle": "hamsters:block/cage/magenta_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/magenta_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/magenta_top.json new file mode 100644 index 0000000..d6a7a6a --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/magenta_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/magenta_top", + "particle": "hamsters:block/cage/magenta_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/orange.json b/src/main/resources/assets/hamsters/models/block/cage_panel/orange.json new file mode 100644 index 0000000..ce3813f --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/orange.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/orange", + "particle": "hamsters:block/cage/orange_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/orange_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/orange_bottom.json new file mode 100644 index 0000000..067063e --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/orange_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/orange_bottom", + "particle": "hamsters:block/cage/orange_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/orange_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/orange_middle.json new file mode 100644 index 0000000..8511f5a --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/orange_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/orange_middle", + "particle": "hamsters:block/cage/orange_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/orange_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/orange_top.json new file mode 100644 index 0000000..7b0e16d --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/orange_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/orange_top", + "particle": "hamsters:block/cage/orange_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/pink.json b/src/main/resources/assets/hamsters/models/block/cage_panel/pink.json new file mode 100644 index 0000000..0d083d3 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/pink.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/pink", + "particle": "hamsters:block/cage/pink_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/pink_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/pink_bottom.json new file mode 100644 index 0000000..b333a79 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/pink_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/pink_bottom", + "particle": "hamsters:block/cage/pink_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/pink_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/pink_middle.json new file mode 100644 index 0000000..a1cbc6b --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/pink_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/pink_middle", + "particle": "hamsters:block/cage/pink_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/pink_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/pink_top.json new file mode 100644 index 0000000..5d77005 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/pink_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/pink_top", + "particle": "hamsters:block/cage/pink_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/purple.json b/src/main/resources/assets/hamsters/models/block/cage_panel/purple.json new file mode 100644 index 0000000..54ff4aa --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/purple.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/purple", + "particle": "hamsters:block/cage/purple_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/purple_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/purple_bottom.json new file mode 100644 index 0000000..9a6e515 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/purple_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/purple_bottom", + "particle": "hamsters:block/cage/purple_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/purple_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/purple_middle.json new file mode 100644 index 0000000..ba0c677 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/purple_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/purple_middle", + "particle": "hamsters:block/cage/purple_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/purple_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/purple_top.json new file mode 100644 index 0000000..79d4a4c --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/purple_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/purple_top", + "particle": "hamsters:block/cage/purple_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/red.json b/src/main/resources/assets/hamsters/models/block/cage_panel/red.json new file mode 100644 index 0000000..cf4750e --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/red.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/red", + "particle": "hamsters:block/cage/red_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/red_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/red_bottom.json new file mode 100644 index 0000000..f56ef0b --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/red_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/red_bottom", + "particle": "hamsters:block/cage/red_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/red_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/red_middle.json new file mode 100644 index 0000000..5f95050 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/red_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/red_middle", + "particle": "hamsters:block/cage/red_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/red_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/red_top.json new file mode 100644 index 0000000..6f70373 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/red_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/red_top", + "particle": "hamsters:block/cage/red_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/white.json b/src/main/resources/assets/hamsters/models/block/cage_panel/white.json new file mode 100644 index 0000000..8157b57 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/white.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/white", + "particle": "hamsters:block/cage/white_middle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/white_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/white_bottom.json new file mode 100644 index 0000000..74f1791 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/white_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/white_bottom", + "particle": "hamsters:block/cage/white_middle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/white_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/white_middle.json new file mode 100644 index 0000000..e1334a6 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/white_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/white_middle", + "particle": "hamsters:block/cage/white_middle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/white_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/white_top.json new file mode 100644 index 0000000..e984634 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/white_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/white_top", + "particle": "hamsters:block/cage/white_middle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/wno.py b/src/main/resources/assets/hamsters/models/block/cage_panel/wno.py new file mode 100644 index 0000000..ab70171 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/wno.py @@ -0,0 +1,108 @@ +import json +import os + + +################################################################# + +def ensure_outputs_exist(): + for file in os.walk(_cwd + f"\\{input_path}\\"): + try: + os.mkdir(file[0].replace(input_path, output_path)) + except: + continue + +# these 2 are for looping/replacing through every single key and value in a dict +def dict_replace_value(d, old, new): + x = {} + for k, v in d.items(): + if isinstance(v, dict): + v = dict_replace_value(v, old, new) + elif isinstance(v, list): + v = list_replace_value(v, old, new) + elif isinstance(v, str): + if not old is None and not new is None: + v = v.replace(old, new) + v = v.replace("{namespace}",f"{namespace}") + x[k] = v + return x + +def list_replace_value(l, old, new): + x = [] + for e in l: + if isinstance(e, list): + e = list_replace_value(e, old, new) + elif isinstance(e, dict): + e = dict_replace_value(e, old, new) + elif isinstance(e, str): + if not old is None and not new is None: + e = e.replace(old, new) + e = e.replace("{namespace}",f"{namespace}") + x.append(e) + return x + +################################################################# + + +colors = [ + "orange", + "magenta", + "light_blue", + "yellow", + "lime", + "pink", + "gray", + "light_gray", + "cyan", + "purple", + "blue", + "brown", + "green", + "red", + "black" +] + +woods = [ + "spruce", + "birch", + "jungle", + "acacia", + "dark_oak", + "mangrove", + "crimson", + "warped", + "bamboo", + "cherry" +] + +namespace = "another_furniture" + +cwd = os.getcwd() + + +process_specific = input("process specific file (or enter to skip): ") +if process_specific == "oak": + typea = "oak" + files_to_process = [f for f in os.listdir(cwd) if os.path.isfile(os.path.join(cwd, f)) and f.startswith("oak")] +elif process_specific != "": + files_to_process = [process_specific + ".json"] +else: + typea = "white" + files_to_process = [f for f in os.listdir(cwd) if os.path.isfile(os.path.join(cwd, f)) and f.startswith("white")] + +for file in files_to_process: + should_process = input("should process file " + file + "? ") + if should_process == "" or should_process.lower() == "y" or should_process.lower() == "yes": + f = open(file, "r") + data = json.loads(f.read()) + if "white" in file: + for color in colors: + new_data = dict_replace_value(data, "white", color) + with open(file.replace("white", color), "w+") as f: + f.write(json.dumps(new_data, indent=4) + "\n") + elif "oak" in file: + for wood in woods: + new_data = dict_replace_value(data, "oak", wood) + with open(file.replace("oak", wood), "w+") as f: + f.write(json.dumps(new_data, indent=4) + "\n") + + diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/yellow.json b/src/main/resources/assets/hamsters/models/block/cage_panel/yellow.json new file mode 100644 index 0000000..ae1a768 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/yellow.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/yellow", + "particle": "hamsters:block/cage/yellow_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/yellow_bottom.json b/src/main/resources/assets/hamsters/models/block/cage_panel/yellow_bottom.json new file mode 100644 index 0000000..59eed02 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/yellow_bottom.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/yellow_bottom", + "particle": "hamsters:block/cage/yellow_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/yellow_middle.json b/src/main/resources/assets/hamsters/models/block/cage_panel/yellow_middle.json new file mode 100644 index 0000000..b8c3969 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/yellow_middle.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/yellow_middle", + "particle": "hamsters:block/cage/yellow_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/cage_panel/yellow_top.json b/src/main/resources/assets/hamsters/models/block/cage_panel/yellow_top.json new file mode 100644 index 0000000..42c9b1b --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/cage_panel/yellow_top.json @@ -0,0 +1,7 @@ +{ + "parent": "hamsters:block/template/cage_panel", + "textures": { + "all": "hamsters:block/cage/yellow_top", + "particle": "hamsters:block/cage/yellow_middle" + } +} diff --git a/src/main/resources/assets/hamsters/models/block/template/bowl.json b/src/main/resources/assets/hamsters/models/block/template/bowl.json index a0e2645..1ad4b73 100644 --- a/src/main/resources/assets/hamsters/models/block/template/bowl.json +++ b/src/main/resources/assets/hamsters/models/block/template/bowl.json @@ -2,7 +2,7 @@ "credit": "Made with Blockbench", "texture_size": [32, 32], "textures": { - "bowl": "hamsters:block/bowl/blue" + "all": "hamsters:block/bowl/blue" }, "elements": [ { @@ -10,12 +10,12 @@ "to": [13, 3, 13], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, "faces": { - "north": {"uv": [5, 0, 10, 1.5], "texture": "#bowl"}, - "east": {"uv": [5, 0, 10, 1.5], "texture": "#bowl"}, - "south": {"uv": [5, 0, 10, 1.5], "texture": "#bowl"}, - "west": {"uv": [5, 0, 10, 1.5], "texture": "#bowl"}, - "up": {"uv": [5, 5, 0, 0], "texture": "#bowl"}, - "down": {"uv": [5, 5, 0, 10], "texture": "#bowl"} + "north": {"uv": [5, 0, 10, 1.5], "texture": "#all"}, + "east": {"uv": [5, 0, 10, 1.5], "texture": "#all"}, + "south": {"uv": [5, 0, 10, 1.5], "texture": "#all"}, + "west": {"uv": [5, 0, 10, 1.5], "texture": "#all"}, + "up": {"uv": [5, 5, 0, 0], "texture": "#all"}, + "down": {"uv": [5, 5, 0, 10], "texture": "#all"} } }, { @@ -23,12 +23,12 @@ "to": [4, 3, 12], "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 8]}, "faces": { - "north": {"uv": [5.5, 0, 9.5, 1.5], "texture": "#bowl"}, - "east": {"uv": [5.5, 0, 9.5, 1.5], "texture": "#bowl"}, - "south": {"uv": [5.5, 0, 9.5, 1.5], "texture": "#bowl"}, - "west": {"uv": [5.5, 0, 9.5, 1.5], "texture": "#bowl"}, - "up": {"uv": [5, 5, 0, 0], "texture": "#bowl"}, - "down": {"uv": [5, 5, 0, 10], "texture": "#bowl"} + "north": {"uv": [5.5, 0, 9.5, 1.5], "texture": "#all"}, + "east": {"uv": [5.5, 0, 9.5, 1.5], "texture": "#all"}, + "south": {"uv": [5.5, 0, 9.5, 1.5], "texture": "#all"}, + "west": {"uv": [5.5, 0, 9.5, 1.5], "texture": "#all"}, + "up": {"uv": [5, 5, 0, 0], "texture": "#all"}, + "down": {"uv": [5, 5, 0, 10], "texture": "#all"} } } ], diff --git a/src/main/resources/assets/hamsters/models/block/template/cage_panel.json b/src/main/resources/assets/hamsters/models/block/template/cage_panel.json new file mode 100644 index 0000000..125bd72 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/template/cage_panel.json @@ -0,0 +1,53 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "particle": "hamsters:block/cage/cage_middle", + "all": "hamsters:block/cage/cage_middle" + }, + "elements": [ + { + "from": [0, 0, 15], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 14]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#all"}, + "east": {"uv": [11, 0, 12, 16], "texture": "#all", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "south"}, + "west": {"uv": [3, 0, 4, 16], "texture": "#all", "cullface": "west"}, + "up": {"uv": [16, 0, 0, 1], "texture": "#all", "cullface": "up"}, + "down": {"uv": [16, 15, 0, 16], "texture": "#all", "cullface": "down"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/template/cage_panel_bottom.json b/src/main/resources/assets/hamsters/models/block/template/cage_panel_bottom.json new file mode 100644 index 0000000..b951683 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/template/cage_panel_bottom.json @@ -0,0 +1,52 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "particle": "hamsters:block/cage_panel/blue", + "all": "hamsters:block/cage_panel/blue" + }, + "elements": [ + { + "from": [0, 0, 15], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 14]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#all"}, + "east": {"uv": [15, 0, 16, 16], "texture": "#all", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#all", "cullface": "south"}, + "west": {"uv": [0, 0, 1, 16], "texture": "#all", "cullface": "west"}, + "down": {"uv": [0, 15, 16, 16], "texture": "#all", "cullface": "down"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/template/cage_panel_top.json b/src/main/resources/assets/hamsters/models/block/template/cage_panel_top.json new file mode 100644 index 0000000..05a5723 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/block/template/cage_panel_top.json @@ -0,0 +1,37 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "particle": "hamsters:block/cage_panel/blue" + }, + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/block/6_ways.json b/src/main/resources/assets/hamsters/models/block/tunnel/6_ways.json similarity index 100% rename from src/main/resources/assets/hamsters/models/block/6_ways.json rename to src/main/resources/assets/hamsters/models/block/tunnel/6_ways.json diff --git a/src/main/resources/assets/hamsters/models/block/base.json b/src/main/resources/assets/hamsters/models/block/tunnel/base.json similarity index 100% rename from src/main/resources/assets/hamsters/models/block/base.json rename to src/main/resources/assets/hamsters/models/block/tunnel/base.json diff --git a/src/main/resources/assets/hamsters/models/block/corner.json b/src/main/resources/assets/hamsters/models/block/tunnel/corner.json similarity index 100% rename from src/main/resources/assets/hamsters/models/block/corner.json rename to src/main/resources/assets/hamsters/models/block/tunnel/corner.json diff --git a/src/main/resources/assets/hamsters/models/block/one_way.json b/src/main/resources/assets/hamsters/models/block/tunnel/one_way.json similarity index 100% rename from src/main/resources/assets/hamsters/models/block/one_way.json rename to src/main/resources/assets/hamsters/models/block/tunnel/one_way.json diff --git a/src/main/resources/assets/hamsters/models/block/side.json b/src/main/resources/assets/hamsters/models/block/tunnel/side.json similarity index 100% rename from src/main/resources/assets/hamsters/models/block/side.json rename to src/main/resources/assets/hamsters/models/block/tunnel/side.json diff --git a/src/main/resources/assets/hamsters/models/block/t_shape.json b/src/main/resources/assets/hamsters/models/block/tunnel/t_shape.json similarity index 100% rename from src/main/resources/assets/hamsters/models/block/t_shape.json rename to src/main/resources/assets/hamsters/models/block/tunnel/t_shape.json diff --git a/src/main/resources/assets/hamsters/models/block/tunnel.json b/src/main/resources/assets/hamsters/models/block/tunnel/tunnel.json similarity index 100% rename from src/main/resources/assets/hamsters/models/block/tunnel.json rename to src/main/resources/assets/hamsters/models/block/tunnel/tunnel.json diff --git a/src/main/resources/assets/hamsters/models/item/black_cage_panel.json b/src/main/resources/assets/hamsters/models/item/black_cage_panel.json new file mode 100644 index 0000000..f3f4fc5 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/black_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/black" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/black_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/black_hamster_ball.json new file mode 100644 index 0000000..51725f5 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/black_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/black" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/black_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/black_hamster_bottle.json new file mode 100644 index 0000000..eb28869 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/black_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/black" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/black_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/black_hamster_bowl.json new file mode 100644 index 0000000..4993450 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/black_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/black" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/blue_cage_panel.json b/src/main/resources/assets/hamsters/models/item/blue_cage_panel.json new file mode 100644 index 0000000..fa28dba --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/blue_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/blue_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/blue_hamster_ball.json new file mode 100644 index 0000000..1fb4fb8 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/blue_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/blue_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/blue_hamster_bottle.json index 122d362..9010314 100644 --- a/src/main/resources/assets/hamsters/models/item/blue_hamster_bottle.json +++ b/src/main/resources/assets/hamsters/models/item/blue_hamster_bottle.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hamsters:item/blue_hamster_bottle" - } -} \ No newline at end of file + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/blue_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/blue_hamster_bowl.json index 7ccd3d7..1bb62ec 100644 --- a/src/main/resources/assets/hamsters/models/item/blue_hamster_bowl.json +++ b/src/main/resources/assets/hamsters/models/item/blue_hamster_bowl.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:item/generated", - "textures": { - "layer0": "hamsters:item/blue_hamster_bowl" - } -} \ No newline at end of file + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/brown_cage_panel.json b/src/main/resources/assets/hamsters/models/item/brown_cage_panel.json new file mode 100644 index 0000000..77c9fa2 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/brown_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/brown" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/brown_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/brown_hamster_ball.json new file mode 100644 index 0000000..437c9b4 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/brown_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/brown" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/brown_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/brown_hamster_bottle.json new file mode 100644 index 0000000..1d32975 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/brown_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/brown" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/brown_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/brown_hamster_bowl.json new file mode 100644 index 0000000..d3df5d0 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/brown_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/brown" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/cage_panel.json b/src/main/resources/assets/hamsters/models/item/cage_panel.json new file mode 100644 index 0000000..5396963 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/cage" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/cyan_cage_panel.json b/src/main/resources/assets/hamsters/models/item/cyan_cage_panel.json new file mode 100644 index 0000000..98478ce --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/cyan_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/cyan" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/cyan_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/cyan_hamster_ball.json new file mode 100644 index 0000000..bbcdf2b --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/cyan_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/cyan" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/cyan_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/cyan_hamster_bottle.json new file mode 100644 index 0000000..1ceb9f9 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/cyan_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/cyan" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/cyan_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/cyan_hamster_bowl.json new file mode 100644 index 0000000..621c49d --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/cyan_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/cyan" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/gray_cage_panel.json b/src/main/resources/assets/hamsters/models/item/gray_cage_panel.json new file mode 100644 index 0000000..c0d8564 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/gray_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/gray_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/gray_hamster_ball.json new file mode 100644 index 0000000..6b7e84c --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/gray_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/gray_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/gray_hamster_bottle.json new file mode 100644 index 0000000..dcc2ade --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/gray_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/gray_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/gray_hamster_bowl.json new file mode 100644 index 0000000..743add7 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/gray_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/green_cage_panel.json b/src/main/resources/assets/hamsters/models/item/green_cage_panel.json new file mode 100644 index 0000000..dc8fc6a --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/green_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/green" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/green_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/green_hamster_ball.json new file mode 100644 index 0000000..6f35e06 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/green_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/green" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/green_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/green_hamster_bottle.json new file mode 100644 index 0000000..0fd2ece --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/green_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/green" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/green_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/green_hamster_bowl.json new file mode 100644 index 0000000..041ae21 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/green_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/green" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/light_blue_cage_panel.json b/src/main/resources/assets/hamsters/models/item/light_blue_cage_panel.json new file mode 100644 index 0000000..3387fc2 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/light_blue_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/light_blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/light_blue_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/light_blue_hamster_ball.json new file mode 100644 index 0000000..a6fb6da --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/light_blue_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/light_blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/light_blue_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/light_blue_hamster_bottle.json new file mode 100644 index 0000000..9cc1374 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/light_blue_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/light_blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/light_blue_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/light_blue_hamster_bowl.json new file mode 100644 index 0000000..035223f --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/light_blue_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/light_blue" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/light_gray_cage_panel.json b/src/main/resources/assets/hamsters/models/item/light_gray_cage_panel.json new file mode 100644 index 0000000..d2a9161 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/light_gray_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/light_gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/light_gray_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/light_gray_hamster_ball.json new file mode 100644 index 0000000..0ef4e12 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/light_gray_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/light_gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/light_gray_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/light_gray_hamster_bottle.json new file mode 100644 index 0000000..3d53522 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/light_gray_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/light_gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/light_gray_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/light_gray_hamster_bowl.json new file mode 100644 index 0000000..50bf159 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/light_gray_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/light_gray" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/lime_cage_panel.json b/src/main/resources/assets/hamsters/models/item/lime_cage_panel.json new file mode 100644 index 0000000..c773872 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/lime_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/lime" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/lime_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/lime_hamster_ball.json new file mode 100644 index 0000000..dba0d33 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/lime_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/lime" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/lime_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/lime_hamster_bottle.json new file mode 100644 index 0000000..4e7c05b --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/lime_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/lime" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/lime_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/lime_hamster_bowl.json new file mode 100644 index 0000000..fc983f2 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/lime_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/lime" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/magenta_cage_panel.json b/src/main/resources/assets/hamsters/models/item/magenta_cage_panel.json new file mode 100644 index 0000000..04966eb --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/magenta_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/magenta" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/magenta_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/magenta_hamster_ball.json new file mode 100644 index 0000000..331a59a --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/magenta_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/magenta" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/magenta_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/magenta_hamster_bottle.json new file mode 100644 index 0000000..74c2669 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/magenta_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/magenta" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/magenta_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/magenta_hamster_bowl.json new file mode 100644 index 0000000..8575ebc --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/magenta_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/magenta" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/orange_cage_panel.json b/src/main/resources/assets/hamsters/models/item/orange_cage_panel.json new file mode 100644 index 0000000..a5c7e0e --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/orange_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/orange" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/orange_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/orange_hamster_ball.json new file mode 100644 index 0000000..9dd49c3 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/orange_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/orange" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/orange_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/orange_hamster_bottle.json new file mode 100644 index 0000000..d64c23a --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/orange_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/orange" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/orange_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/orange_hamster_bowl.json new file mode 100644 index 0000000..48d3ba8 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/orange_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/orange" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/pink_cage_panel.json b/src/main/resources/assets/hamsters/models/item/pink_cage_panel.json new file mode 100644 index 0000000..04c74ae --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/pink_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/pink" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/pink_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/pink_hamster_ball.json new file mode 100644 index 0000000..ec2bbb2 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/pink_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/pink" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/pink_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/pink_hamster_bottle.json new file mode 100644 index 0000000..f6b404b --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/pink_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/pink" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/pink_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/pink_hamster_bowl.json new file mode 100644 index 0000000..2f78775 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/pink_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/pink" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/purple_cage_panel.json b/src/main/resources/assets/hamsters/models/item/purple_cage_panel.json new file mode 100644 index 0000000..128f56f --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/purple_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/purple" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/purple_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/purple_hamster_ball.json new file mode 100644 index 0000000..e72bc34 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/purple_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/purple" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/purple_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/purple_hamster_bottle.json new file mode 100644 index 0000000..a539e7e --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/purple_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/purple" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/purple_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/purple_hamster_bowl.json new file mode 100644 index 0000000..abb47ec --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/purple_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/purple" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/red_cage_panel.json b/src/main/resources/assets/hamsters/models/item/red_cage_panel.json new file mode 100644 index 0000000..8ab4c2f --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/red_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/red" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/red_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/red_hamster_ball.json new file mode 100644 index 0000000..df6e5d8 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/red_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/red" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/red_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/red_hamster_bottle.json new file mode 100644 index 0000000..5c40738 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/red_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/red" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/red_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/red_hamster_bowl.json new file mode 100644 index 0000000..1708f4a --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/red_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/red" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/white_cage_panel.json b/src/main/resources/assets/hamsters/models/item/white_cage_panel.json new file mode 100644 index 0000000..3e48c22 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/white_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/white" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/item/white_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/white_hamster_ball.json new file mode 100644 index 0000000..fb036de --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/white_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/white" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/item/white_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/white_hamster_bottle.json new file mode 100644 index 0000000..4bf69d2 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/white_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/white" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/item/white_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/white_hamster_bowl.json new file mode 100644 index 0000000..58c8b7e --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/white_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/white" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hamsters/models/item/wno.py b/src/main/resources/assets/hamsters/models/item/wno.py new file mode 100644 index 0000000..ab70171 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/wno.py @@ -0,0 +1,108 @@ +import json +import os + + +################################################################# + +def ensure_outputs_exist(): + for file in os.walk(_cwd + f"\\{input_path}\\"): + try: + os.mkdir(file[0].replace(input_path, output_path)) + except: + continue + +# these 2 are for looping/replacing through every single key and value in a dict +def dict_replace_value(d, old, new): + x = {} + for k, v in d.items(): + if isinstance(v, dict): + v = dict_replace_value(v, old, new) + elif isinstance(v, list): + v = list_replace_value(v, old, new) + elif isinstance(v, str): + if not old is None and not new is None: + v = v.replace(old, new) + v = v.replace("{namespace}",f"{namespace}") + x[k] = v + return x + +def list_replace_value(l, old, new): + x = [] + for e in l: + if isinstance(e, list): + e = list_replace_value(e, old, new) + elif isinstance(e, dict): + e = dict_replace_value(e, old, new) + elif isinstance(e, str): + if not old is None and not new is None: + e = e.replace(old, new) + e = e.replace("{namespace}",f"{namespace}") + x.append(e) + return x + +################################################################# + + +colors = [ + "orange", + "magenta", + "light_blue", + "yellow", + "lime", + "pink", + "gray", + "light_gray", + "cyan", + "purple", + "blue", + "brown", + "green", + "red", + "black" +] + +woods = [ + "spruce", + "birch", + "jungle", + "acacia", + "dark_oak", + "mangrove", + "crimson", + "warped", + "bamboo", + "cherry" +] + +namespace = "another_furniture" + +cwd = os.getcwd() + + +process_specific = input("process specific file (or enter to skip): ") +if process_specific == "oak": + typea = "oak" + files_to_process = [f for f in os.listdir(cwd) if os.path.isfile(os.path.join(cwd, f)) and f.startswith("oak")] +elif process_specific != "": + files_to_process = [process_specific + ".json"] +else: + typea = "white" + files_to_process = [f for f in os.listdir(cwd) if os.path.isfile(os.path.join(cwd, f)) and f.startswith("white")] + +for file in files_to_process: + should_process = input("should process file " + file + "? ") + if should_process == "" or should_process.lower() == "y" or should_process.lower() == "yes": + f = open(file, "r") + data = json.loads(f.read()) + if "white" in file: + for color in colors: + new_data = dict_replace_value(data, "white", color) + with open(file.replace("white", color), "w+") as f: + f.write(json.dumps(new_data, indent=4) + "\n") + elif "oak" in file: + for wood in woods: + new_data = dict_replace_value(data, "oak", wood) + with open(file.replace("oak", wood), "w+") as f: + f.write(json.dumps(new_data, indent=4) + "\n") + + diff --git a/src/main/resources/assets/hamsters/models/item/yellow_cage_panel.json b/src/main/resources/assets/hamsters/models/item/yellow_cage_panel.json new file mode 100644 index 0000000..86c58a7 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/yellow_cage_panel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "hamsters:block/cage/yellow" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/yellow_hamster_ball.json b/src/main/resources/assets/hamsters/models/item/yellow_hamster_ball.json new file mode 100644 index 0000000..72feb70 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/yellow_hamster_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/ball/yellow" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/yellow_hamster_bottle.json b/src/main/resources/assets/hamsters/models/item/yellow_hamster_bottle.json new file mode 100644 index 0000000..5eefa08 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/yellow_hamster_bottle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bottle/yellow" + } +} diff --git a/src/main/resources/assets/hamsters/models/item/yellow_hamster_bowl.json b/src/main/resources/assets/hamsters/models/item/yellow_hamster_bowl.json new file mode 100644 index 0000000..ad2dfe1 --- /dev/null +++ b/src/main/resources/assets/hamsters/models/item/yellow_hamster_bowl.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "hamsters:item/bowl/yellow" + } +} diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/black.png b/src/main/resources/assets/hamsters/textures/block/bottle/black.png new file mode 100644 index 0000000..616755f Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/black.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/blue.png b/src/main/resources/assets/hamsters/textures/block/bottle/blue.png index c7bc7d7..acbbb4c 100644 Binary files a/src/main/resources/assets/hamsters/textures/block/bottle/blue.png and b/src/main/resources/assets/hamsters/textures/block/bottle/blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/brown.png b/src/main/resources/assets/hamsters/textures/block/bottle/brown.png new file mode 100644 index 0000000..f6e9684 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/brown.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/cyan.png b/src/main/resources/assets/hamsters/textures/block/bottle/cyan.png new file mode 100644 index 0000000..e9bedbf Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/cyan.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/gray.png b/src/main/resources/assets/hamsters/textures/block/bottle/gray.png new file mode 100644 index 0000000..c034c38 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/green.png b/src/main/resources/assets/hamsters/textures/block/bottle/green.png new file mode 100644 index 0000000..15c578a Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/green.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/light_blue.png b/src/main/resources/assets/hamsters/textures/block/bottle/light_blue.png new file mode 100644 index 0000000..bba04a9 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/light_blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/light_gray.png b/src/main/resources/assets/hamsters/textures/block/bottle/light_gray.png new file mode 100644 index 0000000..de85a85 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/light_gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/lime.png b/src/main/resources/assets/hamsters/textures/block/bottle/lime.png new file mode 100644 index 0000000..ba3b419 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/lime.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/magenta.png b/src/main/resources/assets/hamsters/textures/block/bottle/magenta.png new file mode 100644 index 0000000..6cddfb6 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/magenta.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/orange.png b/src/main/resources/assets/hamsters/textures/block/bottle/orange.png new file mode 100644 index 0000000..170007a Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/orange.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/pink.png b/src/main/resources/assets/hamsters/textures/block/bottle/pink.png new file mode 100644 index 0000000..13be84c Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/pink.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/purple.png b/src/main/resources/assets/hamsters/textures/block/bottle/purple.png new file mode 100644 index 0000000..b50c597 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/purple.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/red.png b/src/main/resources/assets/hamsters/textures/block/bottle/red.png new file mode 100644 index 0000000..a73b8c2 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/red.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/white.png b/src/main/resources/assets/hamsters/textures/block/bottle/white.png new file mode 100644 index 0000000..bb04531 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/white.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bottle/yellow.png b/src/main/resources/assets/hamsters/textures/block/bottle/yellow.png new file mode 100644 index 0000000..1d401a4 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bottle/yellow.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/black.png b/src/main/resources/assets/hamsters/textures/block/bowl/black.png new file mode 100644 index 0000000..c348661 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/black.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/blue.png b/src/main/resources/assets/hamsters/textures/block/bowl/blue.png index ebe52e4..08839d9 100644 Binary files a/src/main/resources/assets/hamsters/textures/block/bowl/blue.png and b/src/main/resources/assets/hamsters/textures/block/bowl/blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/brown.png b/src/main/resources/assets/hamsters/textures/block/bowl/brown.png new file mode 100644 index 0000000..35e6a32 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/brown.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/cyan.png b/src/main/resources/assets/hamsters/textures/block/bowl/cyan.png new file mode 100644 index 0000000..222e4cf Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/cyan.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/gray.png b/src/main/resources/assets/hamsters/textures/block/bowl/gray.png new file mode 100644 index 0000000..47b6020 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/green.png b/src/main/resources/assets/hamsters/textures/block/bowl/green.png new file mode 100644 index 0000000..ac640f0 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/green.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/light_blue.png b/src/main/resources/assets/hamsters/textures/block/bowl/light_blue.png new file mode 100644 index 0000000..228e3c8 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/light_blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/light_gray.png b/src/main/resources/assets/hamsters/textures/block/bowl/light_gray.png new file mode 100644 index 0000000..f42785c Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/light_gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/lime.png b/src/main/resources/assets/hamsters/textures/block/bowl/lime.png new file mode 100644 index 0000000..ebb2121 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/lime.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/magenta.png b/src/main/resources/assets/hamsters/textures/block/bowl/magenta.png new file mode 100644 index 0000000..03c53cd Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/magenta.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/orange.png b/src/main/resources/assets/hamsters/textures/block/bowl/orange.png new file mode 100644 index 0000000..e81fd80 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/orange.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/pink.png b/src/main/resources/assets/hamsters/textures/block/bowl/pink.png new file mode 100644 index 0000000..a710d12 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/pink.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/purple.png b/src/main/resources/assets/hamsters/textures/block/bowl/purple.png new file mode 100644 index 0000000..8c819ca Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/purple.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/red.png b/src/main/resources/assets/hamsters/textures/block/bowl/red.png new file mode 100644 index 0000000..58174fc Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/red.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/white.png b/src/main/resources/assets/hamsters/textures/block/bowl/white.png new file mode 100644 index 0000000..d186137 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/white.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/bowl/yellow.png b/src/main/resources/assets/hamsters/textures/block/bowl/yellow.png new file mode 100644 index 0000000..a056bb8 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/bowl/yellow.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/black.png b/src/main/resources/assets/hamsters/textures/block/cage/black.png new file mode 100644 index 0000000..b1a5710 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/black.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/black_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/black_bottom.png new file mode 100644 index 0000000..8938a6d Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/black_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/black_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/black_middle.png new file mode 100644 index 0000000..75c47fd Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/black_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/black_top.png b/src/main/resources/assets/hamsters/textures/block/cage/black_top.png new file mode 100644 index 0000000..3cb440d Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/black_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/blue.png b/src/main/resources/assets/hamsters/textures/block/cage/blue.png new file mode 100644 index 0000000..37c86e3 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/blue_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/blue_bottom.png new file mode 100644 index 0000000..777af33 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/blue_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/blue_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/blue_middle.png new file mode 100644 index 0000000..d1cf97a Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/blue_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/blue_top.png b/src/main/resources/assets/hamsters/textures/block/cage/blue_top.png new file mode 100644 index 0000000..c8516d8 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/blue_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/brown.png b/src/main/resources/assets/hamsters/textures/block/cage/brown.png new file mode 100644 index 0000000..5652715 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/brown.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/brown_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/brown_bottom.png new file mode 100644 index 0000000..439ad0b Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/brown_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/brown_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/brown_middle.png new file mode 100644 index 0000000..6a52c3a Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/brown_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/brown_top.png b/src/main/resources/assets/hamsters/textures/block/cage/brown_top.png new file mode 100644 index 0000000..8533aec Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/brown_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/cage.png b/src/main/resources/assets/hamsters/textures/block/cage/cage.png new file mode 100644 index 0000000..2f085e2 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/cage.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/cage_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/cage_bottom.png new file mode 100644 index 0000000..01cc4fe Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/cage_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/cage_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/cage_middle.png new file mode 100644 index 0000000..366cd85 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/cage_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/cage_top.png b/src/main/resources/assets/hamsters/textures/block/cage/cage_top.png new file mode 100644 index 0000000..a2976ac Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/cage_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/cyan.png b/src/main/resources/assets/hamsters/textures/block/cage/cyan.png new file mode 100644 index 0000000..a7e91ac Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/cyan.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/cyan_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/cyan_bottom.png new file mode 100644 index 0000000..2eaf066 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/cyan_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/cyan_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/cyan_middle.png new file mode 100644 index 0000000..6e197ac Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/cyan_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/cyan_top.png b/src/main/resources/assets/hamsters/textures/block/cage/cyan_top.png new file mode 100644 index 0000000..bad82bb Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/cyan_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/gray.png b/src/main/resources/assets/hamsters/textures/block/cage/gray.png new file mode 100644 index 0000000..186d60d Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/gray_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/gray_bottom.png new file mode 100644 index 0000000..673533f Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/gray_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/gray_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/gray_middle.png new file mode 100644 index 0000000..32f4563 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/gray_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/gray_top.png b/src/main/resources/assets/hamsters/textures/block/cage/gray_top.png new file mode 100644 index 0000000..a2dfc86 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/gray_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/green.png b/src/main/resources/assets/hamsters/textures/block/cage/green.png new file mode 100644 index 0000000..cfdf8f1 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/green.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/green_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/green_bottom.png new file mode 100644 index 0000000..3f8c9c6 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/green_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/green_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/green_middle.png new file mode 100644 index 0000000..8cdd931 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/green_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/green_top.png b/src/main/resources/assets/hamsters/textures/block/cage/green_top.png new file mode 100644 index 0000000..9add577 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/green_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/light_blue.png b/src/main/resources/assets/hamsters/textures/block/cage/light_blue.png new file mode 100644 index 0000000..9a8dc59 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/light_blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/light_blue_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/light_blue_bottom.png new file mode 100644 index 0000000..73f3a45 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/light_blue_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/light_blue_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/light_blue_middle.png new file mode 100644 index 0000000..1b8c18b Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/light_blue_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/light_blue_top.png b/src/main/resources/assets/hamsters/textures/block/cage/light_blue_top.png new file mode 100644 index 0000000..64f11c2 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/light_blue_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/light_gray.png b/src/main/resources/assets/hamsters/textures/block/cage/light_gray.png new file mode 100644 index 0000000..0b3dcb2 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/light_gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/light_gray_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/light_gray_bottom.png new file mode 100644 index 0000000..62a0e00 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/light_gray_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/light_gray_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/light_gray_middle.png new file mode 100644 index 0000000..654dd67 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/light_gray_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/light_gray_top.png b/src/main/resources/assets/hamsters/textures/block/cage/light_gray_top.png new file mode 100644 index 0000000..9840a35 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/light_gray_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/lime.png b/src/main/resources/assets/hamsters/textures/block/cage/lime.png new file mode 100644 index 0000000..63551ff Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/lime.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/lime_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/lime_bottom.png new file mode 100644 index 0000000..ed9c2f4 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/lime_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/lime_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/lime_middle.png new file mode 100644 index 0000000..fc53d3f Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/lime_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/lime_top.png b/src/main/resources/assets/hamsters/textures/block/cage/lime_top.png new file mode 100644 index 0000000..c6c5181 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/lime_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/magenta.png b/src/main/resources/assets/hamsters/textures/block/cage/magenta.png new file mode 100644 index 0000000..c19a8df Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/magenta.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/magenta_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/magenta_middle.png new file mode 100644 index 0000000..c11741d Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/magenta_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/magenta_top.png b/src/main/resources/assets/hamsters/textures/block/cage/magenta_top.png new file mode 100644 index 0000000..ef57897 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/magenta_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/mangenta_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/mangenta_bottom.png new file mode 100644 index 0000000..1e43594 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/mangenta_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/orange.png b/src/main/resources/assets/hamsters/textures/block/cage/orange.png new file mode 100644 index 0000000..1d17964 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/orange.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/orange_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/orange_bottom.png new file mode 100644 index 0000000..06337e6 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/orange_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/orange_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/orange_middle.png new file mode 100644 index 0000000..b170e00 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/orange_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/orange_top.png b/src/main/resources/assets/hamsters/textures/block/cage/orange_top.png new file mode 100644 index 0000000..25ac24e Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/orange_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/pink.png b/src/main/resources/assets/hamsters/textures/block/cage/pink.png new file mode 100644 index 0000000..1486f11 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/pink.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/pink_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/pink_bottom.png new file mode 100644 index 0000000..bea512b Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/pink_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/pink_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/pink_middle.png new file mode 100644 index 0000000..adee525 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/pink_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/pink_top.png b/src/main/resources/assets/hamsters/textures/block/cage/pink_top.png new file mode 100644 index 0000000..3122cf9 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/pink_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/purple.png b/src/main/resources/assets/hamsters/textures/block/cage/purple.png new file mode 100644 index 0000000..531a2f8 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/purple.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/purple_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/purple_bottom.png new file mode 100644 index 0000000..6aa25c5 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/purple_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/purple_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/purple_middle.png new file mode 100644 index 0000000..c3437e0 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/purple_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/purple_top.png b/src/main/resources/assets/hamsters/textures/block/cage/purple_top.png new file mode 100644 index 0000000..97b585f Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/purple_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/red.png b/src/main/resources/assets/hamsters/textures/block/cage/red.png new file mode 100644 index 0000000..7499f07 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/red.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/red_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/red_bottom.png new file mode 100644 index 0000000..8858388 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/red_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/red_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/red_middle.png new file mode 100644 index 0000000..97c6e6c Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/red_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/red_top.png b/src/main/resources/assets/hamsters/textures/block/cage/red_top.png new file mode 100644 index 0000000..cdc5c15 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/red_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/white.png b/src/main/resources/assets/hamsters/textures/block/cage/white.png new file mode 100644 index 0000000..ee0394c Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/white.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/white_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/white_bottom.png new file mode 100644 index 0000000..88ca6b5 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/white_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/white_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/white_middle.png new file mode 100644 index 0000000..9a6759d Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/white_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/white_top.png b/src/main/resources/assets/hamsters/textures/block/cage/white_top.png new file mode 100644 index 0000000..8db2160 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/white_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/yellow.png b/src/main/resources/assets/hamsters/textures/block/cage/yellow.png new file mode 100644 index 0000000..30d89f3 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/yellow.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/yellow_bottom.png b/src/main/resources/assets/hamsters/textures/block/cage/yellow_bottom.png new file mode 100644 index 0000000..b17ed93 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/yellow_bottom.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/yellow_middle.png b/src/main/resources/assets/hamsters/textures/block/cage/yellow_middle.png new file mode 100644 index 0000000..0c63415 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/yellow_middle.png differ diff --git a/src/main/resources/assets/hamsters/textures/block/cage/yellow_top.png b/src/main/resources/assets/hamsters/textures/block/cage/yellow_top.png new file mode 100644 index 0000000..f7be6d2 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/block/cage/yellow_top.png differ diff --git a/src/main/resources/assets/hamsters/textures/entity/frank_scp.png b/src/main/resources/assets/hamsters/textures/entity/frank_scp.png new file mode 100644 index 0000000..5609ef1 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/entity/frank_scp.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/black.png b/src/main/resources/assets/hamsters/textures/item/ball/black.png new file mode 100644 index 0000000..fdea701 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/black.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/blue.png b/src/main/resources/assets/hamsters/textures/item/ball/blue.png new file mode 100644 index 0000000..0c91ae9 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/brown.png b/src/main/resources/assets/hamsters/textures/item/ball/brown.png new file mode 100644 index 0000000..a9c2553 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/brown.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/cyan.png b/src/main/resources/assets/hamsters/textures/item/ball/cyan.png new file mode 100644 index 0000000..6bcbcba Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/cyan.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/gray.png b/src/main/resources/assets/hamsters/textures/item/ball/gray.png new file mode 100644 index 0000000..227bd41 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/green.png b/src/main/resources/assets/hamsters/textures/item/ball/green.png new file mode 100644 index 0000000..d7006bd Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/green.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/light_blue.png b/src/main/resources/assets/hamsters/textures/item/ball/light_blue.png new file mode 100644 index 0000000..c90f8af Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/light_blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/light_gray.png b/src/main/resources/assets/hamsters/textures/item/ball/light_gray.png new file mode 100644 index 0000000..c143b49 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/light_gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/lime.png b/src/main/resources/assets/hamsters/textures/item/ball/lime.png new file mode 100644 index 0000000..d6c79bc Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/lime.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/magenta.png b/src/main/resources/assets/hamsters/textures/item/ball/magenta.png new file mode 100644 index 0000000..c4df401 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/magenta.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/orange.png b/src/main/resources/assets/hamsters/textures/item/ball/orange.png new file mode 100644 index 0000000..4a98753 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/orange.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/pink.png b/src/main/resources/assets/hamsters/textures/item/ball/pink.png new file mode 100644 index 0000000..d4ec7ac Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/pink.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/purple.png b/src/main/resources/assets/hamsters/textures/item/ball/purple.png new file mode 100644 index 0000000..7365104 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/purple.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/red.png b/src/main/resources/assets/hamsters/textures/item/ball/red.png new file mode 100644 index 0000000..f3e5163 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/red.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/white.png b/src/main/resources/assets/hamsters/textures/item/ball/white.png new file mode 100644 index 0000000..35e187a Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/white.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/ball/yellow.png b/src/main/resources/assets/hamsters/textures/item/ball/yellow.png new file mode 100644 index 0000000..1397b6b Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/ball/yellow.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/blue_hamster_bottle.png b/src/main/resources/assets/hamsters/textures/item/blue_hamster_bottle.png deleted file mode 100644 index 332e64b..0000000 Binary files a/src/main/resources/assets/hamsters/textures/item/blue_hamster_bottle.png and /dev/null differ diff --git a/src/main/resources/assets/hamsters/textures/item/blue_hamster_bowl.png b/src/main/resources/assets/hamsters/textures/item/blue_hamster_bowl.png deleted file mode 100644 index e06e230..0000000 Binary files a/src/main/resources/assets/hamsters/textures/item/blue_hamster_bowl.png and /dev/null differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/black.png b/src/main/resources/assets/hamsters/textures/item/bottle/black.png new file mode 100644 index 0000000..e115b2a Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/black.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/blue.png b/src/main/resources/assets/hamsters/textures/item/bottle/blue.png new file mode 100644 index 0000000..a5598cb Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/brown.png b/src/main/resources/assets/hamsters/textures/item/bottle/brown.png new file mode 100644 index 0000000..179df75 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/brown.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/cyan.png b/src/main/resources/assets/hamsters/textures/item/bottle/cyan.png new file mode 100644 index 0000000..da6df0b Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/cyan.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/gray.png b/src/main/resources/assets/hamsters/textures/item/bottle/gray.png new file mode 100644 index 0000000..04dbe83 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/green.png b/src/main/resources/assets/hamsters/textures/item/bottle/green.png new file mode 100644 index 0000000..c460fe6 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/green.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/light_blue.png b/src/main/resources/assets/hamsters/textures/item/bottle/light_blue.png new file mode 100644 index 0000000..55f5107 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/light_blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/light_gray.png b/src/main/resources/assets/hamsters/textures/item/bottle/light_gray.png new file mode 100644 index 0000000..fcd8edf Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/light_gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/lime.png b/src/main/resources/assets/hamsters/textures/item/bottle/lime.png new file mode 100644 index 0000000..fe69435 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/lime.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/magenta.png b/src/main/resources/assets/hamsters/textures/item/bottle/magenta.png new file mode 100644 index 0000000..6e159ae Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/magenta.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/orange.png b/src/main/resources/assets/hamsters/textures/item/bottle/orange.png new file mode 100644 index 0000000..00ba91a Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/orange.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/pink.png b/src/main/resources/assets/hamsters/textures/item/bottle/pink.png new file mode 100644 index 0000000..0702273 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/pink.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/purple.png b/src/main/resources/assets/hamsters/textures/item/bottle/purple.png new file mode 100644 index 0000000..26b9c55 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/purple.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/red.png b/src/main/resources/assets/hamsters/textures/item/bottle/red.png new file mode 100644 index 0000000..7a67558 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/red.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/white.png b/src/main/resources/assets/hamsters/textures/item/bottle/white.png new file mode 100644 index 0000000..f42aee9 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/white.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bottle/yellow.png b/src/main/resources/assets/hamsters/textures/item/bottle/yellow.png new file mode 100644 index 0000000..243fc64 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bottle/yellow.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/black.png b/src/main/resources/assets/hamsters/textures/item/bowl/black.png new file mode 100644 index 0000000..8c56e18 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/black.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/blue.png b/src/main/resources/assets/hamsters/textures/item/bowl/blue.png new file mode 100644 index 0000000..edfe42f Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/brown.png b/src/main/resources/assets/hamsters/textures/item/bowl/brown.png new file mode 100644 index 0000000..14a9331 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/brown.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/cyan.png b/src/main/resources/assets/hamsters/textures/item/bowl/cyan.png new file mode 100644 index 0000000..dbaa813 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/cyan.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/gray.png b/src/main/resources/assets/hamsters/textures/item/bowl/gray.png new file mode 100644 index 0000000..56db4bc Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/green.png b/src/main/resources/assets/hamsters/textures/item/bowl/green.png new file mode 100644 index 0000000..2a18fcf Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/green.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/light_blue.png b/src/main/resources/assets/hamsters/textures/item/bowl/light_blue.png new file mode 100644 index 0000000..edefaca Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/light_blue.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/light_gray.png b/src/main/resources/assets/hamsters/textures/item/bowl/light_gray.png new file mode 100644 index 0000000..a41431c Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/light_gray.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/lime.png b/src/main/resources/assets/hamsters/textures/item/bowl/lime.png new file mode 100644 index 0000000..8c11c08 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/lime.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/magenta.png b/src/main/resources/assets/hamsters/textures/item/bowl/magenta.png new file mode 100644 index 0000000..38b78ed Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/magenta.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/orange.png b/src/main/resources/assets/hamsters/textures/item/bowl/orange.png new file mode 100644 index 0000000..252b319 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/orange.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/pink.png b/src/main/resources/assets/hamsters/textures/item/bowl/pink.png new file mode 100644 index 0000000..06464ba Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/pink.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/purple.png b/src/main/resources/assets/hamsters/textures/item/bowl/purple.png new file mode 100644 index 0000000..50ed242 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/purple.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/red.png b/src/main/resources/assets/hamsters/textures/item/bowl/red.png new file mode 100644 index 0000000..cbe5661 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/red.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/white.png b/src/main/resources/assets/hamsters/textures/item/bowl/white.png new file mode 100644 index 0000000..b9eef31 Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/white.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/bowl/yellow.png b/src/main/resources/assets/hamsters/textures/item/bowl/yellow.png new file mode 100644 index 0000000..7f87c8f Binary files /dev/null and b/src/main/resources/assets/hamsters/textures/item/bowl/yellow.png differ diff --git a/src/main/resources/assets/hamsters/textures/item/hamster_ball.png b/src/main/resources/assets/hamsters/textures/item/hamster_ball.png deleted file mode 100644 index bc1e2c3..0000000 Binary files a/src/main/resources/assets/hamsters/textures/item/hamster_ball.png and /dev/null differ diff --git a/src/main/resources/data/hamsters/advancements/recipes/cage_panel.json b/src/main/resources/data/hamsters/advancements/recipes/cage_panel.json new file mode 100644 index 0000000..e8e2109 --- /dev/null +++ b/src/main/resources/data/hamsters/advancements/recipes/cage_panel.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_ingot": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:iron_ingot" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "hamsters:cage_panel" + } + } + }, + "requirements": [ + [ + "has_iron_ingot", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "hamsters:cage_panel" + ] + }, + "sends_telemetry_event": false +} diff --git a/src/main/resources/data/hamsters/recipes/cage_panel.json b/src/main/resources/data/hamsters/recipes/cage_panel.json new file mode 100644 index 0000000..ca5df46 --- /dev/null +++ b/src/main/resources/data/hamsters/recipes/cage_panel.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "###" + ], + "key": { + "#": { + "item": "minecraft:iron_bars" + } + }, + "result": { + "item": "hamsters:cage_panel", + "count": 12 + } +} \ No newline at end of file diff --git a/src/main/resources/data/hamsters/tags/items/cage_panels.json b/src/main/resources/data/hamsters/tags/items/cage_panels.json new file mode 100644 index 0000000..153c512 --- /dev/null +++ b/src/main/resources/data/hamsters/tags/items/cage_panels.json @@ -0,0 +1,20 @@ +{ + "values": [ + "hamsters:red_cage_panel", + "hamsters:orange_cage_panel", + "hamsters:yellow_cage_panel", + "hamsters:lime_cage_panel", + "hamsters:green_cage_panel", + "hamsters:cyan_cage_panel", + "hamsters:blue_cage_panel", + "hamsters:light_blue_cage_panel", + "hamsters:pink_cage_panel", + "hamsters:magenta_cage_panel", + "hamsters:purple_cage_panel", + "hamsters:white_cage_panel", + "hamsters:light_gray_cage_panel", + "hamsters:gray_cage_panel", + "hamsters:black_cage_panel", + "hamsters:brown_cage_panel" + ] +} \ No newline at end of file