Compare commits
20 commits
1.0.0+mc1.
...
main
Author | SHA1 | Date | |
---|---|---|---|
TheClashFruit | 9ff81509d9 | ||
Mya | ffa67846b6 | ||
Mya | 779e7bd9ce | ||
Mya | e5de2c7de4 | ||
Mya | baa9f0c635 | ||
Mya | 7c070452c2 | ||
Mya | 3ea4bf4e9f | ||
Mya | 84441f0ebc | ||
TheClashFruit | ea8c842d28 | ||
TheClashFruit | c372a834fe | ||
TheClashFruit | 377ef98b68 | ||
Mya | 7d2e7c8e16 | ||
Mya | b6ebf93500 | ||
Mya | c14675b1a9 | ||
Mya | 141fc362b4 | ||
Mya | 24e63b6d5f | ||
Mya | 4ed7d86a71 | ||
TheClashFruit | e9592f8300 | ||
Mya | 424a2d78bc | ||
TheClashFruit | 54207eebd9 |
28
.gitea/workflows/build.yml
Normal 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
|
30
README.md
|
@ -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
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
After Width: | Height: | Size: 18 KiB |
BIN
images/BabySealAndParent.png
Normal file
After Width: | Height: | Size: 289 KiB |
BIN
images/GroupOfPenguins.png
Normal file
After Width: | Height: | Size: 809 KiB |
BIN
images/PenguinInBoat.png
Normal file
After Width: | Height: | Size: 313 KiB |
|
@ -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
|
||||
}
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 1.4 KiB |
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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]}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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]}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
@ -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"
|
||||
}
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 1.4 KiB |