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 0000000..30e12df Binary files /dev/null and b/src/main/resources/assets/joy/textures/block/black_candle.png differ 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 0000000..684cc8c Binary files /dev/null and b/src/main/resources/assets/joy/textures/block/black_candle_lit.png differ diff --git a/src/main/resources/assets/joy/textures/entity/bee/pride_bii.png b/src/main/resources/assets/joy/textures/entity/bee/bii.png similarity index 100% rename from src/main/resources/assets/joy/textures/entity/bee/pride_bii.png rename to src/main/resources/assets/joy/textures/entity/bee/bii.png diff --git a/src/main/resources/assets/joy/textures/entity/bee/bii/pride_bii.png b/src/main/resources/assets/joy/textures/entity/bee/bii/pride_bii.png new file mode 100644 index 0000000..a5b549d Binary files /dev/null and b/src/main/resources/assets/joy/textures/entity/bee/bii/pride_bii.png differ 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 0000000..5c0c3e6 Binary files /dev/null and b/src/main/resources/assets/joy/textures/entity/bee/bii_angry.png differ 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 0000000..2118a37 Binary files /dev/null and b/src/main/resources/assets/joy/textures/entity/bee/bii_angry_nectar.png differ diff --git a/src/main/resources/assets/joy/textures/entity/bee/bii_nectar.png b/src/main/resources/assets/joy/textures/entity/bee/bii_nectar.png new file mode 100644 index 0000000..4051604 Binary files /dev/null and b/src/main/resources/assets/joy/textures/entity/bee/bii_nectar.png differ 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 0000000..baddff4 Binary files /dev/null and b/src/main/resources/assets/joy/textures/entity/bee/enbee.png differ 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 0000000..aec78f1 Binary files /dev/null and b/src/main/resources/assets/joy/textures/entity/bee/enbee_angry.png differ diff --git a/src/main/resources/assets/joy/textures/entity/bee/enbee_angry_nectar.png b/src/main/resources/assets/joy/textures/entity/bee/enbee_angry_nectar.png new file mode 100644 index 0000000..0b3f3db Binary files /dev/null and b/src/main/resources/assets/joy/textures/entity/bee/enbee_angry_nectar.png differ diff --git a/src/main/resources/assets/joy/textures/entity/bee/enbee_nectar.png b/src/main/resources/assets/joy/textures/entity/bee/enbee_nectar.png new file mode 100644 index 0000000..d629f65 Binary files /dev/null and b/src/main/resources/assets/joy/textures/entity/bee/enbee_nectar.png differ