Compare commits

...

20 commits

Author SHA1 Message Date
TheClashFruit 9ff81509d9
feat: add workflow
All checks were successful
Build Project / build (push) Successful in 8m39s
2024-01-04 17:24:37 +01:00
Mya ffa67846b6
feat: Add new screenshots to Readme 2023-12-31 15:49:23 +01:00
Mya 779e7bd9ce
fix: Updated the logo's path 2023-12-31 15:40:29 +01:00
Mya e5de2c7de4 merge??? 2023-12-31 15:39:20 +01:00
Mya baa9f0c635 Uploaded some screenshots 2023-12-31 15:38:04 +01:00
Mya 7c070452c2
feat: Add Arctic logo to readme.md 2023-12-31 15:02:15 +01:00
Mya 3ea4bf4e9f merge?? 2023-12-31 14:55:46 +01:00
Mya 84441f0ebc feat: Add dark mode for arctic logo. 2023-12-31 14:54:58 +01:00
TheClashFruit ea8c842d28
feat: bump version 2023-12-31 12:30:39 +01:00
TheClashFruit c372a834fe
docs: add cf badge 2023-12-31 12:29:00 +01:00
TheClashFruit 377ef98b68
feat: update models, textures and add animation to the baby emperor 2023-12-31 12:27:02 +01:00
Mya 7d2e7c8e16 feat: Gave names to body parts to the seal raw model. 2023-12-31 01:11:32 +01:00
Mya b6ebf93500 fix: Misnamed arm 2023-12-31 01:09:25 +01:00
Mya c14675b1a9 Uploading animations for penguin 2023-12-31 01:08:36 +01:00
Mya 141fc362b4 Forgot a pixel in the seal's texture, woops. 2023-12-31 00:35:09 +01:00
Mya 24e63b6d5f Updated seal raw model+texture 2023-12-31 00:30:05 +01:00
Mya 4ed7d86a71 What?? 2023-12-31 00:29:04 +01:00
TheClashFruit e9592f8300
feat, fix: few changes and fixes to mobs 2023-12-29 20:36:37 +01:00
Mya 424a2d78bc Uploading Arctic's logo 2023-12-29 17:03:27 +01:00
TheClashFruit 54207eebd9
docs: add mr badge 2023-12-29 16:14:25 +01:00
23 changed files with 767 additions and 162 deletions

View file

@ -0,0 +1,28 @@
name: Build Project
on:
push:
branches: [ main ]
pull_request:
branches: [ main, dev/* ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v2
with:
distribution: "temurin"
java-version: 17
- name: Make Gradle Executable
run: chmod +x ./gradlew
- name: Build with Gradle
run: ./gradlew clean build
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
path: build/libs/*.jar

View file

@ -1,8 +1,8 @@
<p align="center">
<img alt="Arctic Icon" height="128px" width="128px" src="https://raw.theclashfruit.me/TheClashFruit/Arctic/main/src/main/resources/assets/arctic/icon.png">
<img alt="A submission to ModFest 1.20: Arctic" height="256px" src="https://raw.theclashfruit.me/TheClashFruit/Arctic/main/images/ArcticLogo.svg">
</p>
<h1 align="center">Arctic</h1>
<!--<h1 align="center">Arctic</h1>-->
<p align="center">
<img alt="Issues" src="https://img.shields.io/badge/dynamic/json?color=yellow&label=issues&query=%24.open_issues_count&url=https%3A%2F%2Fgit.theclashfruit.me%2Fapi%2Fv1%2Frepos%2FTheClashFruit%2FArctic">
@ -13,22 +13,20 @@
<img alt="License (MIT)" src="https://img.shields.io/badge/license-MIT-green.svg">
</p>
<!--
<p align="center">
<img alt="Modrinth Downloads" src="https://img.shields.io/modrinth/dt/Fs6mB0ic?label=Modrinth%20Downloads">
<img alt="CurseForge Downloads" src="https://img.shields.io/curseforge/dt/901062?label=CurseForge%20Downloads">
<img alt="Modrinth Downloads" src="https://img.shields.io/modrinth/dt/mGrSMF7Z?label=Modrinth%20Downloads">
<img alt="CurseForge Downloads" src="https://img.shields.io/curseforge/dt/955625?label=CurseForge%20Downloads">
</p>
<p align="center">
<a href="https://modrinth.com/mod/arctic">
<img alt="curseforge" height="40" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact/available/modrinth_vector.svg">
<img alt="modrinth" height="40" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact/available/modrinth_vector.svg">
</a>
<a href="https://www.curseforge.com/minecraft/mc-mods/arctic">
<img alt="curseforge" height="40" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/compact/available/curseforge_vector.svg">
</a>
</p>
-->
<p align="center">
<a href="https://modfest.net/1.20">
@ -40,9 +38,23 @@
A mini overhaul of cold biomes. This mod is a submission to ModFest 1.20.
</p>
## Screenshot
<h2 align="center">Screenshots</h2>
<img alt="A group of emperor penguins." height="480" src="https://cdn.modrinth.com/data/mGrSMF7Z/images/ea24c377128da60a04f252ad5f72f7f3b979470e.png">
<p align="center">
<img alt="A group of emperor penguins." height="360" src="https://cdn.modrinth.com/data/mGrSMF7Z/images/ea24c377128da60a04f252ad5f72f7f3b979470e.png">
</p>
<p align="center">
<img alt="Another group of emperor penguins." height="360" src="https://raw.theclashfruit.me/TheClashFruit/Arctic/main/images/GroupOfPenguins.png">
</p>
<p align="center">
<img alt="A young seal and its parent." height="360" src="https://raw.theclashfruit.me/TheClashFruit/Arctic/main/images/BabySealAndParent.png">
</p>
<p align="center">
<img alt="Penguin in a boat." height="360" src="https://raw.theclashfruit.me/TheClashFruit/Arctic/main/images/PenguinInBoat.png">
</p>
## Features

View file

@ -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 {

View file

@ -8,7 +8,7 @@ yarn_mappings=1.20.4+build.3
loader_version=0.15.1
# Mod Properties
mod_version = 1.0.0+mc1.20.4
mod_version = 1.1.0+mc1.20.4
maven_group = me.theclashfruit
archives_base_name = arctic

61
images/ArcticLogo.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

BIN
images/GroupOfPenguins.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 809 KiB

BIN
images/PenguinInBoat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 KiB

View file

@ -0,0 +1,189 @@
{
"format_version": "1.8.0",
"animations": {
"animation.Arctic.Penguin.RandomIdleAnimation.RaiseArms": {
"animation_length": 1.25,
"bones": {
"Body": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.625": {
"vector": [-1, 0, 0],
"easing": "easeOutBack"
},
"1.25": {
"vector": [0, 0, 0],
"easing": "easeInOutBack"
}
}
},
"LeftArm": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.5": {
"vector": [0, -15, -35],
"easing": "easeOutBack"
},
"0.75": {
"vector": [0, -15, -35],
"easing": "easeInOutBack"
},
"1.25": {
"vector": [0, 0, 0],
"easing": "easeInOutBack"
}
}
},
"RightArm": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.5": {
"vector": [0, 15, 35],
"easing": "easeOutBack"
},
"0.75": {
"vector": [0, 15, 35],
"easing": "easeInOutBack"
},
"1.25": {
"vector": [0, 0, 0],
"easing": "easeInOutBack"
}
}
},
"Foots": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.625": {
"vector": [1, 0, 0],
"easing": "easeOutBack"
},
"1.25": {
"vector": [0, 0, 0],
"easing": "easeInOutBack"
}
}
}
}
},
"animation.Arctic.Penguin.Walking": {
"loop": true,
"animation_length": 1,
"bones": {
"LeftFoot": {
"rotation": {
"0.5": {
"vector": [0, 0, 0]
},
"0.75": {
"vector": [-10, 0, 0],
"easing": "easeInBack"
},
"0.9583": {
"vector": [0, 0, 0],
"easing": "easeInBack"
}
},
"position": {
"0.5": {
"vector": [0, 0, 0]
},
"0.75": {
"vector": [0, 0.5, 0],
"easing": "easeInBack"
},
"1.0": {
"vector": [0, 0, 0],
"easing": "easeInBack"
}
}
},
"RightFoot": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.25": {
"vector": [-10, 0, 0],
"easing": "easeInBack"
},
"0.4583": {
"vector": [0, 0, 0],
"easing": "easeInBack"
}
},
"position": {
"0.0": {
"vector": [0, 0, 0]
},
"0.25": {
"vector": [0, 0.5, 0],
"easing": "easeInBack"
},
"0.5": {
"vector": [0, 0, 0],
"easing": "easeInBack"
}
}
},
"Body": {
"rotation": {
"0.0": {
"vector": [-2.5, 0, 0.10912]
},
"0.5": {
"vector": [1, 0, 0.10912],
"easing": "easeInOutBack"
},
"1.0": {
"vector": [-2.5, 0, 0.10912],
"easing": "easeInCubic"
}
}
},
"LeftArm": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.5": {
"vector": [0, 0, -7.5],
"easing": "easeInOutCubic"
},
"1.0": {
"vector": [0, 0, 0],
"easing": "easeInOutCubic"
}
}
},
"RightArm": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.5": {
"vector": [0, 0, 7.5],
"easing": "easeInOutCubic"
},
"1.0": {
"vector": [0, 0, 0],
"easing": "easeInOutCubic"
}
}
}
}
},
"animation.Arctic.Penguin.running": {
"loop": true
}
},
"geckolib_format_version": 2
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -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<SealEntity> {
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);
}
}

View file

@ -1,22 +1,31 @@
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;
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.animation.*;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
@ -42,19 +51,35 @@ 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<BabyEmperorEntity> type, WorldAccess world, SpawnReason spawnReason, BlockPos pos, Random random) {
RegistryEntry<Biome> 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 <E extends BabyEmperorEntity> PlayState predicate(final AnimationState<E> event) {
if(event.isMoving())
return event.setAndContinue(
RawAnimation.begin().thenLoop("animation.baby_emperor.walk")
RawAnimation.begin().thenLoop("animation.arctic.baby_emperor.walking")
);
return PlayState.STOP;
event.getController().setAnimation(RawAnimation.begin().then("animation.arctic.baby_emperor.idle.raise_arms", Animation.LoopType.LOOP));
return PlayState.CONTINUE;
}
@Override

View file

@ -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);
}

View file

@ -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<SealEntity> type, WorldAccess world, SpawnReason spawnReason, BlockPos pos, Random random) {
RegistryEntry<Biome> 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 <E extends SealEntity> PlayState predicate(final AnimationState<E> 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;
}

View file

@ -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
);
}
}

View file

@ -1,7 +1,189 @@
{
"format_version": "1.8.0",
"animations": {
"animation.arctic.baby_emperor.idle.raise_arms": {
"animation_length": 1.25,
"bones": {
"Body": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.625": {
"vector": [-1, 0, 0],
"easing": "easeOutBack"
},
"1.25": {
"vector": [0, 0, 0],
"easing": "easeInOutBack"
}
}
},
"LeftArm": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.5": {
"vector": [0, -15, -35],
"easing": "easeOutBack"
},
"0.75": {
"vector": [0, -15, -35],
"easing": "easeInOutBack"
},
"1.25": {
"vector": [0, 0, 0],
"easing": "easeInOutBack"
}
}
},
"RightArm": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.5": {
"vector": [0, 15, 35],
"easing": "easeOutBack"
},
"0.75": {
"vector": [0, 15, 35],
"easing": "easeInOutBack"
},
"1.25": {
"vector": [0, 0, 0],
"easing": "easeInOutBack"
}
}
},
"Foots": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.625": {
"vector": [1, 0, 0],
"easing": "easeOutBack"
},
"1.25": {
"vector": [0, 0, 0],
"easing": "easeInOutBack"
}
}
}
}
},
"animation.arctic.baby_emperor.walking": {
"loop": true,
"animation_length": 1,
"bones": {
"LeftFoot": {
"rotation": {
"0.5": {
"vector": [0, 0, 0]
},
"0.75": {
"vector": [-10, 0, 0],
"easing": "easeInBack"
},
"0.9583": {
"vector": [0, 0, 0],
"easing": "easeInBack"
}
},
"position": {
"0.5": {
"vector": [0, 0, 0]
},
"0.75": {
"vector": [0, 0.5, 0],
"easing": "easeInBack"
},
"1.0": {
"vector": [0, 0, 0],
"easing": "easeInBack"
}
}
},
"RightFoot": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.25": {
"vector": [-10, 0, 0],
"easing": "easeInBack"
},
"0.4583": {
"vector": [0, 0, 0],
"easing": "easeInBack"
}
},
"position": {
"0.0": {
"vector": [0, 0, 0]
},
"0.25": {
"vector": [0, 0.5, 0],
"easing": "easeInBack"
},
"0.5": {
"vector": [0, 0, 0],
"easing": "easeInBack"
}
}
},
"Body": {
"rotation": {
"0.0": {
"vector": [-2.5, 0, 0.10912]
},
"0.5": {
"vector": [1, 0, 0.10912],
"easing": "easeInOutBack"
},
"1.0": {
"vector": [-2.5, 0, 0.10912],
"easing": "easeInCubic"
}
}
},
"LeftArm": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.5": {
"vector": [0, 0, -7.5],
"easing": "easeInOutCubic"
},
"1.0": {
"vector": [0, 0, 0],
"easing": "easeInOutCubic"
}
}
},
"RightArm": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.5": {
"vector": [0, 0, 7.5],
"easing": "easeInOutCubic"
},
"1.0": {
"vector": [0, 0, 0],
"easing": "easeInOutCubic"
}
}
}
}
},
"animation.arctic.baby_emperor.running": {
"loop": true
}
},
"geckolib_format_version": 2
}

View file

@ -1,88 +1,90 @@
{
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.Arctic-Penguin-BabyEmperor",
"texture_width": 64,
"texture_height": 64,
"visible_bounds_width": 2,
"visible_bounds_height": 3.5,
"visible_bounds_offset": [0, 1.25, 0]
},
"bones": [
{
"name": "Head",
"pivot": [0, 0, 0],
"cubes": [
{"origin": [-3, 10.5, -2.75], "size": [6, 5, 5.5], "uv": [0, 16]}
]
},
{
"name": "Beak",
"parent": "Head",
"pivot": [0, 11.6, -2],
"cubes": [
{"origin": [-1, 11.35, -4], "size": [2, 1, 2], "pivot": [0, 11.6, -2], "rotation": [7.5, 0, 0], "uv": [22, 3]}
]
},
{
"name": "BodyAll",
"pivot": [0, 5.5, 0],
"cubes": [
{"origin": [-4, 0.5, -3], "size": [8, 10, 6], "uv": [0, 0]}
]
},
{
"name": "Tail",
"parent": "BodyAll",
"pivot": [0, 0.5, 2.5],
"cubes": [
{"origin": [-1.5, 0.5, 2.5], "size": [3, 1, 2], "pivot": [0, 0.5, 2.5], "rotation": [-5, 0, 0], "uv": [22, 0]}
]
},
{
"name": "Arms",
"parent": "BodyAll",
"pivot": [-4, 10.5, 0]
},
{
"name": "RightArm",
"parent": "Arms",
"pivot": [4, 10.5, 0],
"cubes": [
{"origin": [3.25, 2.2, -2.75], "size": [1, 8.25, 5.5], "pivot": [4, 10.5, 0], "rotation": [0, 0, -5], "uv": [24, 11]}
]
},
{
"name": "LeftArm",
"parent": "Arms",
"pivot": [-4, 10.5, 0],
"cubes": [
{"origin": [-4.25, 2.2, -2.75], "size": [1, 8.25, 5.5], "pivot": [-4, 10.5, 0], "rotation": [0, 0, 5], "uv": [17, 21]}
]
},
{
"name": "Feet",
"pivot": [0, 0, 0]
},
{
"name": "LeftFoot",
"parent": "Feet",
"pivot": [0, 0, 0],
"cubes": [
{"origin": [0.5, 0, -3.75], "size": [3, 1, 6], "pivot": [0, 0, 0], "rotation": [2.5, -2.5, 0], "uv": [0, 28]}
]
},
{
"name": "RightFoot",
"parent": "Feet",
"pivot": [0, 0, 0],
"cubes": [
{"origin": [-3.5, 0, -3.75], "size": [3, 1, 6], "pivot": [0, 0, 0], "rotation": [2.5, 2.5, 0], "uv": [28, 0]}
]
}
]
}
]
"format_version": "1.12.0",
"minecraft:geometry": [
{
"description": {
"identifier": "geometry.Arctic-Penguin-BabyEmperor",
"texture_width": 64,
"texture_height": 64,
"visible_bounds_width": 2,
"visible_bounds_height": 2.5,
"visible_bounds_offset": [0, 0.75, 0]
},
"bones": [
{
"name": "Body",
"pivot": [0, 0, 0],
"cubes": [
{"origin": [-3.75, 0.55, -2.8], "size": [7.5, 10, 6], "pivot": [0, 0, 0], "rotation": [1, 0, 0], "uv": [0, 0]}
]
},
{
"name": "Head",
"parent": "Body",
"pivot": [0, 0, 0],
"cubes": [
{"origin": [-3, 10.5, -2.75], "size": [6, 5, 5.5], "uv": [0, 16]}
]
},
{
"name": "Beak",
"parent": "Head",
"pivot": [0, 11.6, -2],
"cubes": [
{"origin": [-1, 11.35, -4], "size": [2, 1, 2], "pivot": [0, 11.6, -2], "rotation": [7.5, 0, 0], "uv": [22, 3]}
]
},
{
"name": "Tail",
"parent": "Body",
"pivot": [0, 0.5, 2.5],
"cubes": [
{"origin": [-1.5, 0.5, 2.5], "size": [3, 1, 2], "pivot": [0, 0.5, 2.5], "rotation": [-5, 0, 0], "uv": [22, 0]}
]
},
{
"name": "Arms",
"parent": "Body",
"pivot": [-4, 10.5, 0]
},
{
"name": "LeftArm",
"parent": "Arms",
"pivot": [4, 10.5, 0],
"cubes": [
{"origin": [3.25, 2.2, -1.5], "size": [1, 8.25, 3.5], "pivot": [4, 10.5, 0], "rotation": [-2.5, 0, -5], "uv": [26, 13]}
]
},
{
"name": "RightArm",
"parent": "Arms",
"pivot": [-4, 10.5, 0],
"cubes": [
{"origin": [-4.25, 2.2, -1.5], "size": [1, 8.25, 3.5], "pivot": [-4, 10.5, 0], "rotation": [-2.5, 0, 5], "uv": [19, 23]}
]
},
{
"name": "Foots",
"parent": "Body",
"pivot": [0, 0, 0]
},
{
"name": "LeftFoot",
"parent": "Foots",
"pivot": [0, 0, 0],
"cubes": [
{"origin": [0.5, 0, -4.25], "size": [3, 1, 6.5], "pivot": [0, 0, 0], "rotation": [2.5, -2.5, 0], "uv": [0, 28]}
]
},
{
"name": "RightFoot",
"parent": "Foots",
"pivot": [0, 0, 0],
"cubes": [
{"origin": [-3.5, 0, -4.25], "size": [3, 1, 6.5], "pivot": [0, 0, 0], "rotation": [2.5, 2.5, 0], "uv": [28, 0]}
]
}
]
}
]
}

View file

@ -11,8 +11,27 @@
"visible_bounds_offset": [0, 0.75, 0]
},
"bones": [
{
"name": "Body",
"pivot": [0, 10, 15.5],
"cubes": [
{
"origin": [-7, 0, -3.5],
"size": [14, 9, 21],
"uv": {
"north": {"uv": [35, 12], "uv_size": [14, 9]},
"east": {"uv": [21, 0], "uv_size": [9, 21]},
"south": {"uv": [35, 12], "uv_size": [14, 9]},
"west": {"uv": [21, 0], "uv_size": [9, 21]},
"up": {"uv": [21, 0], "uv_size": [14, 21]},
"down": {"uv": [21, 21], "uv_size": [14, -21]}
}
}
]
},
{
"name": "Head",
"parent": "Body",
"pivot": [0, 1.75, 0],
"rotation": [-6, 5, 0],
"cubes": [
@ -28,51 +47,51 @@
]
},
{
"name": "Whiskas",
"name": "Whiskers",
"parent": "Head",
"pivot": [0, 1.75, 0]
"pivot": [0, 2, 0]
},
{
"name": "Left",
"parent": "Whiskas",
"pivot": [-2, 3.5, -11.5],
"rotation": [0, -5, -7.5],
"parent": "Whiskers",
"pivot": [-2, 3.75, -11.5],
"rotation": [0.43688, -4.98093, -12.519],
"cubes": [
{
"origin": [-6.75, 3.25, -11.52],
"origin": [-6.75, 3.5, -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]},
"south": {"uv": [1, 9], "uv_size": [0, 0]},
"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],
"origin": [-6.75, 4.25, -11.52],
"size": [5, 0.5, 0],
"pivot": [-2, 3.5, -11.5],
"pivot": [-2, 3.75, -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]},
"south": {"uv": [1, 9], "uv_size": [0, 0]},
"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],
"origin": [-6.75, 2.75, -11.52],
"size": [5, 0.5, 0],
"pivot": [-2, 3.5, -11.5],
"pivot": [-2, 3.75, -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]},
"south": {"uv": [1, 9], "uv_size": [0, 0]},
"west": {"uv": [6, 10], "uv_size": [0, 3]},
"up": {"uv": [1, 10], "uv_size": [5, 0]},
"down": {"uv": [6, 10], "uv_size": [5, 0]}
@ -82,45 +101,45 @@
},
{
"name": "Right",
"parent": "Whiskas",
"pivot": [2, 3.5, -11.5],
"rotation": [0, 5, 7.5],
"parent": "Whiskers",
"pivot": [2, 3.75, -11.5],
"rotation": [0.43688, 4.98093, 12.519],
"cubes": [
{
"origin": [1.75, 4, -11.52],
"origin": [1.75, 4.25, -11.52],
"size": [5, 0.5, 0],
"pivot": [2, 3.5, -11.5],
"pivot": [2, 3.75, -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]},
"south": {"uv": [1, 9], "uv_size": [0, 0]},
"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],
"origin": [1.75, 3.5, -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]},
"south": {"uv": [1, 9], "uv_size": [0, 0]},
"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],
"origin": [1.75, 2.75, -11.52],
"size": [5, 0.5, 0],
"pivot": [2, 3.5, -11.5],
"pivot": [2, 3.75, -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]},
"south": {"uv": [1, 9], "uv_size": [0, 0]},
"west": {"uv": [6, 6], "uv_size": [0, 3]},
"up": {"uv": [1, 6], "uv_size": [5, 0]},
"down": {"uv": [6, 6], "uv_size": [5, 0]}
@ -129,27 +148,53 @@
]
},
{
"name": "Body",
"pivot": [0, 10, 15.5],
"name": "Foots",
"parent": "Body",
"pivot": [0, 0, 15]
},
{
"name": "RightFoot",
"parent": "Foots",
"pivot": [-4.75, 0.5, 15],
"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]}
{"origin": [-6.5, -0.25, 15], "size": [4, 1.5, 7], "pivot": [-4.75, 0.5, 15], "rotation": [0, -7.5, 0], "uv": [33, 39]}
]
},
{
"name": "bone2",
"pivot": [0, 0, 0],
"name": "LeftFoot",
"parent": "Foots",
"pivot": [4.5, 0.5, 15],
"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]}
{"origin": [2.5, -0.25, 15], "size": [4, 1.5, 7], "pivot": [4.5, 0.5, 15], "rotation": [0, 7.5, 0], "uv": [30, 28]}
]
},
{
"name": "bone3",
"pivot": [0, 0, 15],
"name": "Arms",
"parent": "Body",
"pivot": [0, 0, 0]
},
{
"name": "RightArm",
"parent": "Arms",
"pivot": [-4.75, 0.5, -3.5],
"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]}
{"origin": [-6.5, -0.25, -9], "size": [4, 1.5, 7], "pivot": [-4.75, 0.5, -3.5], "rotation": [0, 7.5, 0], "uv": [0, 46]}
]
},
{
"name": "LeftArm",
"parent": "Arms",
"pivot": [-4.75, 0.5, -3.5],
"cubes": [
{"origin": [2.5, -0.25, -9], "size": [4, 1.5, 7], "pivot": [4.5, 0.5, -3.5], "rotation": [0, -7.5, 0], "uv": [17, 47]}
]
},
{
"name": "Tail",
"parent": "Body",
"pivot": [0, 7, 17.25],
"cubes": [
{"origin": [-1.5, 6, 17], "size": [3, 1, 5], "uv": [0, 0]}
]
}
]

View file

@ -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"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB