From 06aa5f3ab710b950d6b46d892985119b183a2d4f Mon Sep 17 00:00:00 2001 From: blryface <124838505+blryface@users.noreply.github.com> Date: Thu, 12 Sep 2024 19:46:34 -0300 Subject: [PATCH] Change PrideBiis to be Biis, add Pride Enbees, update lang, update to 1.21.1, and fix up some other stuff --- gradle.properties | 10 +- src/main/java/gay/pridecraft/joy/Joy.java | 7 +- .../java/gay/pridecraft/joy/JoyClient.java | 3 +- .../pridecraft/joy/entity/ModEntities.java | 15 +- .../entity/custom/living/CustomBeeEntity.java | 11 +- .../pridecraft/joy/item/ModItemGroups.java | 3 +- .../gay/pridecraft/joy/item/ModItems.java | 3 +- ...PrideBiiRenderer.java => BiiRenderer.java} | 18 +-- .../joy/renderer/entity/EnbeeRenderer.java | 32 ++++ ...iiEntityModel.java => BiiEntityModel.java} | 4 +- .../joy/renderer/model/EnbeeEntityModel.java | 149 ++++++++++++++++++ src/main/resources/assets/joy/lang/en_us.json | 8 +- .../joy/textures/block/black_candle.png | Bin 0 -> 150 bytes .../joy/textures/block/black_candle_lit.png | Bin 0 -> 156 bytes .../entity/bee/{pride_bii.png => bii.png} | Bin .../joy/textures/entity/bee/bii/pride_bii.png | Bin 0 -> 1003 bytes .../entity/bee/{ => bii}/pride_bii_angry.png | Bin .../bee/{ => bii}/pride_bii_angry_nectar.png | Bin .../entity/bee/{ => bii}/pride_bii_nectar.png | Bin .../joy/textures/entity/bee/bii_angry.png | Bin 0 -> 989 bytes .../textures/entity/bee/bii_angry_nectar.png | Bin 0 -> 1248 bytes .../joy/textures/entity/bee/bii_nectar.png | Bin 0 -> 1199 bytes .../assets/joy/textures/entity/bee/enbee.png | Bin 0 -> 1045 bytes .../joy/textures/entity/bee/enbee_angry.png | Bin 0 -> 1028 bytes .../entity/bee/enbee_angry_nectar.png | Bin 0 -> 1320 bytes .../joy/textures/entity/bee/enbee_nectar.png | Bin 0 -> 1301 bytes 26 files changed, 236 insertions(+), 27 deletions(-) rename src/main/java/gay/pridecraft/joy/renderer/entity/{PrideBiiRenderer.java => BiiRenderer.java} (58%) create mode 100644 src/main/java/gay/pridecraft/joy/renderer/entity/EnbeeRenderer.java rename src/main/java/gay/pridecraft/joy/renderer/model/{PrideBiiEntityModel.java => BiiEntityModel.java} (98%) create mode 100644 src/main/java/gay/pridecraft/joy/renderer/model/EnbeeEntityModel.java create mode 100644 src/main/resources/assets/joy/textures/block/black_candle.png create mode 100644 src/main/resources/assets/joy/textures/block/black_candle_lit.png rename src/main/resources/assets/joy/textures/entity/bee/{pride_bii.png => bii.png} (100%) create mode 100644 src/main/resources/assets/joy/textures/entity/bee/bii/pride_bii.png rename src/main/resources/assets/joy/textures/entity/bee/{ => bii}/pride_bii_angry.png (100%) rename src/main/resources/assets/joy/textures/entity/bee/{ => bii}/pride_bii_angry_nectar.png (100%) rename src/main/resources/assets/joy/textures/entity/bee/{ => bii}/pride_bii_nectar.png (100%) create mode 100644 src/main/resources/assets/joy/textures/entity/bee/bii_angry.png create mode 100644 src/main/resources/assets/joy/textures/entity/bee/bii_angry_nectar.png create mode 100644 src/main/resources/assets/joy/textures/entity/bee/bii_nectar.png create mode 100644 src/main/resources/assets/joy/textures/entity/bee/enbee.png create mode 100644 src/main/resources/assets/joy/textures/entity/bee/enbee_angry.png create mode 100644 src/main/resources/assets/joy/textures/entity/bee/enbee_angry_nectar.png create mode 100644 src/main/resources/assets/joy/textures/entity/bee/enbee_nectar.png diff --git a/gradle.properties b/gradle.properties index 98c3a79..640600c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,14 +1,14 @@ org.gradle.jvmargs=-Xmx2G org.gradle.parallel=true -minecraft_version=1.21 -yarn_mappings=1.21+build.2 -loader_version=0.15.11 +minecraft_version=1.21.1 +yarn_mappings=1.21.1+build.3 +loader_version=0.16.5 -mod_version = 1.0.0+mc1.21 +mod_version = 1.0.0+mc1.21.1 maven_group = gay.pridecraft archives_base_name = joymod -fabric_version=0.100.1+1.21 +fabric_version=0.104.0+1.21.1 midnightlib_version=1.5.7-fabric badges_lib=2023.6.1 diff --git a/src/main/java/gay/pridecraft/joy/Joy.java b/src/main/java/gay/pridecraft/joy/Joy.java index 8c65398..cca7e0c 100644 --- a/src/main/java/gay/pridecraft/joy/Joy.java +++ b/src/main/java/gay/pridecraft/joy/Joy.java @@ -81,7 +81,12 @@ public class Joy implements ModInitializer { .add(EntityAttributes.GENERIC_FOLLOW_RANGE, 32.0) .add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.3)); - FabricDefaultAttributeRegistry.register(ModEntities.PRIDE_BII, MobEntity.createMobAttributes() + FabricDefaultAttributeRegistry.register(ModEntities.BII, MobEntity.createMobAttributes() + .add(EntityAttributes.GENERIC_ATTACK_DAMAGE, 2.0) + .add(EntityAttributes.GENERIC_FLYING_SPEED, 0.6) + .add(EntityAttributes.GENERIC_FOLLOW_RANGE, 48.0)); + + FabricDefaultAttributeRegistry.register(ModEntities.ENBEE, MobEntity.createMobAttributes() .add(EntityAttributes.GENERIC_ATTACK_DAMAGE, 2.0) .add(EntityAttributes.GENERIC_FLYING_SPEED, 0.6) .add(EntityAttributes.GENERIC_FOLLOW_RANGE, 48.0)); diff --git a/src/main/java/gay/pridecraft/joy/JoyClient.java b/src/main/java/gay/pridecraft/joy/JoyClient.java index bbb5c23..5934146 100644 --- a/src/main/java/gay/pridecraft/joy/JoyClient.java +++ b/src/main/java/gay/pridecraft/joy/JoyClient.java @@ -55,7 +55,8 @@ public class JoyClient implements ClientModInitializer { private static void registerEntityRenderers() { EntityRendererRegistry.register(ModEntities.THIGH_HIGH_FOX, ThighHighFoxRenderer::new); - EntityRendererRegistry.register(ModEntities.PRIDE_BII, PrideBiiRenderer::new); + EntityRendererRegistry.register(ModEntities.BII, BiiRenderer::new); + EntityRendererRegistry.register(ModEntities.ENBEE, EnbeeRenderer::new); EntityRendererRegistry.register(ModEntities.PRIDE_AXOLOTL, PrideAxolotlRenderer::new); EntityRendererRegistry.register(ModEntities.PRIDE_FROG, PrideFrogRenderer::new); EntityRendererRegistry.register(ModEntities.PRIDE_SLIME, PrideSlimeRenderer::new); diff --git a/src/main/java/gay/pridecraft/joy/entity/ModEntities.java b/src/main/java/gay/pridecraft/joy/entity/ModEntities.java index b516167..6990734 100644 --- a/src/main/java/gay/pridecraft/joy/entity/ModEntities.java +++ b/src/main/java/gay/pridecraft/joy/entity/ModEntities.java @@ -43,15 +43,24 @@ public class ModEntities { .build() ); - public static final EntityType PRIDE_BII = Registry.register( + public static final EntityType BII = Registry.register( Registries.ENTITY_TYPE, - Identifier.of(Joy.MOD_ID, "pride_bii"), - EntityType.Builder.create(CustomBeeEntity.PrideBiiEntity::new, EntityType.BEE.getSpawnGroup()) + Identifier.of(Joy.MOD_ID, "bii"), + EntityType.Builder.create(CustomBeeEntity.BiiEntity::new, EntityType.BEE.getSpawnGroup()) .dimensions(0.7f, 0.6f) .maxTrackingRange(8) .build() ); + public static final EntityType ENBEE = Registry.register( + Registries.ENTITY_TYPE, + Identifier.of(Joy.MOD_ID, "enbee"), + EntityType.Builder.create(CustomBeeEntity.EnbeeEntity::new, EntityType.BEE.getSpawnGroup()) + .dimensions(0.7f, 0.6f) + .maxTrackingRange(8) + .build() + ); + public static final EntityType PRIDE_AXOLOTL = Registry.register( Registries.ENTITY_TYPE, Identifier.of(Joy.MOD_ID, "pride_axolotl"), diff --git a/src/main/java/gay/pridecraft/joy/entity/custom/living/CustomBeeEntity.java b/src/main/java/gay/pridecraft/joy/entity/custom/living/CustomBeeEntity.java index acbbd97..6780c42 100644 --- a/src/main/java/gay/pridecraft/joy/entity/custom/living/CustomBeeEntity.java +++ b/src/main/java/gay/pridecraft/joy/entity/custom/living/CustomBeeEntity.java @@ -10,9 +10,16 @@ public class CustomBeeEntity extends BeeEntity { super(entityType, world); } - public static class PrideBiiEntity extends CustomBeeEntity { - public PrideBiiEntity(EntityType entityType, World world) { + public static class BiiEntity extends CustomBeeEntity { + public BiiEntity(EntityType entityType, World world) { super(entityType, world); } } + + public static class EnbeeEntity extends CustomBeeEntity { + public EnbeeEntity(EntityType entityType, World world) { + super(entityType, world); + } + } + } diff --git a/src/main/java/gay/pridecraft/joy/item/ModItemGroups.java b/src/main/java/gay/pridecraft/joy/item/ModItemGroups.java index 4d942a1..cb84ac4 100644 --- a/src/main/java/gay/pridecraft/joy/item/ModItemGroups.java +++ b/src/main/java/gay/pridecraft/joy/item/ModItemGroups.java @@ -56,7 +56,8 @@ public class ModItemGroups { entries.add(ModItems.PRIDE_SLIME_BALL); entries.add(ModItems.PRIDE_ELYTRA); entries.add(ModItems.THIGH_HIGH_FOX_SPAWN_EGG); - entries.add(ModItems.PRIDE_BII_SPAWN_EGG); + entries.add(ModItems.BII_SPAWN_EGG); + entries.add(ModItems.ENBEE_SPAWN_EGG); entries.add(ModItems.PRIDE_AXOLOTL_SPAWN_EGG); entries.add(ModItems.PRIDE_FROG_SPAWN_EGG); entries.add(ModItems.PRIDE_SLIME_SPAWN_EGG); diff --git a/src/main/java/gay/pridecraft/joy/item/ModItems.java b/src/main/java/gay/pridecraft/joy/item/ModItems.java index 9e1dbce..19b8698 100644 --- a/src/main/java/gay/pridecraft/joy/item/ModItems.java +++ b/src/main/java/gay/pridecraft/joy/item/ModItems.java @@ -20,7 +20,8 @@ public class ModItems { public static final Item PRIDE_BRUSH = registerItem("pride_brush", new BrushItem(new Item.Settings())); public static final Item PRIDE_SLIME_BALL = registerItem("pride_slime_ball", new Item(new Item.Settings())); public static final Item THIGH_HIGH_FOX_SPAWN_EGG = registerItem("thigh_high_fox_spawn_egg", new RainbowSpawnEggItem(ModEntities.THIGH_HIGH_FOX, 14005919, 0xff80bf, new Item.Settings())); - public static final Item PRIDE_BII_SPAWN_EGG = registerItem("pride_bii_spawn_egg", new RainbowSpawnEggItem(ModEntities.PRIDE_BII, 15582019, 0xFF69B4, new Item.Settings())); + public static final Item BII_SPAWN_EGG = registerItem("bii_spawn_egg", new RainbowSpawnEggItem(ModEntities.BII, 15582019, 0xFF69B4, new Item.Settings())); + public static final Item ENBEE_SPAWN_EGG = registerItem("bii_spawn_egg", new RainbowSpawnEggItem(ModEntities.BII, 16577588, 0x9C59D1, new Item.Settings())); public static final Item PRIDE_AXOLOTL_SPAWN_EGG = registerItem("pride_axolotl_spawn_egg", new RainbowSpawnEggItem(ModEntities.PRIDE_AXOLOTL, 16499171, 0xff80bf, new Item.Settings())); public static final Item PRIDE_FROG_SPAWN_EGG = registerItem("pride_frog_spawn_egg", new RainbowSpawnEggItem(ModEntities.PRIDE_FROG, 13661252, 0xff80bf, new Item.Settings())); public static final Item PRIDE_SLIME_SPAWN_EGG = registerItem("pride_slime_spawn_egg", new RainbowSpawnEggItem(ModEntities.PRIDE_SLIME, 5349438, 0xff80bf, new Item.Settings())); diff --git a/src/main/java/gay/pridecraft/joy/renderer/entity/PrideBiiRenderer.java b/src/main/java/gay/pridecraft/joy/renderer/entity/BiiRenderer.java similarity index 58% rename from src/main/java/gay/pridecraft/joy/renderer/entity/PrideBiiRenderer.java rename to src/main/java/gay/pridecraft/joy/renderer/entity/BiiRenderer.java index 44d26ad..bbfaeb7 100644 --- a/src/main/java/gay/pridecraft/joy/renderer/entity/PrideBiiRenderer.java +++ b/src/main/java/gay/pridecraft/joy/renderer/entity/BiiRenderer.java @@ -2,7 +2,7 @@ package gay.pridecraft.joy.renderer.entity; import gay.pridecraft.joy.Joy; import gay.pridecraft.joy.entity.custom.living.CustomBeeEntity; -import gay.pridecraft.joy.renderer.model.PrideBiiEntityModel; +import gay.pridecraft.joy.renderer.model.BiiEntityModel; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.render.entity.EntityRendererFactory; @@ -11,18 +11,18 @@ import net.minecraft.client.render.entity.model.EntityModelLayers; import net.minecraft.util.Identifier; @Environment(EnvType.CLIENT) -public class PrideBiiRenderer extends MobEntityRenderer> { - private static final Identifier ANGRY_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/pride_bii_angry.png"); - private static final Identifier ANGRY_NECTAR_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/pride_bii_angry_nectar.png"); - private static final Identifier PASSIVE_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/pride_bii.png"); - private static final Identifier NECTAR_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/pride_bii_nectar.png"); +public class BiiRenderer extends MobEntityRenderer> { + private static final Identifier ANGRY_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/bii_angry.png"); + private static final Identifier ANGRY_NECTAR_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/bii_angry_nectar.png"); + private static final Identifier PASSIVE_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/bii.png"); + private static final Identifier NECTAR_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/bii_nectar.png"); - public PrideBiiRenderer(EntityRendererFactory.Context context) { - super(context, new PrideBiiEntityModel<>(context.getPart(EntityModelLayers.BEE)), 0.4F); + public BiiRenderer(EntityRendererFactory.Context context) { + super(context, new BiiEntityModel<>(context.getPart(EntityModelLayers.BEE)), 0.4F); } @Override - public Identifier getTexture(CustomBeeEntity.PrideBiiEntity entity) { + public Identifier getTexture(CustomBeeEntity.BiiEntity entity) { if (entity.hasAngerTime()) { return entity.hasNectar() ? ANGRY_NECTAR_TEXTURE : ANGRY_TEXTURE; } else { diff --git a/src/main/java/gay/pridecraft/joy/renderer/entity/EnbeeRenderer.java b/src/main/java/gay/pridecraft/joy/renderer/entity/EnbeeRenderer.java new file mode 100644 index 0000000..5d71a82 --- /dev/null +++ b/src/main/java/gay/pridecraft/joy/renderer/entity/EnbeeRenderer.java @@ -0,0 +1,32 @@ +package gay.pridecraft.joy.renderer.entity; + +import gay.pridecraft.joy.Joy; +import gay.pridecraft.joy.entity.custom.living.CustomBeeEntity; +import gay.pridecraft.joy.renderer.model.EnbeeEntityModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRendererFactory; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.client.render.entity.model.EntityModelLayers; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class EnbeeRenderer extends MobEntityRenderer> { + private static final Identifier ANGRY_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/enbee_angry.png"); + private static final Identifier ANGRY_NECTAR_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/enbee_angry_nectar.png"); + private static final Identifier PASSIVE_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/enbee.png"); + private static final Identifier NECTAR_TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/bee/enbee_nectar.png"); + + public EnbeeRenderer(EntityRendererFactory.Context context) { + super(context, new EnbeeEntityModel<>(context.getPart(EntityModelLayers.BEE)), 0.4F); + } + + @Override + public Identifier getTexture(CustomBeeEntity.EnbeeEntity entity) { + if (entity.hasAngerTime()) { + return entity.hasNectar() ? ANGRY_NECTAR_TEXTURE : ANGRY_TEXTURE; + } else { + return entity.hasNectar() ? NECTAR_TEXTURE : PASSIVE_TEXTURE; + } + } +} diff --git a/src/main/java/gay/pridecraft/joy/renderer/model/PrideBiiEntityModel.java b/src/main/java/gay/pridecraft/joy/renderer/model/BiiEntityModel.java similarity index 98% rename from src/main/java/gay/pridecraft/joy/renderer/model/PrideBiiEntityModel.java rename to src/main/java/gay/pridecraft/joy/renderer/model/BiiEntityModel.java index a648872..2f61eec 100644 --- a/src/main/java/gay/pridecraft/joy/renderer/model/PrideBiiEntityModel.java +++ b/src/main/java/gay/pridecraft/joy/renderer/model/BiiEntityModel.java @@ -9,7 +9,7 @@ import net.minecraft.entity.passive.BeeEntity; import net.minecraft.util.math.MathHelper; @Environment(EnvType.CLIENT) -public class PrideBiiEntityModel extends AnimalModel { +public class BiiEntityModel extends AnimalModel { private static final float BONE_BASE_Y_PIVOT = 19.0F; private static final String BONE = "bone"; private static final String STINGER = "stinger"; @@ -29,7 +29,7 @@ public class PrideBiiEntityModel extends AnimalModel { private final ModelPart rightAntenna; private float bodyPitch; - public PrideBiiEntityModel(ModelPart root) { + public BiiEntityModel(ModelPart root) { super(false, 24.0F, 0.0F); this.bone = root.getChild("bone"); ModelPart modelPart = this.bone.getChild("body"); diff --git a/src/main/java/gay/pridecraft/joy/renderer/model/EnbeeEntityModel.java b/src/main/java/gay/pridecraft/joy/renderer/model/EnbeeEntityModel.java new file mode 100644 index 0000000..c6ce222 --- /dev/null +++ b/src/main/java/gay/pridecraft/joy/renderer/model/EnbeeEntityModel.java @@ -0,0 +1,149 @@ +package gay.pridecraft.joy.renderer.model; + +import com.google.common.collect.ImmutableList; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.model.*; +import net.minecraft.client.render.entity.model.AnimalModel; +import net.minecraft.entity.passive.BeeEntity; +import net.minecraft.util.math.MathHelper; + +@Environment(EnvType.CLIENT) +public class EnbeeEntityModel extends AnimalModel { + private static final float BONE_BASE_Y_PIVOT = 19.0F; + private static final String BONE = "bone"; + private static final String STINGER = "stinger"; + private static final String LEFT_ANTENNA = "left_antenna"; + private static final String RIGHT_ANTENNA = "right_antenna"; + private static final String FRONT_LEGS = "front_legs"; + private static final String MIDDLE_LEGS = "middle_legs"; + private static final String BACK_LEGS = "back_legs"; + private final ModelPart bone; + private final ModelPart rightWing; + private final ModelPart leftWing; + private final ModelPart frontLegs; + private final ModelPart middleLegs; + private final ModelPart backLegs; + private final ModelPart stinger; + private final ModelPart leftAntenna; + private final ModelPart rightAntenna; + private float bodyPitch; + + public EnbeeEntityModel(ModelPart root) { + super(false, 24.0F, 0.0F); + this.bone = root.getChild("bone"); + ModelPart modelPart = this.bone.getChild("body"); + this.stinger = modelPart.getChild("stinger"); + this.leftAntenna = modelPart.getChild("left_antenna"); + this.rightAntenna = modelPart.getChild("right_antenna"); + this.rightWing = this.bone.getChild("right_wing"); + this.leftWing = this.bone.getChild("left_wing"); + this.frontLegs = this.bone.getChild("front_legs"); + this.middleLegs = this.bone.getChild("middle_legs"); + this.backLegs = this.bone.getChild("back_legs"); + } + + public static TexturedModelData getTexturedModelData() { + float f = 19.0F; + ModelData modelData = new ModelData(); + ModelPartData modelPartData = modelData.getRoot(); + ModelPartData modelPartData2 = modelPartData.addChild("bone", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, 19.0F, 0.0F)); + ModelPartData modelPartData3 = modelPartData2.addChild( + "body", ModelPartBuilder.create().uv(0, 0).cuboid(-3.5F, -4.0F, -5.0F, 7.0F, 7.0F, 10.0F), ModelTransform.NONE + ); + modelPartData3.addChild("stinger", ModelPartBuilder.create().uv(26, 7).cuboid(0.0F, -1.0F, 5.0F, 0.0F, 1.0F, 2.0F), ModelTransform.NONE); + modelPartData3.addChild( + "left_antenna", ModelPartBuilder.create().uv(2, 0).cuboid(1.5F, -2.0F, -3.0F, 1.0F, 2.0F, 3.0F), ModelTransform.pivot(0.0F, -2.0F, -5.0F) + ); + modelPartData3.addChild( + "right_antenna", ModelPartBuilder.create().uv(2, 3).cuboid(-2.5F, -2.0F, -3.0F, 1.0F, 2.0F, 3.0F), ModelTransform.pivot(0.0F, -2.0F, -5.0F) + ); + Dilation dilation = new Dilation(0.001F); + modelPartData2.addChild( + "right_wing", + ModelPartBuilder.create().uv(0, 18).cuboid(-9.0F, 0.0F, 0.0F, 9.0F, 0.0F, 6.0F, dilation), + ModelTransform.of(-1.5F, -4.0F, -3.0F, 0.0F, -0.2618F, 0.0F) + ); + modelPartData2.addChild( + "left_wing", + ModelPartBuilder.create().uv(0, 18).mirrored().cuboid(0.0F, 0.0F, 0.0F, 9.0F, 0.0F, 6.0F, dilation), + ModelTransform.of(1.5F, -4.0F, -3.0F, 0.0F, 0.2618F, 0.0F) + ); + modelPartData2.addChild( + "front_legs", ModelPartBuilder.create().cuboid("front_legs", -5.0F, 0.0F, 0.0F, 7, 2, 0, 26, 1), ModelTransform.pivot(1.5F, 3.0F, -2.0F) + ); + modelPartData2.addChild( + "middle_legs", ModelPartBuilder.create().cuboid("middle_legs", -5.0F, 0.0F, 0.0F, 7, 2, 0, 26, 3), ModelTransform.pivot(1.5F, 3.0F, 0.0F) + ); + modelPartData2.addChild( + "back_legs", ModelPartBuilder.create().cuboid("back_legs", -5.0F, 0.0F, 0.0F, 7, 2, 0, 26, 5), ModelTransform.pivot(1.5F, 3.0F, 2.0F) + ); + return TexturedModelData.of(modelData, 64, 64); + } + + public void animateModel(T beeEntity, float f, float g, float h) { + super.animateModel(beeEntity, f, g, h); + this.bodyPitch = beeEntity.getBodyPitch(h); + this.stinger.visible = !beeEntity.hasStung(); + } + + public void setAngles(T beeEntity, float f, float g, float h, float i, float j) { + this.rightWing.pitch = 0.0F; + this.leftAntenna.pitch = 0.0F; + this.rightAntenna.pitch = 0.0F; + this.bone.pitch = 0.0F; + boolean bl = beeEntity.isOnGround() && beeEntity.getVelocity().lengthSquared() < 1.0E-7; + if (bl) { + this.rightWing.yaw = -0.2618F; + this.rightWing.roll = 0.0F; + this.leftWing.pitch = 0.0F; + this.leftWing.yaw = 0.2618F; + this.leftWing.roll = 0.0F; + this.frontLegs.pitch = 0.0F; + this.middleLegs.pitch = 0.0F; + this.backLegs.pitch = 0.0F; + } else { + float k = h * 120.32113F * (float) (Math.PI / 180.0); + this.rightWing.yaw = 0.0F; + this.rightWing.roll = MathHelper.cos(k) * (float) Math.PI * 0.15F; + this.leftWing.pitch = this.rightWing.pitch; + this.leftWing.yaw = this.rightWing.yaw; + this.leftWing.roll = -this.rightWing.roll; + this.frontLegs.pitch = (float) (Math.PI / 4); + this.middleLegs.pitch = (float) (Math.PI / 4); + this.backLegs.pitch = (float) (Math.PI / 4); + this.bone.pitch = 0.0F; + this.bone.yaw = 0.0F; + this.bone.roll = 0.0F; + } + + if (!beeEntity.hasAngerTime()) { + this.bone.pitch = 0.0F; + this.bone.yaw = 0.0F; + this.bone.roll = 0.0F; + if (!bl) { + float k = MathHelper.cos(h * 0.18F); + this.bone.pitch = 0.1F + k * (float) Math.PI * 0.025F; + this.leftAntenna.pitch = k * (float) Math.PI * 0.03F; + this.rightAntenna.pitch = k * (float) Math.PI * 0.03F; + this.frontLegs.pitch = -k * (float) Math.PI * 0.1F + (float) (Math.PI / 8); + this.backLegs.pitch = -k * (float) Math.PI * 0.05F + (float) (Math.PI / 4); + this.bone.pivotY = 19.0F - MathHelper.cos(h * 0.18F) * 0.9F; + } + } + + if (this.bodyPitch > 0.0F) { + this.bone.pitch = ModelUtil.interpolateAngle(this.bone.pitch, 3.0915928F, this.bodyPitch); + } + } + + @Override + protected Iterable getHeadParts() { + return ImmutableList.of(); + } + + @Override + protected Iterable getBodyParts() { + return ImmutableList.of(this.bone); + } +} \ No newline at end of file diff --git a/src/main/resources/assets/joy/lang/en_us.json b/src/main/resources/assets/joy/lang/en_us.json index 56f9c8b..56b6940 100644 --- a/src/main/resources/assets/joy/lang/en_us.json +++ b/src/main/resources/assets/joy/lang/en_us.json @@ -39,9 +39,13 @@ "item.joy.pride_brush": "Pride Brush", "item.joy.pride_slime_ball": "Pride Slime Ball", "item.joy.thigh_high_fox_spawn_egg": "Thigh-High Fox Spawn Egg", - "item.joy.pride_bii_spawn_egg": "Pride Bii Spawn Egg", + "item.joy.bii_spawn_egg": "Bii Spawn Egg", + "item.joy.enbee_spawn_egg": "Enbee Spawn Egg", "item.joy.pride_axolotl_spawn_egg": "Pride Axolotl Spawn Egg", "item.joy.pride_frog_spawn_egg": "Pride Frog Spawn Egg", "item.joy.pride_slime_spawn_egg": "Pride Slime Spawn Egg", - "item.joy.pride_sniffer_spawn_egg": "Pride Sniffer Spawn Egg" + "item.joy.pride_sniffer_spawn_egg": "Pride Sniffer Spawn Egg", + + "entity.joy.bii": "Bii", + "entity.joy.enbee": "Enbee" } \ No newline at end of file diff --git a/src/main/resources/assets/joy/textures/block/black_candle.png b/src/main/resources/assets/joy/textures/block/black_candle.png new file mode 100644 index 0000000000000000000000000000000000000000..30e12df159ba5f44208c39ed44d40195e15b0f22 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv3GfMV{r~^JqJqh-)h0)0sQy3W z{r{HbgQrh_{P>ZjvZPsOOOnhSDGBvG&*RI0>KRLd{DK)Ap4~_TauhsW978G?lNC5Q v95U4sC7R`(T{w>=91xgzJm5^jIR*y(ScVI8ZdR59)iQXx`njxgN@xNAX*V-N literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/joy/textures/block/black_candle_lit.png b/src/main/resources/assets/joy/textures/block/black_candle_lit.png new file mode 100644 index 0000000000000000000000000000000000000000..684cc8c60d4a075ca4a91710047dc47d39c5061f GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF4e$wZ{r~^}E-#@Eca}ZBIQRek zzW*lFzsbEZ2;N)<~R7;d-mUnjP-h&?K4@LH&-yS# zL2kfF;sKu5Ly?Wby;mnhK*&#j{(WM75cJ#w+Ly!C`+uPlh1SI`HcdHdWCqy4qoldL zeiuADj1lm^>(4KZ-)6rRpkRP=27tz4R(3Ps-)2?du_lZvEaA`W~tm z??s13BuUb>PuM;`R}sIgh6#1Pa$Nw*wDj#@3-G{X~Qc%l@9m-oIJ$WqY&P6TI7^GKTltr-r>rOC}a z5}Y$EPi+B^TuLd;NZy`3pJwl~1}CkFw~}oXp&9K*>(iv<2PeT<-ZrnDGl&(Ak1|oW zo-N>#>{{y*x1KFPa_^bgNn)mn8v3cM+UKx@?;w9z;xNZa{cC5n~V zEfz0SS-X8LZ+FhHcKaHO7pknxZsp=VVg=^}Ycj!FsY1wGae3X3VGw91*+7j+^F}AG zV8s5x3#P^=xUsZc=zL>onW^y!_77gueXPaeUf)$4qmy7TADScYxiQF|$v({RS zfH4M<1X5w`@d5zqUxft{GNJ2Ft{@_C0BLh}tu+{d4%zp+4HacAl=^EyU>Wzx**;FX$jF&+^Uk(x zRCjaHpMUbPt8kw_#Gi9{liNF)-8L?V$$Boc{4B9TZW5{V2K Z{{b2UFEN%Xiy{C3002ovPDHLkV1jUO+;ji{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/joy/textures/entity/bee/pride_bii_angry.png b/src/main/resources/assets/joy/textures/entity/bee/bii/pride_bii_angry.png similarity index 100% rename from src/main/resources/assets/joy/textures/entity/bee/pride_bii_angry.png rename to src/main/resources/assets/joy/textures/entity/bee/bii/pride_bii_angry.png diff --git a/src/main/resources/assets/joy/textures/entity/bee/pride_bii_angry_nectar.png b/src/main/resources/assets/joy/textures/entity/bee/bii/pride_bii_angry_nectar.png similarity index 100% rename from src/main/resources/assets/joy/textures/entity/bee/pride_bii_angry_nectar.png rename to src/main/resources/assets/joy/textures/entity/bee/bii/pride_bii_angry_nectar.png diff --git a/src/main/resources/assets/joy/textures/entity/bee/pride_bii_nectar.png b/src/main/resources/assets/joy/textures/entity/bee/bii/pride_bii_nectar.png similarity index 100% rename from src/main/resources/assets/joy/textures/entity/bee/pride_bii_nectar.png rename to src/main/resources/assets/joy/textures/entity/bee/bii/pride_bii_nectar.png diff --git a/src/main/resources/assets/joy/textures/entity/bee/bii_angry.png b/src/main/resources/assets/joy/textures/entity/bee/bii_angry.png new file mode 100644 index 0000000000000000000000000000000000000000..5c0c3e69680421917bf168736eed1a34d5555932 GIT binary patch literal 989 zcmV<310wv1P)A#kHEvXtk0zlg96?A_IW(Xmw|6Aq3PN0vIDilzXZp7^QYxhqmmVVZmT=?L z(2@dDg`iSJ#Dxk-tkh8&$2&7`59?XauI=DM6}#~~k~KTKJL~=Z=6&CpRSd}4+BH!q z1VNz+*Q_|4lddsZE1Gw|Qe78D2tDYHUbJt8j^NY^R_OYrw%e5RGgA__!=^ImjWg34 zr4>4<;H=48al+w2e=YS=|NU2A=El#Byd5@$@LXD~3Ba$v-RTP37i-IXRW^<7`v>;k z*ZH%~&rHd`dyT&RVUS0_(qc_|3HL0&)<7i+u|o1f6#(Z_#0pOiT;D(V;$G*tJnN$n z1-Svoi3iwggd&@TYlp`~K*;)^{~X&N27PNlIUU})`xh!vXk8p))0CrTW`GSmO4{Z1 z+u+_&jDY{mKc5;87QPXnV1RQ5faXEg_A=mNWBK`B2E)|Qx{{0b{g6a=e$NX7zp5AS zMTbTtNz!vncz$WICO)l333ax1O#tTSC)nLNV&#n{ySq)^{pIhT1Ii|pqX6LhH(z0H zZi3JMm|$-H3_Ckn(F}Kx;f_)ep4|CzD5;_WoCwaE_LepUIx`%$AI1rYYtq zTMf$N!{<5?1R+tKtn=GxZ^|&xT4nBAqj64<(*9i~is||q)~LcYZ;mzDb(IunQLNyc zU`-}iD^&=2D=zQ*cNhlRN%o?~bY{?rD~R2ktTJ6+W8vY|!r+C6SDCJ_u{l}I&xsXW zFr&t#I45}oKo;^o5(Fuv$VsD}%f93w`-1a6gfo6+zs2TcmHny9`8lz|{?uhQC#zi9 zZ{_E#$!61}+4G!jw}A;(99CQ|zSpPpNs*Uu*WS%qYcT@G7(^0Cg}rkhZ~=HctH3}) zCiL;_hg=Y0?;Ox<=d(2!fmW+KubmUnbOeXTk>M~<^?7uCLn>$H0C?$>w?}$w`^iRb$wgL zZfS(fgm8I`L?V$$Boc{4B9TZW5{X12kw_#Gi9{liNF)-8L`I9Je}Ou`!`Ren00000 LNkvXXu0mjfakuF7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/joy/textures/entity/bee/bii_angry_nectar.png b/src/main/resources/assets/joy/textures/entity/bee/bii_angry_nectar.png new file mode 100644 index 0000000000000000000000000000000000000000..2118a374775238a671b92c4a6c593689a338cc86 GIT binary patch literal 1248 zcmV<61Rwi}P)9(E6vuz>Oym|%z^8Ws|P*1Ck1C9O+0Y8wJt z5{w1Hq6QYy>IxH~RK^xV8YmK=frvso^kZ6PI`7`&;>|qfqa|G^Q``GXUhaJ#_v4)V zf9D*FIZ_lnAQl!Q2cMyQ=Pj=VP@>UV=-3?M{qO6%*0wF8zwWl?x<)Rr=lWrP(KNMbX;@qo?=_e21Z7r?ll}{bX+qQQ)yReaM0_g z(sk|chu-IcS&h#89WGbai{-Ph?Yy+_R6I^B>Kdw2gy2iKcFp*~|AzuHxiHXcT^Q)K zl8(^#^1XM@{k#PLtsN}i-1nbpY_5%mhbSPE!Kwza?L4%0(o~?eLv+%abzG_f<|A`X zgPF!_{lI9S&o|?k)aPq!f|69ze8MUU9+06{KkJ&~j10$UU*!h4*ZcpRaX|bI9n)wxt*VK^SWFQ{5Or5T<%}qc5x)BulSiI+H(}*2PTKuVlV~kC zPMlSrRROT6AwSI#J^lhpoa0no-QztgJGqgnt9uB9JL&N!D#IPu5G8DCa8u^8`Y{|Q zj!vjR5N@;xqxRZzEIlt7@+W-O}tdiglvDa~tVhqBU}m5^%QcPnr{xCVeo`Y)rD;-`(v2`urk z`FZ+p3&QDS1v9GBstu5T^5q@ z|61-%#tJ7kLe+Q?rc5wX##peV2E)T$*JaVA zMsS^wnjQ@XgTY`h7z_r3!C){L3V@RN7hlvw zXrUmMq%BB=QmpvU2f<(?F^Nc^tx{52>YwJ)-sLWrba&?G!{)Ykm!!>8H|@;_mf4w| zotf`%f4}(+Yq3hI<4458B6;*_>N>CcC4dr**23WKQQrHm)h}(^V*b|;t<}yE1omn> zjwiCrSrO_wuQQg&5bM0=KXa6z1oob8^~=HCqc}>IjI*(}MheTIS+xP)_@ai*wR6%ORodpzf81p>F~R@JW*5zO_6(UZ;T7T#N@~lx7`pwDur%e z$h@lnIQh;fdr!9(JyXAR`D1OYt&#t3r&p{8fj{~7#<(meJkQ{}pNSQ+5G91xJqEy@ z!z~OYeqk=FSDfI3Gl%>!_cd>oZ^r&yu^t4zkKRi>!0oi=)-6Rx-wu+=d6LO_zWQXC z+i6W|K^0xK@k{=FAwOLC_n!42SW$FoI9%M=C05A7wkwMIDaT=9-V>?{93ix5+HL8h z4~GYoGBG(~O-znhc|%yCyX$=Jr#1kzc8l8YN2%DL#RF8_uR~#I*meb4yZrU~w?*|l zp;hOUwZp2HoEMu9fg<6d(6a9owr_8YOWvE-5>|Emh+OTD(9-LWoL=DA^WFyc*7%KO zUnn&~>7D@a<4aFbS69jYi%|3$7IG(=0QmCbp8-#hDB(`d#a)0?H(UG-(6%c$b+g5PrX0r~RB7Qv?*)I{ zZN1fK5d`7dK!nUtBeBPyMDXU`)?59+1eaplmgjlOwYhw01SvVcTOo^%O{44zpJ(uF zCzoG433$dCJln~x@Oe5mje6PO*cSgiQNp!>8kFm8Gr#xDVPVnGondzUi1P%nCcJH(4C>VFHE>&(%%b$!fxuRLJ15X%Ay2Z2hI&Fpj->3 zD*=3wu}IW6O!DpFqIU4Ux^gYf4J_a~paisnKYDX$Eoc#*?Vd%6W-O6msy~btVRKh1 zFa!8o_>NCE02-wfu7K;hgd~Rs25+6Q1SH^)caQ$`nweofmv`C<5?*eSK!W_ zyT`&85>8P+(d^pxb3lAK!R567cUDm_&sy6lXQ7o1Z{^2R7N z$|KKmg3Hnfh3>zvd24wYAWu#yDO>UPBA+G7E;L|iW+*Eo6lR9Pj1lar9uQ@p9SS$Y zvW@?J&0EX!h-@$z3w( N002ovPDHLkV1jf(P(=U$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/joy/textures/entity/bee/enbee.png b/src/main/resources/assets/joy/textures/entity/bee/enbee.png new file mode 100644 index 0000000000000000000000000000000000000000..baddff409581253e91d6c79302f76d2201104bfe GIT binary patch literal 1045 zcmV+w1nT>VP)q5KgP%cd~*8>?1GKsTtdojS}LJ9sSmDx!uvZLx%#_Tm)YKJr{$!{39z=h zt^vOL;oE_g`SrKN$)K-eNuoClbD{g++|M6u0^>&=tX^E>XGJ$`dg%f0HaPl9vz zfc|uN`>p42T!*r|lxx?i*LZbb0pNLdYIoh9?W0WFX^enp=3kN;-p|__$O+(k4FH~g ze*)(Su=?JI6W{4C;+dyF5&XQf4%D&dE4!*dw%oc;$WX z%=u*X0p=@}p?$LUwbgZ%*t$fkr{ z`~ZMQUmY;F_gXsM$6szj<`PBUMM@~mliJBdQpE=Fg+$6OVWg0<3z-#8%I3i-Z@g1W zBf<9?ym?DvwO+`zO`fyk`9h{2Y{z$otQh@Q>v3WylT$*a#$=Md*T61?)b^VMO7QsM znIL6%iN_D&k3XN#{(X*4y*AK4JFYJzLTM_cLi$c9J zDCl79k`ai_)Ne3b_qo4L*pHa1zDuX5aJr8eow+@E2$>l1_`jR4}1Pa;7m zolB8%;{>6gC3_PKwI+yl@R}uD0&IuW$;J69(vvu@gY;z1PVBtbECCSsz43&wXh}_# zSd@a3I$VyQhy6;Ai!}Cxh{H1sX-Q3^UMCDIs4(KuXBMzPu~@`wf=htcEb;Z{5QYl? z)DI)7Y}IqgjV1>AYc7TJ1yaN0IiUXzDI9|2nPqVb1B96CrWfk0PCj z(J#vXo?#BpqzKvYzjJ+MwggDBa)S8F( P00000NkvXXu0mjfpH&4p literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/joy/textures/entity/bee/enbee_angry.png b/src/main/resources/assets/joy/textures/entity/bee/enbee_angry.png new file mode 100644 index 0000000000000000000000000000000000000000..aec78f18221874b078164727bb3876d02e0e446b GIT binary patch literal 1028 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 LNkvXXu0mjfqM(R) literal 0 HcmV?d00001