From 5c99adeaa8763bd62a041db5db4a9c4141bd8d04 Mon Sep 17 00:00:00 2001
From: TheClashFruit
Date: Fri, 29 Dec 2023 14:52:42 +0100
Subject: [PATCH 1/5] feat: no sky thing :trolley:
---
.../me/theclashfruit/arctic/mixin/WorldRendererAccessor.java | 2 ++
.../java/me/theclashfruit/arctic/mixin/WorldRendererMixin.java | 2 ++
src/main/resources/arctic.mixins.json | 3 +--
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/main/java/me/theclashfruit/arctic/mixin/WorldRendererAccessor.java b/src/main/java/me/theclashfruit/arctic/mixin/WorldRendererAccessor.java
index 5ee0817..23b80e2 100644
--- a/src/main/java/me/theclashfruit/arctic/mixin/WorldRendererAccessor.java
+++ b/src/main/java/me/theclashfruit/arctic/mixin/WorldRendererAccessor.java
@@ -5,6 +5,8 @@ import net.minecraft.client.world.ClientWorld;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
+// add in future
+
@Mixin(WorldRenderer.class)
public interface WorldRendererAccessor {
@Accessor("world")
diff --git a/src/main/java/me/theclashfruit/arctic/mixin/WorldRendererMixin.java b/src/main/java/me/theclashfruit/arctic/mixin/WorldRendererMixin.java
index 706f4f0..735e794 100644
--- a/src/main/java/me/theclashfruit/arctic/mixin/WorldRendererMixin.java
+++ b/src/main/java/me/theclashfruit/arctic/mixin/WorldRendererMixin.java
@@ -12,6 +12,8 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+// add in future
+
@Mixin(WorldRenderer.class)
public class WorldRendererMixin {
@Nullable
diff --git a/src/main/resources/arctic.mixins.json b/src/main/resources/arctic.mixins.json
index 992c531..b6a8c6b 100644
--- a/src/main/resources/arctic.mixins.json
+++ b/src/main/resources/arctic.mixins.json
@@ -6,8 +6,7 @@
"mixins": [
],
"client": [
- "WorldRendererAccessor",
- "WorldRendererMixin"
+
],
"injectors": {
"defaultRequire": 1
From 9f8a92f4f3f1bcae3faefb0776c37334fde6342e Mon Sep 17 00:00:00 2001
From: TheClashFruit
Date: Fri, 29 Dec 2023 15:45:57 +0100
Subject: [PATCH 2/5] feat: finish stuff
---
.../arctic/client/ArcticClient.java | 12 ++
.../client/entity/penguin/CardboardModel.java | 25 +++
.../entity/penguin/CardboardRenderer.java | 20 +++
.../arctic/client/entity/seal/SealModel.java | 25 +++
.../client/entity/seal/SealRenderer.java | 20 +++
.../arctic/entity/ArcticEntities.java | 40 ++++-
.../entity/penguin/CardboardEntity.java | 53 ++++++
.../arctic/entity/seal/SealEntity.java | 70 ++++++++
.../arctic/item/ArcticItems.java | 16 +-
.../arctic/world/ArcticEntityGeneration.java | 20 +++
.../penguin/baby_emperor.animation.json | 101 +----------
.../penguin/cardboard.animation.json | 7 +
.../animations/seal/seal.animation.json | 7 +
.../arctic/geo/penguin/cardboard.geo.json | 47 ++++++
.../assets/arctic/geo/seal/seal.geo.json | 158 ++++++++++++++++++
.../resources/assets/arctic/lang/en_us.json | 5 +-
.../resources/assets/arctic/lang/hu_hu.json | 4 -
.../arctic/models/item/seal_spawn_egg.json | 3 +
.../arctic/textures/entity/penguin/hululu.png | Bin 0 -> 12860 bytes
.../arctic/textures/entity/seal/seal.png | Bin 0 -> 1999 bytes
20 files changed, 525 insertions(+), 108 deletions(-)
create mode 100644 src/main/java/me/theclashfruit/arctic/client/entity/penguin/CardboardModel.java
create mode 100644 src/main/java/me/theclashfruit/arctic/client/entity/penguin/CardboardRenderer.java
create mode 100644 src/main/java/me/theclashfruit/arctic/client/entity/seal/SealModel.java
create mode 100644 src/main/java/me/theclashfruit/arctic/client/entity/seal/SealRenderer.java
create mode 100644 src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java
create mode 100644 src/main/java/me/theclashfruit/arctic/entity/seal/SealEntity.java
create mode 100644 src/main/resources/assets/arctic/animations/penguin/cardboard.animation.json
create mode 100644 src/main/resources/assets/arctic/animations/seal/seal.animation.json
create mode 100644 src/main/resources/assets/arctic/geo/penguin/cardboard.geo.json
create mode 100644 src/main/resources/assets/arctic/geo/seal/seal.geo.json
delete mode 100644 src/main/resources/assets/arctic/lang/hu_hu.json
create mode 100644 src/main/resources/assets/arctic/models/item/seal_spawn_egg.json
create mode 100644 src/main/resources/assets/arctic/textures/entity/penguin/hululu.png
create mode 100644 src/main/resources/assets/arctic/textures/entity/seal/seal.png
diff --git a/src/main/java/me/theclashfruit/arctic/client/ArcticClient.java b/src/main/java/me/theclashfruit/arctic/client/ArcticClient.java
index b106c7b..9cd77bf 100644
--- a/src/main/java/me/theclashfruit/arctic/client/ArcticClient.java
+++ b/src/main/java/me/theclashfruit/arctic/client/ArcticClient.java
@@ -1,6 +1,8 @@
package me.theclashfruit.arctic.client;
import me.theclashfruit.arctic.client.entity.penguin.BabyEmperorRenderer;
+import me.theclashfruit.arctic.client.entity.penguin.CardboardRenderer;
+import me.theclashfruit.arctic.client.entity.seal.SealRenderer;
import me.theclashfruit.arctic.entity.ArcticEntities;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry;
@@ -15,5 +17,15 @@ public class ArcticClient implements ClientModInitializer {
ArcticEntities.BABY_EMPEROR,
BabyEmperorRenderer::new
);
+
+ EntityRendererRegistry.register(
+ ArcticEntities.SEAL,
+ SealRenderer::new
+ );
+
+ EntityRendererRegistry.register(
+ ArcticEntities.CARDBOARD,
+ CardboardRenderer::new
+ );
}
}
\ No newline at end of file
diff --git a/src/main/java/me/theclashfruit/arctic/client/entity/penguin/CardboardModel.java b/src/main/java/me/theclashfruit/arctic/client/entity/penguin/CardboardModel.java
new file mode 100644
index 0000000..101726c
--- /dev/null
+++ b/src/main/java/me/theclashfruit/arctic/client/entity/penguin/CardboardModel.java
@@ -0,0 +1,25 @@
+package me.theclashfruit.arctic.client.entity.penguin;
+
+import me.theclashfruit.arctic.entity.penguin.BabyEmperorEntity;
+import me.theclashfruit.arctic.entity.penguin.CardboardEntity;
+import net.minecraft.util.Identifier;
+import software.bernie.geckolib.model.GeoModel;
+
+import static me.theclashfruit.arctic.Arctic.MOD_ID;
+
+public class CardboardModel extends GeoModel {
+ @Override
+ public Identifier getModelResource(CardboardEntity animatable) {
+ return new Identifier(MOD_ID, "geo/penguin/cardboard.geo.json");
+ }
+
+ @Override
+ public Identifier getTextureResource(CardboardEntity animatable) {
+ return new Identifier(MOD_ID, "textures/entity/penguin/hululu.png");
+ }
+
+ @Override
+ public Identifier getAnimationResource(CardboardEntity animatable) {
+ return new Identifier(MOD_ID, "animations/penguin/cardboard.animation.json");
+ }
+}
diff --git a/src/main/java/me/theclashfruit/arctic/client/entity/penguin/CardboardRenderer.java b/src/main/java/me/theclashfruit/arctic/client/entity/penguin/CardboardRenderer.java
new file mode 100644
index 0000000..2ddc0e1
--- /dev/null
+++ b/src/main/java/me/theclashfruit/arctic/client/entity/penguin/CardboardRenderer.java
@@ -0,0 +1,20 @@
+package me.theclashfruit.arctic.client.entity.penguin;
+
+import me.theclashfruit.arctic.entity.penguin.BabyEmperorEntity;
+import me.theclashfruit.arctic.entity.penguin.CardboardEntity;
+import net.minecraft.client.render.entity.EntityRendererFactory;
+import net.minecraft.util.Identifier;
+import software.bernie.geckolib.renderer.GeoEntityRenderer;
+
+import static me.theclashfruit.arctic.Arctic.MOD_ID;
+
+public class CardboardRenderer extends GeoEntityRenderer {
+ public CardboardRenderer(EntityRendererFactory.Context ctx) {
+ super(ctx, new CardboardModel());
+ }
+
+ @Override
+ public Identifier getTextureLocation(CardboardEntity animatable) {
+ return new Identifier(MOD_ID, "textures/entity/penguin/hululu.png");
+ }
+}
diff --git a/src/main/java/me/theclashfruit/arctic/client/entity/seal/SealModel.java b/src/main/java/me/theclashfruit/arctic/client/entity/seal/SealModel.java
new file mode 100644
index 0000000..34e561e
--- /dev/null
+++ b/src/main/java/me/theclashfruit/arctic/client/entity/seal/SealModel.java
@@ -0,0 +1,25 @@
+package me.theclashfruit.arctic.client.entity.seal;
+
+import me.theclashfruit.arctic.entity.penguin.BabyEmperorEntity;
+import me.theclashfruit.arctic.entity.seal.SealEntity;
+import net.minecraft.util.Identifier;
+import software.bernie.geckolib.model.GeoModel;
+
+import static me.theclashfruit.arctic.Arctic.MOD_ID;
+
+public class SealModel extends GeoModel {
+ @Override
+ public Identifier getModelResource(SealEntity animatable) {
+ return new Identifier(MOD_ID, "geo/seal/seal.geo.json");
+ }
+
+ @Override
+ public Identifier getTextureResource(SealEntity animatable) {
+ return new Identifier(MOD_ID, "textures/entity/seal/seal.png");
+ }
+
+ @Override
+ public Identifier getAnimationResource(SealEntity animatable) {
+ return new Identifier(MOD_ID, "animations/seal/seal.animation.json");
+ }
+}
diff --git a/src/main/java/me/theclashfruit/arctic/client/entity/seal/SealRenderer.java b/src/main/java/me/theclashfruit/arctic/client/entity/seal/SealRenderer.java
new file mode 100644
index 0000000..bab6676
--- /dev/null
+++ b/src/main/java/me/theclashfruit/arctic/client/entity/seal/SealRenderer.java
@@ -0,0 +1,20 @@
+package me.theclashfruit.arctic.client.entity.seal;
+
+import me.theclashfruit.arctic.entity.penguin.BabyEmperorEntity;
+import me.theclashfruit.arctic.entity.seal.SealEntity;
+import net.minecraft.client.render.entity.EntityRendererFactory;
+import net.minecraft.util.Identifier;
+import software.bernie.geckolib.renderer.GeoEntityRenderer;
+
+import static me.theclashfruit.arctic.Arctic.MOD_ID;
+
+public class SealRenderer extends GeoEntityRenderer {
+ public SealRenderer(EntityRendererFactory.Context ctx) {
+ super(ctx, new SealModel());
+ }
+
+ @Override
+ public Identifier getTextureLocation(SealEntity animatable) {
+ return new Identifier(MOD_ID, "textures/entity/seal/seal.png");
+ }
+}
diff --git a/src/main/java/me/theclashfruit/arctic/entity/ArcticEntities.java b/src/main/java/me/theclashfruit/arctic/entity/ArcticEntities.java
index 2489c7e..7362e28 100644
--- a/src/main/java/me/theclashfruit/arctic/entity/ArcticEntities.java
+++ b/src/main/java/me/theclashfruit/arctic/entity/ArcticEntities.java
@@ -1,6 +1,8 @@
package me.theclashfruit.arctic.entity;
import me.theclashfruit.arctic.entity.penguin.BabyEmperorEntity;
+import me.theclashfruit.arctic.entity.penguin.CardboardEntity;
+import me.theclashfruit.arctic.entity.seal.SealEntity;
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry;
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder;
import net.minecraft.entity.EntityDimensions;
@@ -15,7 +17,19 @@ import static me.theclashfruit.arctic.Arctic.MOD_ID;
public class ArcticEntities {
public static final EntityType BABY_EMPEROR = FabricEntityTypeBuilder
.create(SpawnGroup.CREATURE, BabyEmperorEntity::new)
- .dimensions(EntityDimensions.fixed(0.8f, 1f))
+ .dimensions(EntityDimensions.fixed(0.75f, 1f))
+ .build();
+
+ public static final EntityType SEAL = FabricEntityTypeBuilder
+ .create(SpawnGroup.CREATURE, SealEntity::new)
+ .dimensions(EntityDimensions.fixed(1f, 0.5f))
+ .build();
+
+ // WAHT?
+
+ public static final EntityType CARDBOARD = FabricEntityTypeBuilder
+ .create(SpawnGroup.CREATURE, CardboardEntity::new)
+ .dimensions(EntityDimensions.fixed(0.7f, 2f))
.build();
public static void registerEntities() {
@@ -25,9 +39,33 @@ public class ArcticEntities {
BABY_EMPEROR
);
+ Registry.register(
+ Registries.ENTITY_TYPE,
+ new Identifier(MOD_ID, "seal"),
+ SEAL
+ );
+
FabricDefaultAttributeRegistry.register(
ArcticEntities.BABY_EMPEROR,
BabyEmperorEntity.createBabyEmperorAttributes()
);
+
+ FabricDefaultAttributeRegistry.register(
+ ArcticEntities.SEAL,
+ SealEntity.createSealAttributes()
+ );
+
+ // WAHT?
+
+ Registry.register(
+ Registries.ENTITY_TYPE,
+ new Identifier(MOD_ID, "cardboard"),
+ CARDBOARD
+ );
+
+ FabricDefaultAttributeRegistry.register(
+ ArcticEntities.CARDBOARD,
+ CardboardEntity.createCardboardAttributes()
+ );
}
}
diff --git a/src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java b/src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java
new file mode 100644
index 0000000..d93be08
--- /dev/null
+++ b/src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java
@@ -0,0 +1,53 @@
+package me.theclashfruit.arctic.entity.penguin;
+
+import net.minecraft.entity.EntityType;
+import net.minecraft.entity.attribute.DefaultAttributeContainer;
+import net.minecraft.entity.attribute.EntityAttributes;
+import net.minecraft.entity.passive.AnimalEntity;
+import net.minecraft.entity.passive.PassiveEntity;
+import net.minecraft.server.world.ServerWorld;
+import net.minecraft.world.World;
+import org.jetbrains.annotations.Nullable;
+import software.bernie.geckolib.animatable.GeoEntity;
+import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
+import software.bernie.geckolib.core.animation.AnimatableManager;
+import software.bernie.geckolib.core.animation.AnimationController;
+import software.bernie.geckolib.core.animation.AnimationState;
+import software.bernie.geckolib.core.animation.RawAnimation;
+import software.bernie.geckolib.core.object.PlayState;
+import software.bernie.geckolib.util.GeckoLibUtil;
+
+public class CardboardEntity extends AnimalEntity implements GeoEntity {
+
+ private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this);
+
+ public CardboardEntity(EntityType extends AnimalEntity> entityType, World world) {
+ super(entityType, world);
+ }
+
+ public static DefaultAttributeContainer.Builder createCardboardAttributes() {
+ return AnimalEntity.createMobAttributes()
+ .add(EntityAttributes.GENERIC_MAX_HEALTH, 0)
+ .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0);
+ }
+
+ @Nullable
+ @Override
+ public PassiveEntity createChild(ServerWorld world, PassiveEntity entity) {
+ return null;
+ }
+
+ protected PlayState predicate(final AnimationState event) {
+ return PlayState.STOP;
+ }
+
+ @Override
+ public void registerControllers(AnimatableManager.ControllerRegistrar controllers) {
+ controllers.add(new AnimationController<>(this, "controller", 0, this::predicate));
+ }
+
+ @Override
+ public AnimatableInstanceCache getAnimatableInstanceCache() {
+ return this.geoCache;
+ }
+}
diff --git a/src/main/java/me/theclashfruit/arctic/entity/seal/SealEntity.java b/src/main/java/me/theclashfruit/arctic/entity/seal/SealEntity.java
new file mode 100644
index 0000000..fb3d145
--- /dev/null
+++ b/src/main/java/me/theclashfruit/arctic/entity/seal/SealEntity.java
@@ -0,0 +1,70 @@
+package me.theclashfruit.arctic.entity.seal;
+
+import me.theclashfruit.arctic.entity.penguin.BabyEmperorEntity;
+import net.minecraft.entity.EntityType;
+import net.minecraft.entity.ai.goal.*;
+import net.minecraft.entity.attribute.DefaultAttributeContainer;
+import net.minecraft.entity.attribute.EntityAttributes;
+import net.minecraft.entity.passive.AnimalEntity;
+import net.minecraft.entity.passive.PassiveEntity;
+import net.minecraft.entity.player.PlayerEntity;
+import net.minecraft.server.world.ServerWorld;
+import net.minecraft.world.World;
+import org.jetbrains.annotations.Nullable;
+import software.bernie.geckolib.animatable.GeoEntity;
+import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
+import software.bernie.geckolib.core.animation.AnimatableManager;
+import software.bernie.geckolib.core.animation.AnimationController;
+import software.bernie.geckolib.core.animation.AnimationState;
+import software.bernie.geckolib.core.animation.RawAnimation;
+import software.bernie.geckolib.core.object.PlayState;
+import software.bernie.geckolib.util.GeckoLibUtil;
+
+public class SealEntity extends AnimalEntity implements GeoEntity {
+
+ private final AnimatableInstanceCache geoCache = GeckoLibUtil.createInstanceCache(this);
+
+ public SealEntity(EntityType extends AnimalEntity> entityType, World world) {
+ super(entityType, world);
+ }
+
+ public static DefaultAttributeContainer.Builder createSealAttributes() {
+ return AnimalEntity.createMobAttributes()
+ .add(EntityAttributes.GENERIC_MAX_HEALTH, 15.0D)
+ .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.25D);
+ }
+
+ @Nullable
+ @Override
+ public PassiveEntity createChild(ServerWorld world, PassiveEntity entity) {
+ return null;
+ }
+
+ @Override
+ protected void initGoals() {
+ this.goalSelector.add(0, new SwimGoal(this));
+ this.goalSelector.add(0, new EscapeDangerGoal(this, 0.65D));
+ this.goalSelector.add(1, new LookAroundGoal(this));
+ this.goalSelector.add(1, new WanderAroundGoal(this, 0.55D));
+ this.goalSelector.add(2, new LookAtEntityGoal(this, PlayerEntity.class, 6.0F));
+ }
+
+ protected PlayState predicate(final AnimationState event) {
+ if(event.isMoving())
+ return event.setAndContinue(
+ RawAnimation.begin().thenLoop("animation.seal.walk")
+ );
+
+ return PlayState.STOP;
+ }
+
+ @Override
+ public void registerControllers(AnimatableManager.ControllerRegistrar controllers) {
+ controllers.add(new AnimationController<>(this, "controller", 0, this::predicate));
+ }
+
+ @Override
+ public AnimatableInstanceCache getAnimatableInstanceCache() {
+ return this.geoCache;
+ }
+}
diff --git a/src/main/java/me/theclashfruit/arctic/item/ArcticItems.java b/src/main/java/me/theclashfruit/arctic/item/ArcticItems.java
index 0ee4dc0..91d3be7 100644
--- a/src/main/java/me/theclashfruit/arctic/item/ArcticItems.java
+++ b/src/main/java/me/theclashfruit/arctic/item/ArcticItems.java
@@ -16,16 +16,28 @@ import static me.theclashfruit.arctic.Arctic.MOD_ID;
public class ArcticItems {
public static final Item BABY_EMPEROR_SPAWN_EGG = new SpawnEggItem(
ArcticEntities.BABY_EMPEROR,
- 0xB00B69,
- 0xffffff,
+ 0xF2F2F2,
+ 0x2E2E2E,
+ new FabricItemSettings()
+ );
+
+ public static final Item SEAL_SPAWN_EGG = new SpawnEggItem(
+ ArcticEntities.SEAL,
+ 0xE3F2FC,
+ 0x737f87,
new FabricItemSettings()
);
public static void registerItems() {
Registry.register(Registries.ITEM, new Identifier(MOD_ID, "baby_emperor_spawn_egg"), BABY_EMPEROR_SPAWN_EGG);
+ Registry.register(Registries.ITEM, new Identifier(MOD_ID, "seal_spawn_egg"), SEAL_SPAWN_EGG);
ItemGroupEvents.modifyEntriesEvent(ItemGroups.SPAWN_EGGS).register(content -> {
content.addAfter(Items.AXOLOTL_SPAWN_EGG, BABY_EMPEROR_SPAWN_EGG);
});
+
+ ItemGroupEvents.modifyEntriesEvent(ItemGroups.SPAWN_EGGS).register(content -> {
+ content.addAfter(Items.SALMON_SPAWN_EGG, SEAL_SPAWN_EGG);
+ });
}
}
diff --git a/src/main/java/me/theclashfruit/arctic/world/ArcticEntityGeneration.java b/src/main/java/me/theclashfruit/arctic/world/ArcticEntityGeneration.java
index 1b36994..798753d 100644
--- a/src/main/java/me/theclashfruit/arctic/world/ArcticEntityGeneration.java
+++ b/src/main/java/me/theclashfruit/arctic/world/ArcticEntityGeneration.java
@@ -24,11 +24,31 @@ public class ArcticEntityGeneration {
6
);
+ BiomeModifications.addSpawn(
+ BiomeSelectors.includeByKey(
+ BiomeKeys.FROZEN_OCEAN,
+ BiomeKeys.DEEP_FROZEN_OCEAN,
+ BiomeKeys.SNOWY_BEACH
+ ),
+ SpawnGroup.CREATURE,
+ ArcticEntities.SEAL,
+ 50,
+ 1,
+ 3
+ );
+
SpawnRestriction.register(
ArcticEntities.BABY_EMPEROR,
SpawnRestriction.Location.NO_RESTRICTIONS,
Heightmap.Type.MOTION_BLOCKING_NO_LEAVES,
AnimalEntity::isValidNaturalSpawn
);
+
+ SpawnRestriction.register(
+ ArcticEntities.SEAL,
+ SpawnRestriction.Location.NO_RESTRICTIONS,
+ Heightmap.Type.MOTION_BLOCKING_NO_LEAVES,
+ AnimalEntity::isValidNaturalSpawn
+ );
}
}
diff --git a/src/main/resources/assets/arctic/animations/penguin/baby_emperor.animation.json b/src/main/resources/assets/arctic/animations/penguin/baby_emperor.animation.json
index d2f338c..b90976a 100644
--- a/src/main/resources/assets/arctic/animations/penguin/baby_emperor.animation.json
+++ b/src/main/resources/assets/arctic/animations/penguin/baby_emperor.animation.json
@@ -1,106 +1,7 @@
{
"format_version": "1.8.0",
"animations": {
- "animation.FM-Penguin.new": {
- "animation_length": 1.75,
- "bones": {
- "RightArm": {
- "rotation": {
- "0.0": {
- "vector": [0, 0, 0]
- },
- "0.5": {
- "vector": [0, 0, 0],
- "easing": "easeInBack"
- },
- "1.0": {
- "vector": [0, 0, -30],
- "easing": "easeInBack"
- },
- "1.5": {
- "vector": [0, 0, 5],
- "easing": "easeInBack"
- },
- "1.75": {
- "vector": [0, 0, 0],
- "easing": "easeInBack"
- }
- }
- },
- "LeftArm": {
- "rotation": {
- "0.0": {
- "vector": [0, 0, 0]
- },
- "0.5": {
- "vector": [0, 0, 25],
- "easing": "easeInBack"
- },
- "1.0": {
- "vector": [0, 0, -5],
- "easing": "easeInBack"
- },
- "1.25": {
- "vector": [0, 0, 0],
- "easing": "easeInBack"
- }
- }
- }
- }
- },
- "animation.baby_emperor.walk": {
- "animation_length": 0.83333,
- "bones": {
- "LeftFoot": {
- "rotation": {
- "0.0": {
- "vector": [0, 0, 0]
- },
- "0.0833": {
- "vector": [-5, 0, 0]
- },
- "0.3333": {
- "vector": [0, 0, 0]
- }
- },
- "position": {
- "0.0": {
- "vector": [0, 0, 0]
- },
- "0.1667": {
- "vector": [0, 0, -0.5]
- },
- "0.4167": {
- "vector": [0, 0, 0]
- }
- }
- },
- "RightFoot": {
- "rotation": {
- "0.4167": {
- "vector": [0, 0, 0]
- },
- "0.5": {
- "vector": [-5, 0, 0]
- },
- "0.75": {
- "vector": [0, 0, 0]
- }
- },
- "position": {
- "0.4167": {
- "vector": [0, 0, 0]
- },
- "0.5833": {
- "vector": [0, 0, -0.5]
- },
- "0.8333": {
- "vector": [0, 0, 0]
- }
- }
- }
- }
- }
+
},
"geckolib_format_version": 2
}
\ No newline at end of file
diff --git a/src/main/resources/assets/arctic/animations/penguin/cardboard.animation.json b/src/main/resources/assets/arctic/animations/penguin/cardboard.animation.json
new file mode 100644
index 0000000..b90976a
--- /dev/null
+++ b/src/main/resources/assets/arctic/animations/penguin/cardboard.animation.json
@@ -0,0 +1,7 @@
+{
+ "format_version": "1.8.0",
+ "animations": {
+
+ },
+ "geckolib_format_version": 2
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/arctic/animations/seal/seal.animation.json b/src/main/resources/assets/arctic/animations/seal/seal.animation.json
new file mode 100644
index 0000000..b90976a
--- /dev/null
+++ b/src/main/resources/assets/arctic/animations/seal/seal.animation.json
@@ -0,0 +1,7 @@
+{
+ "format_version": "1.8.0",
+ "animations": {
+
+ },
+ "geckolib_format_version": 2
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/arctic/geo/penguin/cardboard.geo.json b/src/main/resources/assets/arctic/geo/penguin/cardboard.geo.json
new file mode 100644
index 0000000..59232ef
--- /dev/null
+++ b/src/main/resources/assets/arctic/geo/penguin/cardboard.geo.json
@@ -0,0 +1,47 @@
+{
+ "format_version": "1.12.0",
+ "minecraft:geometry": [
+ {
+ "description": {
+ "identifier": "geometry.Arctic-Penguin-HululuCardboard",
+ "texture_width": 64,
+ "texture_height": 163,
+ "visible_bounds_width": 3,
+ "visible_bounds_height": 3.5,
+ "visible_bounds_offset": [0, 1.25, 0]
+ },
+ "bones": [
+ {
+ "name": "bb_main",
+ "pivot": [0, 0, 0],
+ "cubes": [
+ {
+ "origin": [0, 0, -8],
+ "size": [2, 38, 16],
+ "pivot": [0, 0, 0],
+ "rotation": [-89.99996, 87.5, -89.99996],
+ "uv": {
+ "north": {"uv": [0, 0], "uv_size": [8, 7]},
+ "east": {"uv": [0, 0], "uv_size": [7, 8]},
+ "south": {"uv": [0, 0], "uv_size": [9, 9]},
+ "west": {"uv": [0, 0], "uv_size": [64, 163]},
+ "up": {"uv": [0, 0], "uv_size": [5, 4]},
+ "down": {"uv": [0, 6], "uv_size": [8, -6]}
+ }
+ }
+ ]
+ },
+ {
+ "name": "bone",
+ "pivot": [0, 0, 7],
+ "rotation": [35, 0, 0],
+ "cubes": [
+ {"origin": [-6, 0, 5], "size": [2, 12, 2], "uv": [0, 0]},
+ {"origin": [4, 0, 5], "size": [2, 12, 2], "uv": [0, 0]},
+ {"origin": [-4, 4, 5], "size": [8, 3, 2], "uv": [0, 0]}
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/arctic/geo/seal/seal.geo.json b/src/main/resources/assets/arctic/geo/seal/seal.geo.json
new file mode 100644
index 0000000..907ab7c
--- /dev/null
+++ b/src/main/resources/assets/arctic/geo/seal/seal.geo.json
@@ -0,0 +1,158 @@
+{
+ "format_version": "1.12.0",
+ "minecraft:geometry": [
+ {
+ "description": {
+ "identifier": "geometry.Arctic-Seal",
+ "texture_width": 128,
+ "texture_height": 128,
+ "visible_bounds_width": 4,
+ "visible_bounds_height": 2.5,
+ "visible_bounds_offset": [0, 0.75, 0]
+ },
+ "bones": [
+ {
+ "name": "Head",
+ "pivot": [0, 1.75, 0],
+ "rotation": [-6, 5, 0],
+ "cubes": [
+ {"origin": [-5, 2.75, -11.5], "size": [10, 8, 10], "uv": [0, 28]}
+ ]
+ },
+ {
+ "name": "Nose",
+ "parent": "Head",
+ "pivot": [0, 1.5, 0],
+ "cubes": [
+ {"origin": [-1, 4.5, -12], "size": [2, 1, 1], "uv": [9, 15]}
+ ]
+ },
+ {
+ "name": "Whiskas",
+ "parent": "Head",
+ "pivot": [0, 1.75, 0]
+ },
+ {
+ "name": "Left",
+ "parent": "Whiskas",
+ "pivot": [-2, 3.5, -11.5],
+ "rotation": [0, -5, -7.5],
+ "cubes": [
+ {
+ "origin": [-6.75, 3.25, -11.52],
+ "size": [5, 0.5, 0],
+ "uv": {
+ "north": {"uv": [8, 11], "uv_size": [-6, 1]},
+ "east": {"uv": [1, 10], "uv_size": [0, 3]},
+ "south": {"uv": [1, 10], "uv_size": [1, 5]},
+ "west": {"uv": [6, 10], "uv_size": [0, 3]},
+ "up": {"uv": [1, 10], "uv_size": [5, 0]},
+ "down": {"uv": [6, 10], "uv_size": [5, 0]}
+ }
+ },
+ {
+ "origin": [-6.75, 4, -11.52],
+ "size": [5, 0.5, 0],
+ "pivot": [-2, 3.5, -11.5],
+ "rotation": [0, 0, 5],
+ "uv": {
+ "north": {"uv": [8, 11], "uv_size": [-6, 1]},
+ "east": {"uv": [1, 10], "uv_size": [0, 3]},
+ "south": {"uv": [1, 10], "uv_size": [1, 5]},
+ "west": {"uv": [6, 10], "uv_size": [0, 3]},
+ "up": {"uv": [1, 10], "uv_size": [5, 0]},
+ "down": {"uv": [6, 10], "uv_size": [5, 0]}
+ }
+ },
+ {
+ "origin": [-6.75, 2.5, -11.52],
+ "size": [5, 0.5, 0],
+ "pivot": [-2, 3.5, -11.5],
+ "rotation": [0, 0, -5],
+ "uv": {
+ "north": {"uv": [8, 11], "uv_size": [-6, 1]},
+ "east": {"uv": [1, 10], "uv_size": [0, 3]},
+ "south": {"uv": [1, 10], "uv_size": [1, 5]},
+ "west": {"uv": [6, 10], "uv_size": [0, 3]},
+ "up": {"uv": [1, 10], "uv_size": [5, 0]},
+ "down": {"uv": [6, 10], "uv_size": [5, 0]}
+ }
+ }
+ ]
+ },
+ {
+ "name": "Right",
+ "parent": "Whiskas",
+ "pivot": [2, 3.5, -11.5],
+ "rotation": [0, 5, 7.5],
+ "cubes": [
+ {
+ "origin": [1.75, 4, -11.52],
+ "size": [5, 0.5, 0],
+ "pivot": [2, 3.5, -11.5],
+ "rotation": [0, 0, -5],
+ "uv": {
+ "north": {"uv": [2, 11], "uv_size": [6, 1]},
+ "east": {"uv": [1, 6], "uv_size": [0, 3]},
+ "south": {"uv": [1, 10], "uv_size": [1, 5]},
+ "west": {"uv": [6, 6], "uv_size": [0, 3]},
+ "up": {"uv": [1, 6], "uv_size": [5, 0]},
+ "down": {"uv": [6, 6], "uv_size": [5, 0]}
+ }
+ },
+ {
+ "origin": [1.75, 3.25, -11.52],
+ "size": [5, 0.5, 0],
+ "uv": {
+ "north": {"uv": [2, 11], "uv_size": [6, 1]},
+ "east": {"uv": [1, 6], "uv_size": [0, 3]},
+ "south": {"uv": [1, 10], "uv_size": [1, 5]},
+ "west": {"uv": [6, 6], "uv_size": [0, 3]},
+ "up": {"uv": [1, 6], "uv_size": [5, 0]},
+ "down": {"uv": [6, 6], "uv_size": [5, 0]}
+ }
+ },
+ {
+ "origin": [1.75, 2.5, -11.52],
+ "size": [5, 0.5, 0],
+ "pivot": [2, 3.5, -11.5],
+ "rotation": [0, 0, 5],
+ "uv": {
+ "north": {"uv": [2, 11], "uv_size": [6, 1]},
+ "east": {"uv": [1, 6], "uv_size": [0, 3]},
+ "south": {"uv": [1, 10], "uv_size": [1, 5]},
+ "west": {"uv": [6, 6], "uv_size": [0, 3]},
+ "up": {"uv": [1, 6], "uv_size": [5, 0]},
+ "down": {"uv": [6, 6], "uv_size": [5, 0]}
+ }
+ }
+ ]
+ },
+ {
+ "name": "Body",
+ "pivot": [0, 10, 15.5],
+ "cubes": [
+ {"origin": [-7, 0, -3.5], "size": [14, 7, 21], "uv": [0, 0]},
+ {"origin": [-1.5, 6, 17], "size": [3, 1, 5], "uv": [-1, -1]}
+ ]
+ },
+ {
+ "name": "bone2",
+ "pivot": [0, 0, 0],
+ "cubes": [
+ {"origin": [-10, 0, -5], "size": [4, 1.5, 7], "uv": [0, 46]},
+ {"origin": [6, 0, -5], "size": [4, 1.5, 7], "uv": [17, 47]}
+ ]
+ },
+ {
+ "name": "bone3",
+ "pivot": [0, 0, 15],
+ "cubes": [
+ {"origin": [-10.5, 0, 11], "size": [4, 1.5, 7], "uv": [33, 39]},
+ {"origin": [6.5, 0, 11], "size": [4, 1.5, 7], "uv": [30, 28]}
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/arctic/lang/en_us.json b/src/main/resources/assets/arctic/lang/en_us.json
index da5ae55..8c2f705 100644
--- a/src/main/resources/assets/arctic/lang/en_us.json
+++ b/src/main/resources/assets/arctic/lang/en_us.json
@@ -1,4 +1,7 @@
{
"modmenu.nameTranslation.arctic": "Arctic",
- "modmenu.descriptionTranslation.arctic": "A mini overhaul of cold biomes."
+ "modmenu.descriptionTranslation.arctic": "A mini overhaul of cold biomes.",
+
+ "item.arctic.baby_emperor_spawn_egg": "Baby Emperor Spawn Egg",
+ "item.arctic.seal_spawn_egg": "Seal Spawn Egg"
}
\ No newline at end of file
diff --git a/src/main/resources/assets/arctic/lang/hu_hu.json b/src/main/resources/assets/arctic/lang/hu_hu.json
deleted file mode 100644
index 4cd64fc..0000000
--- a/src/main/resources/assets/arctic/lang/hu_hu.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "modmenu.nameTranslation.arctic": "Sarkvidék",
- "modmenu.descriptionTranslation.arctic": "Mini felújítása a hideg biomoknak."
-}
\ No newline at end of file
diff --git a/src/main/resources/assets/arctic/models/item/seal_spawn_egg.json b/src/main/resources/assets/arctic/models/item/seal_spawn_egg.json
new file mode 100644
index 0000000..d1aaa9d
--- /dev/null
+++ b/src/main/resources/assets/arctic/models/item/seal_spawn_egg.json
@@ -0,0 +1,3 @@
+{
+ "parent": "minecraft:item/template_spawn_egg"
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/arctic/textures/entity/penguin/hululu.png b/src/main/resources/assets/arctic/textures/entity/penguin/hululu.png
new file mode 100644
index 0000000000000000000000000000000000000000..091ac08e387901f19141e53e63e29d683e399707
GIT binary patch
literal 12860
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
Y+
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
D1^@-y
literal 0
HcmV?d00001
diff --git a/src/main/resources/assets/arctic/textures/entity/seal/seal.png b/src/main/resources/assets/arctic/textures/entity/seal/seal.png
new file mode 100644
index 0000000000000000000000000000000000000000..1cb20c38c5add507dcf66b4042b4adee7e830d0b
GIT binary patch
literal 1999
zcmcJQ`#;kQ1INE(3!B<#siWl@xm3cbsANOAG?Fy3u}PAMg`Ul2*}*cARF06%E$pm^
zNHN6@a|ts#gyeoZRAUZCF3a)!5zh~w_viI`|MdColjQ1RzZ0qs1pr{Dql2B>cGLeC
z#U0yhJnJh20EG-kJB&LuXO2~uinK?3*y^oJG(l%fSAqi$q7aL~Gp%yezNAc4l1Die
zdRPOLT%RRV3{d*|MCiaw%ehK^?BDj9;rk91A?+87=Q|EJmeRH~@8)LXs@d`{Ctzrx_q9^t>tzn6^%Gq6aLZ84TzfBfYjEKC9?C65
zu-@L?F|}1fYI0_0LRWs@)15Rk)+OjMq_e<1{fX+KeEbMZq=BBCu|56fVzIds2#1ex
zMsRGj^d+pAQdB3{tGRuw2)669Wbq
zK2DH7GOq}IQzIGD@S`Uk{#!BcV3`ObkP@o*Xc;C(?SI%_Air_l$h-xB-h3mCI_ecd
zIq@yIm6w72AX;>n>d*RrWdaCM(AkMl(b8@&vxiqHAfLCdBMucgWhNS^f*MTHHLiJH
zC^k=)%k%6P8d!(IZe!ziDFS;Kg6BT7oD6J$2E?I(@Qd_$vzl7&B4nk6X={3{R`01J
zluV`m(50W`u6x;yP$k4%7VALh2BiDTE-gh%=LD4_aSbCJvR!VZk-GGuY-7V^z!*BgB=>v@YeSFSpoOf3`P$^+HfAyW=Zp
zPXB?CXy0E?+LUqh!b07;$R&LrevA@eVP)kV6y5uUsCYFW@fI0UYkXT?=-sfeJ=#@g
zc6Qdmgvd{ckCz|f)ApB?l+>#aUQVz}v&qjuLQ56I>fD8q#tpS^c;NF_a@)o-$*r}F-4&C?Ke?B(2)
zfQ(9@f)HCbU0wNG(PaGs{(2y1wT~ZZ#>%3AEIl-B1zb7KjC*-)Z12p*-)+C1f@o*2
ze*dO2Oy!@?^azc+OqI3?Y{?3|=6e+@gKl|fy&IzUU}qs?$_=i9CR|!q8M15LTQk)E
z(d2T9c2O-WmS?~yuG7f-lvMORbKDs0Ia-1UO!EVd``&W9uT{$-Fmz_4mlTS3aTm(R
zj@>KeBpN0n!rND-g~+Amv~gSnvR*9W-LyJ>C
z5k&cvjo%Qhp$)TW@2n&5M_3zdswn@&MUEcT3*T6`{hc&?BBVV7ezpa*AMv#PwmRZIW#>ZI2TF@@1Q
z8Y|0pL278YKpymAErSQHg_TI>-0lPrHMy?QA1=Nzt$9z{{L)k^XbC1Ju&?>3xu{zx
zFjvuqXjpwD`oJ~m**tOx++WFqRMRBfh#e!%Eb0KL91CIpX-?|tVt+5H59%PhyD()6
zXnH%ur4Q*b2jh7cEPhT~l4O&UGbi@0f2}mtK^S&Qmo7;X;{wO$JS_r&O9{$lEk??x
z1H;E>RxQu@X$HZnL>G;{6?z2E2fp=|2YHl*
zys6iAir5<0ouBMV3WtBFd1OuO^ai!A*+6(>uArk9ctfC?v_(@J3~sm=wQfN;L#tg*
z;csCJ;6{I~En=#ChCb}JQPfUA{6CPkWwj+25W@VpX|{K0`=|lOb1rseHl(
Date: Fri, 29 Dec 2023 15:50:15 +0100
Subject: [PATCH 3/5] fix: fix health for easteregg
---
.../me/theclashfruit/arctic/entity/penguin/CardboardEntity.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java b/src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java
index d93be08..ea3d788 100644
--- a/src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java
+++ b/src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java
@@ -27,7 +27,7 @@ public class CardboardEntity extends AnimalEntity implements GeoEntity {
public static DefaultAttributeContainer.Builder createCardboardAttributes() {
return AnimalEntity.createMobAttributes()
- .add(EntityAttributes.GENERIC_MAX_HEALTH, 0)
+ .add(EntityAttributes.GENERIC_MAX_HEALTH, 10)
.add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0);
}
From 54207eebd95c86dc649de7faf815a058774e19e3 Mon Sep 17 00:00:00 2001
From: TheClashFruit
Date: Fri, 29 Dec 2023 16:14:25 +0100
Subject: [PATCH 4/5] docs: add mr badge
---
README.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index adb956c..1775841 100644
--- a/README.md
+++ b/README.md
@@ -13,22 +13,22 @@
-
-
+
+
+
From e9592f8300f62125f29f0228760544178c0e11a4 Mon Sep 17 00:00:00 2001
From: TheClashFruit
Date: Fri, 29 Dec 2023 20:36:37 +0100
Subject: [PATCH 5/5] feat, fix: few changes and fixes to mobs
---
build.gradle | 3 ++
.../penguins/babyEmperor/babyEmperor.bbmodel | 2 +-
.../client/entity/seal/SealRenderer.java | 11 ++++
.../entity/penguin/BabyEmperorEntity.java | 42 ++++++++++++---
.../entity/penguin/CardboardEntity.java | 2 +-
.../arctic/entity/seal/SealEntity.java | 48 ++++++++++++++----
.../arctic/world/ArcticEntityGeneration.java | 25 ++++++---
.../resources/assets/arctic/lang/en_us.json | 6 ++-
.../textures/entity/penguin/baby_emperor.png | Bin 4007 -> 4048 bytes
9 files changed, 113 insertions(+), 26 deletions(-)
diff --git a/build.gradle b/build.gradle
index da062ce..3ab2bc6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -36,6 +36,9 @@ dependencies {
// Development Runtime Mods.
modLocalRuntime("maven.modrinth:modmenu:${project.modmenu_version}")
+
+ modLocalRuntime("maven.modrinth:wthit:fabric-10.0.1")
+ modLocalRuntime("maven.modrinth:badpackets:fabric-0.5.4")
}
processResources {
diff --git a/rawModels/penguins/babyEmperor/babyEmperor.bbmodel b/rawModels/penguins/babyEmperor/babyEmperor.bbmodel
index d9fcfb1..721a267 100644
--- a/rawModels/penguins/babyEmperor/babyEmperor.bbmodel
+++ b/rawModels/penguins/babyEmperor/babyEmperor.bbmodel
@@ -1 +1 @@
-{"meta":{"format_version":"4.9","model_format":"animated_entity_model","box_uv":true},"name":"BabyEmperor","model_identifier":"Arctic-Penguin-BabyEmperor","front_gui_light":false,"visible_box":[2,2.5,0.75],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":64,"height":64},"elements":[{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-3.75,0.55,-2.8],"to":[3.75,10.549999999999999,3.2],"autouv":0,"color":3,"rotation":[-1,0,0],"origin":[0,0,0],"faces":{"north":{"uv":[6,6,13,16],"texture":0},"east":{"uv":[0,6,6,16],"texture":0},"south":{"uv":[19,6,26,16],"texture":0},"west":{"uv":[13,6,19,16],"texture":0},"up":{"uv":[13,6,6,0],"texture":0},"down":{"uv":[20,0,13,6],"texture":0}},"type":"cube","uuid":"b20628e3-5ab5-0edc-6799-2e9b04f662bf"},{"name":"Head","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-3,10.5,-2.75],"to":[3,15.5,2.75],"autouv":0,"color":3,"origin":[0,0,0],"uv_offset":[0,16],"faces":{"north":{"uv":[5,21,11,26],"texture":0},"east":{"uv":[0,21,5,26],"texture":0},"south":{"uv":[16,21,22,26],"texture":0},"west":{"uv":[11,21,16,26],"texture":0},"up":{"uv":[11,21,5,16],"texture":0},"down":{"uv":[17,16,11,21],"texture":0}},"type":"cube","uuid":"1c7b5536-f047-10c1-48f6-feb1a3113908"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[0.5,0,-4.25],"to":[3.5,1,2.25],"autouv":0,"color":4,"rotation":[-2.5,-2.5,0],"origin":[0,0,0],"uv_offset":[28,0],"faces":{"north":{"uv":[34,6,37,7],"texture":0},"east":{"uv":[28,6,34,7],"texture":0},"south":{"uv":[43,6,46,7],"texture":0},"west":{"uv":[37,6,43,7],"texture":0},"up":{"uv":[37,6,34,0],"texture":0},"down":{"uv":[40,0,37,6],"texture":0}},"type":"cube","uuid":"e10c74e6-1a4e-1f26-95f3-680abf8a7075"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-3.5,0,-4.25],"to":[-0.5,1,2.25],"autouv":0,"color":4,"rotation":[-2.5,2.5,0],"origin":[0,0,0],"uv_offset":[0,28],"faces":{"north":{"uv":[6,34,9,35],"texture":0},"east":{"uv":[0,34,6,35],"texture":0},"south":{"uv":[15,34,18,35],"texture":0},"west":{"uv":[9,34,15,35],"texture":0},"up":{"uv":[9,34,6,28],"texture":0},"down":{"uv":[12,28,9,34],"texture":0}},"type":"cube","uuid":"72861e72-6fc2-ccfa-7e96-f1ced2addcd8"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-1.5,0.5,2.5],"to":[1.5,1.5,4.5],"autouv":0,"color":5,"rotation":[5,0,0],"origin":[0,0.5,2.5],"uv_offset":[22,0],"faces":{"north":{"uv":[24,2,27,3],"texture":0},"east":{"uv":[22,2,24,3],"texture":0},"south":{"uv":[29,2,32,3],"texture":0},"west":{"uv":[27,2,29,3],"texture":0},"up":{"uv":[27,2,24,0],"texture":0},"down":{"uv":[30,0,27,2],"texture":0}},"type":"cube","uuid":"6974287c-b248-b492-6642-543044c18141"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-1,11.35,-4],"to":[1,12.35,-2],"autouv":0,"color":1,"rotation":[-7.5,0,0],"origin":[0,11.6,-2],"uv_offset":[22,3],"faces":{"north":{"uv":[24,5,26,6],"texture":0},"east":{"uv":[22,5,24,6],"texture":0},"south":{"uv":[28,5,30,6],"texture":0},"west":{"uv":[26,5,28,6],"texture":0},"up":{"uv":[26,5,24,3],"texture":0},"down":{"uv":[28,3,26,5],"texture":0}},"type":"cube","uuid":"26fedd74-33e7-cd82-00e3-8faef88de0c2"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-4.25,2.2,-1.5],"to":[-3.25,10.45,2],"autouv":0,"color":0,"rotation":[2.5,0,-5],"origin":[-4,10.5,0],"uv_offset":[26,13],"faces":{"north":{"uv":[29,16,30,24],"texture":0},"east":{"uv":[26,16,29,24],"texture":0},"south":{"uv":[33,16,34,24],"texture":0},"west":{"uv":[30,16,33,24],"texture":0},"up":{"uv":[30,16,29,13],"texture":0},"down":{"uv":[31,13,30,16],"texture":0}},"type":"cube","uuid":"3805fe48-c6b2-e6ff-c063-dadd8e30ddce"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[3.25,2.2,-1.5],"to":[4.25,10.45,2],"autouv":0,"color":0,"rotation":[2.5,0,5],"origin":[4,10.5,0],"uv_offset":[19,23],"faces":{"north":{"uv":[22,26,23,34],"texture":0},"east":{"uv":[19,26,22,34],"texture":0},"south":{"uv":[26,26,27,34],"texture":0},"west":{"uv":[23,26,26,34],"texture":0},"up":{"uv":[23,26,22,23],"texture":0},"down":{"uv":[24,23,23,26],"texture":0}},"type":"cube","uuid":"0dd9672b-e7ca-a84d-dc03-e733582a3748"}],"outliner":[{"name":"Body","origin":[0,0,0],"color":0,"uuid":"b595c362-341c-928f-1cd8-95081f9ca7ae","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["b20628e3-5ab5-0edc-6799-2e9b04f662bf",{"name":"Head","origin":[0,0,0],"color":0,"uuid":"06f7eace-9e10-6973-f7ba-c1e2a41b8559","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["1c7b5536-f047-10c1-48f6-feb1a3113908",{"name":"Beak","origin":[0,11.6,-2],"color":0,"uuid":"7d20eddc-d2fc-c2f5-c27e-d729a0611caf","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["26fedd74-33e7-cd82-00e3-8faef88de0c2"]}]},{"name":"Tail","origin":[0,0.5,2.5],"color":0,"uuid":"0781137a-fc61-3fad-53fd-bcabb5aa5b03","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["6974287c-b248-b492-6642-543044c18141"]},{"name":"Arms","origin":[4,10.5,0],"color":0,"uuid":"72211629-9c8c-bd30-c0b0-8184f37bbca4","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":[{"name":"RightArm","origin":[-4,10.5,0],"color":0,"uuid":"4a95eca0-acca-531e-ff14-3cc6216b07ce","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["3805fe48-c6b2-e6ff-c063-dadd8e30ddce"]},{"name":"LeftArm","origin":[4,10.5,0],"color":0,"uuid":"b86b624c-d0ea-a221-9450-76327e1f5e89","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["0dd9672b-e7ca-a84d-dc03-e733582a3748"]}]},{"name":"Foots","origin":[0,0,0],"color":0,"uuid":"333c2834-4928-962f-3487-f9a00d80fcb2","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":[{"name":"LeftFoot","origin":[0,0,0],"color":0,"uuid":"586e5424-1b24-7287-3b59-d8dfe9d75d49","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["72861e72-6fc2-ccfa-7e96-f1ced2addcd8"]},{"name":"RightFoot","origin":[0,0,0],"color":0,"uuid":"658c5447-869e-8dd9-53aa-852a31af4cc4","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["e10c74e6-1a4e-1f26-95f3-680abf8a7075"]}]}]}],"textures":[{"path":"/home/nyan/documents/Blockbench/Penguin/texture.png","name":"texture.png","folder":"block","namespace":"","id":"0","width":128,"height":128,"uv_width":64,"uv_height":64,"particle":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"2a6e3a5c-c2fc-e3f7-381d-79ef81a6d118","relative_path":"../../../../../Penguin/texture.png","source":"data:image/png;base64,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"}],"animations":[{"uuid":"6e138e8a-3e53-b63d-c037-68b3b6b17f9f","name":"animation.FM-Penguin.new","loop":"once","override":false,"length":1.75,"snapping":24,"selected":false,"saved":false,"path":"","anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"4a95eca0-acca-531e-ff14-3cc6216b07ce":{"name":"RightArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"7fa1524c-8815-16a9-a5be-0eb3fed62464","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":-30}],"uuid":"b5f0c4e4-4645-bca9-ef28-944035b34769","time":1,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"d87aafa3-15cf-7204-5276-a345a4d30e57","time":0.5,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":5}],"uuid":"3b98a707-c5e0-8ba0-e4c6-f67d4bdbf563","time":1.5,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"932f454d-59b5-32cc-76c3-5adb6ac8469e","time":1.75,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"}]},"b86b624c-d0ea-a221-9450-76327e1f5e89":{"name":"LeftArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"3cb1a103-48a5-4670-6cbf-4219250275b5","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":25}],"uuid":"1e7d3864-8f2d-9481-9dae-ada103355aaa","time":0.5,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":-5}],"uuid":"686e0e74-99c2-680c-51a6-47765e1dfb28","time":1,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"09e90603-bb41-dec0-39bf-f74ecb656a8e","time":1.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"}]}}}],"display":{},"geckoSettings":{"formatVersion":2,"modSDK":"Forge 1.12 - 1.16","objectType":"OBJ_TYPE_ITEM_BLOCK","entityType":"Entity","javaPackage":"com.example.mod","animFileNamespace":"MODID","animFilePath":"animations/ANIMATIONFILE.json"}}
\ No newline at end of file
+{"meta":{"format_version":"4.9","model_format":"animated_entity_model","box_uv":true},"name":"BabyEmperor","model_identifier":"Arctic-Penguin-BabyEmperor","front_gui_light":false,"visible_box":[2,2.5,0.75],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":64,"height":64},"elements":[{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-3.75,0.55,-2.8],"to":[3.75,10.549999999999999,3.2],"autouv":0,"color":3,"rotation":[-1,0,0],"origin":[0,0,0],"faces":{"north":{"uv":[6,6,13,16],"texture":0},"east":{"uv":[0,6,6,16],"texture":0},"south":{"uv":[19,6,26,16],"texture":0},"west":{"uv":[13,6,19,16],"texture":0},"up":{"uv":[13,6,6,0],"texture":0},"down":{"uv":[20,0,13,6],"texture":0}},"type":"cube","uuid":"b20628e3-5ab5-0edc-6799-2e9b04f662bf"},{"name":"Head","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-3,10.5,-2.75],"to":[3,15.5,2.75],"autouv":0,"color":3,"origin":[0,0,0],"uv_offset":[0,16],"faces":{"north":{"uv":[5,21,11,26],"texture":0},"east":{"uv":[0,21,5,26],"texture":0},"south":{"uv":[16,21,22,26],"texture":0},"west":{"uv":[11,21,16,26],"texture":0},"up":{"uv":[11,21,5,16],"texture":0},"down":{"uv":[17,16,11,21],"texture":0}},"type":"cube","uuid":"1c7b5536-f047-10c1-48f6-feb1a3113908"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[0.5,0,-4.25],"to":[3.5,1,2.25],"autouv":0,"color":4,"rotation":[-2.5,-2.5,0],"origin":[0,0,0],"uv_offset":[28,0],"faces":{"north":{"uv":[34,6,37,7],"texture":0},"east":{"uv":[28,6,34,7],"texture":0},"south":{"uv":[43,6,46,7],"texture":0},"west":{"uv":[37,6,43,7],"texture":0},"up":{"uv":[37,6,34,0],"texture":0},"down":{"uv":[40,0,37,6],"texture":0}},"type":"cube","uuid":"e10c74e6-1a4e-1f26-95f3-680abf8a7075"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-3.5,0,-4.25],"to":[-0.5,1,2.25],"autouv":0,"color":4,"rotation":[-2.5,2.5,0],"origin":[0,0,0],"uv_offset":[0,28],"faces":{"north":{"uv":[6,34,9,35],"texture":0},"east":{"uv":[0,34,6,35],"texture":0},"south":{"uv":[15,34,18,35],"texture":0},"west":{"uv":[9,34,15,35],"texture":0},"up":{"uv":[9,34,6,28],"texture":0},"down":{"uv":[12,28,9,34],"texture":0}},"type":"cube","uuid":"72861e72-6fc2-ccfa-7e96-f1ced2addcd8"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-1.5,0.5,2.5],"to":[1.5,1.5,4.5],"autouv":0,"color":5,"rotation":[5,0,0],"origin":[0,0.5,2.5],"uv_offset":[22,0],"faces":{"north":{"uv":[24,2,27,3],"texture":0},"east":{"uv":[22,2,24,3],"texture":0},"south":{"uv":[29,2,32,3],"texture":0},"west":{"uv":[27,2,29,3],"texture":0},"up":{"uv":[27,2,24,0],"texture":0},"down":{"uv":[30,0,27,2],"texture":0}},"type":"cube","uuid":"6974287c-b248-b492-6642-543044c18141"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-1,11.35,-4],"to":[1,12.35,-2],"autouv":0,"color":1,"rotation":[-7.5,0,0],"origin":[0,11.6,-2],"uv_offset":[22,3],"faces":{"north":{"uv":[24,5,26,6],"texture":0},"east":{"uv":[22,5,24,6],"texture":0},"south":{"uv":[28,5,30,6],"texture":0},"west":{"uv":[26,5,28,6],"texture":0},"up":{"uv":[26,5,24,3],"texture":0},"down":{"uv":[28,3,26,5],"texture":0}},"type":"cube","uuid":"26fedd74-33e7-cd82-00e3-8faef88de0c2"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-4.25,2.2,-1.5],"to":[-3.25,10.45,2],"autouv":0,"color":0,"rotation":[2.5,0,-5],"origin":[-4,10.5,0],"uv_offset":[26,13],"faces":{"north":{"uv":[29,16,30,24],"texture":0},"east":{"uv":[26,16,29,24],"texture":0},"south":{"uv":[33,16,34,24],"texture":0},"west":{"uv":[30,16,33,24],"texture":0},"up":{"uv":[30,16,29,13],"texture":0},"down":{"uv":[31,13,30,16],"texture":0}},"type":"cube","uuid":"3805fe48-c6b2-e6ff-c063-dadd8e30ddce"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[3.25,2.2,-1.5],"to":[4.25,10.45,2],"autouv":0,"color":0,"rotation":[2.5,0,5],"origin":[4,10.5,0],"uv_offset":[19,23],"faces":{"north":{"uv":[22,26,23,34],"texture":0},"east":{"uv":[19,26,22,34],"texture":0},"south":{"uv":[26,26,27,34],"texture":0},"west":{"uv":[23,26,26,34],"texture":0},"up":{"uv":[23,26,22,23],"texture":0},"down":{"uv":[24,23,23,26],"texture":0}},"type":"cube","uuid":"0dd9672b-e7ca-a84d-dc03-e733582a3748"}],"outliner":[{"name":"Body","origin":[0,0,0],"color":0,"uuid":"b595c362-341c-928f-1cd8-95081f9ca7ae","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["b20628e3-5ab5-0edc-6799-2e9b04f662bf",{"name":"Head","origin":[0,13,0],"color":0,"uuid":"06f7eace-9e10-6973-f7ba-c1e2a41b8559","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["1c7b5536-f047-10c1-48f6-feb1a3113908",{"name":"Beak","origin":[0,11.6,-2],"color":0,"uuid":"7d20eddc-d2fc-c2f5-c27e-d729a0611caf","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["26fedd74-33e7-cd82-00e3-8faef88de0c2"]}]},{"name":"Tail","origin":[0,0.5,2.5],"color":0,"uuid":"0781137a-fc61-3fad-53fd-bcabb5aa5b03","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["6974287c-b248-b492-6642-543044c18141"]},{"name":"Arms","origin":[4,10.5,0],"color":0,"uuid":"72211629-9c8c-bd30-c0b0-8184f37bbca4","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":[{"name":"RightArm","origin":[-4,10.5,0],"color":0,"uuid":"4a95eca0-acca-531e-ff14-3cc6216b07ce","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["3805fe48-c6b2-e6ff-c063-dadd8e30ddce"]},{"name":"LeftArm","origin":[4,10.5,0],"color":0,"uuid":"b86b624c-d0ea-a221-9450-76327e1f5e89","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["0dd9672b-e7ca-a84d-dc03-e733582a3748"]}]},{"name":"Foots","origin":[0,0,0],"color":0,"uuid":"333c2834-4928-962f-3487-f9a00d80fcb2","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":[{"name":"LeftFoot","origin":[0,0,0],"color":0,"uuid":"586e5424-1b24-7287-3b59-d8dfe9d75d49","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["72861e72-6fc2-ccfa-7e96-f1ced2addcd8"]},{"name":"RightFoot","origin":[0,0,0],"color":0,"uuid":"658c5447-869e-8dd9-53aa-852a31af4cc4","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["e10c74e6-1a4e-1f26-95f3-680abf8a7075"]}]}]}],"textures":[{"path":"/home/nyan/documents/Blockbench/Penguin/texture.png","name":"texture.png","folder":"block","namespace":"","id":"0","width":128,"height":128,"uv_width":64,"uv_height":64,"particle":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":false,"uuid":"2a6e3a5c-c2fc-e3f7-381d-79ef81a6d118","source":"data:image/png;base64,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","relative_path":"../../../../../../../../../home/nyan/documents/Blockbench/Penguin/texture.png"}],"animations":[{"uuid":"6e138e8a-3e53-b63d-c037-68b3b6b17f9f","name":"animation.FM-Penguin.new","loop":"once","override":false,"length":1.75,"snapping":24,"selected":true,"saved":false,"path":"","anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"4a95eca0-acca-531e-ff14-3cc6216b07ce":{"name":"RightArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"7fa1524c-8815-16a9-a5be-0eb3fed62464","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":-30}],"uuid":"b5f0c4e4-4645-bca9-ef28-944035b34769","time":1,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"d87aafa3-15cf-7204-5276-a345a4d30e57","time":0.5,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":5}],"uuid":"3b98a707-c5e0-8ba0-e4c6-f67d4bdbf563","time":1.5,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"932f454d-59b5-32cc-76c3-5adb6ac8469e","time":1.75,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"}]},"b86b624c-d0ea-a221-9450-76327e1f5e89":{"name":"LeftArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"3cb1a103-48a5-4670-6cbf-4219250275b5","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":25}],"uuid":"1e7d3864-8f2d-9481-9dae-ada103355aaa","time":0.5,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":-5}],"uuid":"686e0e74-99c2-680c-51a6-47765e1dfb28","time":1,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"09e90603-bb41-dec0-39bf-f74ecb656a8e","time":1.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0],"easing":"easeInBack"}]}}}],"geckoSettings":{"formatVersion":2,"modSDK":"Forge 1.12 - 1.16","objectType":"OBJ_TYPE_ITEM_BLOCK","entityType":"Entity","javaPackage":"com.example.mod","animFileNamespace":"MODID","animFilePath":"animations/ANIMATIONFILE.json"}}
\ No newline at end of file
diff --git a/src/main/java/me/theclashfruit/arctic/client/entity/seal/SealRenderer.java b/src/main/java/me/theclashfruit/arctic/client/entity/seal/SealRenderer.java
index bab6676..b1db637 100644
--- a/src/main/java/me/theclashfruit/arctic/client/entity/seal/SealRenderer.java
+++ b/src/main/java/me/theclashfruit/arctic/client/entity/seal/SealRenderer.java
@@ -2,7 +2,9 @@ package me.theclashfruit.arctic.client.entity.seal;
import me.theclashfruit.arctic.entity.penguin.BabyEmperorEntity;
import me.theclashfruit.arctic.entity.seal.SealEntity;
+import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.EntityRendererFactory;
+import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.Identifier;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
@@ -17,4 +19,13 @@ public class SealRenderer extends GeoEntityRenderer {
public Identifier getTextureLocation(SealEntity animatable) {
return new Identifier(MOD_ID, "textures/entity/seal/seal.png");
}
+
+ @Override
+ public void render(SealEntity entity, float entityYaw, float partialTick, MatrixStack poseStack, VertexConsumerProvider bufferSource, int packedLight) {
+ if(entity.isBaby()) {
+ poseStack.scale(0.5f, 0.5f, 0.5f);
+ }
+
+ super.render(entity, entityYaw, partialTick, poseStack, bufferSource, packedLight);
+ }
}
diff --git a/src/main/java/me/theclashfruit/arctic/entity/penguin/BabyEmperorEntity.java b/src/main/java/me/theclashfruit/arctic/entity/penguin/BabyEmperorEntity.java
index bd9f5a6..760bf05 100644
--- a/src/main/java/me/theclashfruit/arctic/entity/penguin/BabyEmperorEntity.java
+++ b/src/main/java/me/theclashfruit/arctic/entity/penguin/BabyEmperorEntity.java
@@ -1,14 +1,26 @@
package me.theclashfruit.arctic.entity.penguin;
+import me.theclashfruit.arctic.entity.seal.SealEntity;
import net.minecraft.entity.EntityType;
+import net.minecraft.entity.SpawnReason;
import net.minecraft.entity.ai.goal.*;
import net.minecraft.entity.attribute.DefaultAttributeContainer;
import net.minecraft.entity.attribute.EntityAttributes;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.passive.PassiveEntity;
+import net.minecraft.entity.passive.PolarBearEntity;
import net.minecraft.entity.player.PlayerEntity;
+import net.minecraft.item.Items;
+import net.minecraft.recipe.Ingredient;
+import net.minecraft.registry.entry.RegistryEntry;
+import net.minecraft.registry.tag.BiomeTags;
+import net.minecraft.registry.tag.BlockTags;
import net.minecraft.server.world.ServerWorld;
+import net.minecraft.util.math.BlockPos;
+import net.minecraft.util.math.random.Random;
import net.minecraft.world.World;
+import net.minecraft.world.WorldAccess;
+import net.minecraft.world.biome.Biome;
import org.jetbrains.annotations.Nullable;
import software.bernie.geckolib.animatable.GeoEntity;
import software.bernie.geckolib.core.animatable.GeoAnimatable;
@@ -42,17 +54,31 @@ public class BabyEmperorEntity extends AnimalEntity implements GeoEntity {
@Override
protected void initGoals() {
this.goalSelector.add(0, new SwimGoal(this));
- this.goalSelector.add(0, new EscapeDangerGoal(this, 0.65D));
- this.goalSelector.add(1, new LookAroundGoal(this));
- this.goalSelector.add(1, new WanderAroundGoal(this, 0.55D));
- this.goalSelector.add(2, new LookAtEntityGoal(this, PlayerEntity.class, 6.0F));
+ this.goalSelector.add(1, new EscapeDangerGoal(this, 1.0));
+
+ // this.goalSelector.add(3, new AnimalMateGoal(this, 0.85));
+ // this.goalSelector.add(4, new TemptGoal(this, 1.2, Ingredient.ofItems(Items.SALMON), false));
+ // this.goalSelector.add(5, new FollowParentGoal(this, 1.1));
+
+ this.goalSelector.add(6, new WanderAroundGoal(this, 0.85));
+ this.goalSelector.add(7, new LookAtEntityGoal(this, PlayerEntity.class, 6.0f));
+ this.goalSelector.add(8, new LookAroundGoal(this));
+ }
+
+ public static boolean canSpawn(EntityType type, WorldAccess world, SpawnReason spawnReason, BlockPos pos, Random random) {
+ RegistryEntry registryEntry = world.getBiome(pos);
+
+ if (registryEntry.isIn(BiomeTags.POLAR_BEARS_SPAWN_ON_ALTERNATE_BLOCKS))
+ return BabyEmperorEntity.isLightLevelValidForNaturalSpawn(world, pos) && world.getBlockState(pos.down()).isIn(BlockTags.POLAR_BEARS_SPAWNABLE_ON_ALTERNATE);
+
+ return BabyEmperorEntity.isValidNaturalSpawn(type, world, spawnReason, pos, random);
}
protected PlayState predicate(final AnimationState event) {
- if(event.isMoving())
- return event.setAndContinue(
- RawAnimation.begin().thenLoop("animation.baby_emperor.walk")
- );
+// if(event.isMoving())
+// return event.setAndContinue(
+// RawAnimation.begin().thenLoop("animation.baby_emperor.walk")
+// );
return PlayState.STOP;
}
diff --git a/src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java b/src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java
index ea3d788..e5dd0c1 100644
--- a/src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java
+++ b/src/main/java/me/theclashfruit/arctic/entity/penguin/CardboardEntity.java
@@ -27,7 +27,7 @@ public class CardboardEntity extends AnimalEntity implements GeoEntity {
public static DefaultAttributeContainer.Builder createCardboardAttributes() {
return AnimalEntity.createMobAttributes()
- .add(EntityAttributes.GENERIC_MAX_HEALTH, 10)
+ .add(EntityAttributes.GENERIC_MAX_HEALTH, 20)
.add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0);
}
diff --git a/src/main/java/me/theclashfruit/arctic/entity/seal/SealEntity.java b/src/main/java/me/theclashfruit/arctic/entity/seal/SealEntity.java
index fb3d145..040e139 100644
--- a/src/main/java/me/theclashfruit/arctic/entity/seal/SealEntity.java
+++ b/src/main/java/me/theclashfruit/arctic/entity/seal/SealEntity.java
@@ -1,15 +1,28 @@
package me.theclashfruit.arctic.entity.seal;
+import me.theclashfruit.arctic.entity.ArcticEntities;
import me.theclashfruit.arctic.entity.penguin.BabyEmperorEntity;
import net.minecraft.entity.EntityType;
+import net.minecraft.entity.SpawnReason;
import net.minecraft.entity.ai.goal.*;
import net.minecraft.entity.attribute.DefaultAttributeContainer;
import net.minecraft.entity.attribute.EntityAttributes;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.passive.PassiveEntity;
+import net.minecraft.entity.passive.PolarBearEntity;
import net.minecraft.entity.player.PlayerEntity;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.Items;
+import net.minecraft.recipe.Ingredient;
+import net.minecraft.registry.entry.RegistryEntry;
+import net.minecraft.registry.tag.BiomeTags;
+import net.minecraft.registry.tag.BlockTags;
import net.minecraft.server.world.ServerWorld;
+import net.minecraft.util.math.BlockPos;
+import net.minecraft.util.math.random.Random;
import net.minecraft.world.World;
+import net.minecraft.world.WorldAccess;
+import net.minecraft.world.biome.Biome;
import org.jetbrains.annotations.Nullable;
import software.bernie.geckolib.animatable.GeoEntity;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
@@ -37,23 +50,40 @@ public class SealEntity extends AnimalEntity implements GeoEntity {
@Nullable
@Override
public PassiveEntity createChild(ServerWorld world, PassiveEntity entity) {
- return null;
+ return ArcticEntities.SEAL.create(world);
+ }
+
+ @Override
+ public boolean isBreedingItem(ItemStack stack) {
+ return stack.getItem() == Items.SALMON;
}
@Override
protected void initGoals() {
this.goalSelector.add(0, new SwimGoal(this));
- this.goalSelector.add(0, new EscapeDangerGoal(this, 0.65D));
- this.goalSelector.add(1, new LookAroundGoal(this));
- this.goalSelector.add(1, new WanderAroundGoal(this, 0.55D));
- this.goalSelector.add(2, new LookAtEntityGoal(this, PlayerEntity.class, 6.0F));
+ this.goalSelector.add(1, new EscapeDangerGoal(this, 1.0));
+ this.goalSelector.add(3, new AnimalMateGoal(this, 0.85));
+ this.goalSelector.add(4, new TemptGoal(this, 1.2, Ingredient.ofItems(Items.SALMON), false));
+ this.goalSelector.add(5, new FollowParentGoal(this, 1.1));
+ this.goalSelector.add(6, new WanderAroundGoal(this, 0.85));
+ this.goalSelector.add(7, new LookAtEntityGoal(this, PlayerEntity.class, 6.0f));
+ this.goalSelector.add(8, new LookAroundGoal(this));
+ }
+
+ public static boolean canSpawn(EntityType type, WorldAccess world, SpawnReason spawnReason, BlockPos pos, Random random) {
+ RegistryEntry registryEntry = world.getBiome(pos);
+
+ if (registryEntry.isIn(BiomeTags.POLAR_BEARS_SPAWN_ON_ALTERNATE_BLOCKS))
+ return SealEntity.isLightLevelValidForNaturalSpawn(world, pos) && world.getBlockState(pos.down()).isIn(BlockTags.POLAR_BEARS_SPAWNABLE_ON_ALTERNATE);
+
+ return SealEntity.isValidNaturalSpawn(type, world, spawnReason, pos, random);
}
protected PlayState predicate(final AnimationState event) {
- if(event.isMoving())
- return event.setAndContinue(
- RawAnimation.begin().thenLoop("animation.seal.walk")
- );
+// if(event.isMoving())
+// return event.setAndContinue(
+// RawAnimation.begin().thenLoop("animation.seal.walk")
+// );
return PlayState.STOP;
}
diff --git a/src/main/java/me/theclashfruit/arctic/world/ArcticEntityGeneration.java b/src/main/java/me/theclashfruit/arctic/world/ArcticEntityGeneration.java
index 798753d..b61167e 100644
--- a/src/main/java/me/theclashfruit/arctic/world/ArcticEntityGeneration.java
+++ b/src/main/java/me/theclashfruit/arctic/world/ArcticEntityGeneration.java
@@ -1,12 +1,25 @@
package me.theclashfruit.arctic.world;
import me.theclashfruit.arctic.entity.ArcticEntities;
+import me.theclashfruit.arctic.entity.penguin.BabyEmperorEntity;
+import me.theclashfruit.arctic.entity.seal.SealEntity;
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
import net.fabricmc.fabric.api.biome.v1.BiomeSelectors;
+import net.minecraft.entity.EntityType;
import net.minecraft.entity.SpawnGroup;
+import net.minecraft.entity.SpawnReason;
import net.minecraft.entity.SpawnRestriction;
import net.minecraft.entity.passive.AnimalEntity;
+import net.minecraft.entity.passive.PigEntity;
+import net.minecraft.entity.passive.PolarBearEntity;
+import net.minecraft.registry.entry.RegistryEntry;
+import net.minecraft.registry.tag.BiomeTags;
+import net.minecraft.registry.tag.BlockTags;
+import net.minecraft.util.math.BlockPos;
+import net.minecraft.util.math.random.Random;
import net.minecraft.world.Heightmap;
+import net.minecraft.world.WorldAccess;
+import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.BiomeKeys;
public class ArcticEntityGeneration {
@@ -39,16 +52,16 @@ public class ArcticEntityGeneration {
SpawnRestriction.register(
ArcticEntities.BABY_EMPEROR,
- SpawnRestriction.Location.NO_RESTRICTIONS,
- Heightmap.Type.MOTION_BLOCKING_NO_LEAVES,
- AnimalEntity::isValidNaturalSpawn
+ SpawnRestriction.Location.ON_GROUND,
+ Heightmap.Type.WORLD_SURFACE,
+ BabyEmperorEntity::canSpawn
);
SpawnRestriction.register(
ArcticEntities.SEAL,
- SpawnRestriction.Location.NO_RESTRICTIONS,
- Heightmap.Type.MOTION_BLOCKING_NO_LEAVES,
- AnimalEntity::isValidNaturalSpawn
+ SpawnRestriction.Location.ON_GROUND,
+ Heightmap.Type.WORLD_SURFACE,
+ SealEntity::canSpawn
);
}
}
diff --git a/src/main/resources/assets/arctic/lang/en_us.json b/src/main/resources/assets/arctic/lang/en_us.json
index 8c2f705..8c0560d 100644
--- a/src/main/resources/assets/arctic/lang/en_us.json
+++ b/src/main/resources/assets/arctic/lang/en_us.json
@@ -3,5 +3,9 @@
"modmenu.descriptionTranslation.arctic": "A mini overhaul of cold biomes.",
"item.arctic.baby_emperor_spawn_egg": "Baby Emperor Spawn Egg",
- "item.arctic.seal_spawn_egg": "Seal Spawn Egg"
+ "item.arctic.seal_spawn_egg": "Seal Spawn Egg",
+
+ "entity.arctic.baby_emperor": "Baby Emperor",
+ "entity.arctic.seal": "Seal",
+ "entity.arctic.cardboard": "Hululu Cardboard"
}
\ No newline at end of file
diff --git a/src/main/resources/assets/arctic/textures/entity/penguin/baby_emperor.png b/src/main/resources/assets/arctic/textures/entity/penguin/baby_emperor.png
index b13b97113f7bef55ce139fc35c164804e108ebb8..4befd6436020b07b2f035f3f97f78e9c0fa6b814 100644
GIT binary patch
literal 4048
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
literal 4007
zcmcJS`8$;R8^@n9!(hnLVjs)l*a|s199c$%kTprNO;YxyY=dDaOR^LpVQh&R%Sd(&
zQpLKm$64!)W4nF3IMz`s4q
zMkg!uoVXs;(^^_qR(7LWrKQxXw5qg{i(h;;PpK0#Q+xDmChOL!>aU{03jc}6mwp*c
zEbiUX$vb7$h&|Yuju|xEnM9ey{a(s{rzP<8#RCTdY^nu)?Sy5eC>Z4`=Z=}C(!|l?
z#N~I_gUMHzd8z_bEjA;#>-V1zXySR^gh2@4@9$r*Od^q_3g8F*LqqnWy{EGk?F$2^
zc&U#zNJv2{<Fql@5F_eBbI=JLhqa=s-~WA>a>-Y+T%zeor*o
z#H|G8E6(FOPHu={cV+2iLW=lMbMaSHPXZ%4xj%g?hI@NVq(pjOazr$b@b>_dfXy+wVGs#9Ipe{
z{J2tmj_~_m!1PL!EnYs8mLQvo_qY%LHZx=Wr?Rp=!O_8N=qFZoJwmG32994=MIW%n
zJs!~X=-B@LepRao{o+fIw)#TiAqkPh4ahBVFlSMbhto+edExS0rDnAG%fzha@OdxG8SN%?Lm)tsL?Djbw%yT|r7p>I0Lh1I%x2
z2?Lapc-Gj}q#!y5nJ6bNjPt(6n<%HWA*G5_NpqC3!s8w$S_%bDBbdAU5BHgRXSRR*
z2%w+Y$B4MUj!MuH7~27Cj5}$11#WMy7Qf}