From afb21dd2c8e80e45a3124ec5aa316cf73338c157 Mon Sep 17 00:00:00 2001 From: zontreck Date: Mon, 1 Apr 2024 05:17:35 -0700 Subject: [PATCH] Fix enchantments, item lore handlers, add mob egg drop chance to lore text. Fix mob egg drop rates. Fix player head drop rates --- build.gradle | 1 + gradle.properties | 2 +- .../entity/CompressionChamberBlockEntity.java | 11 +- .../entity/ItemScrubberBlockEntity.java | 8 +- .../entity/MagicalScrubberBlockEntity.java | 7 +- .../blocks/entity/UncrafterBlockEntity.java | 20 +- .../otemod/configs/snbt/ServerConfig.java | 1 + .../otemod/configs/snbt/sections/Drops.java | 8 +- .../enchantments/MobEggEnchantment.java | 24 +- .../otemod/entities/ModEntityTypes.java | 11 - .../entities/monsters/PossumEntity.java | 59 ---- .../entities/monsters/client/PossumModel.java | 22 -- .../monsters/client/PossumRenderer.java | 29 -- .../zontreck/otemod/events/EventHandler.java | 15 +- .../zontreck/otemod/events/LoreHandlers.java | 54 ++- .../otemod/events/ModEventBusEvents.java | 4 - .../OutputItemStackHandler.java | 44 --- .../dev/zontreck/otemod/items/ModItems.java | 4 - .../otemod/items/tags/ItemStatTag.java | 9 +- .../otemod/items/tags/ItemStatType.java | 3 +- .../otemod/items/tags/ItemStatistics.java | 9 +- .../otemod/animations/possum.animation.json | 9 - .../assets/otemod/geo/possum.geo.json | 321 ------------------ .../resources/assets/otemod/lang/en_us.json | 4 +- .../otemod/textures/entity/possum_texture.png | Bin 4438 -> 0 bytes 25 files changed, 121 insertions(+), 558 deletions(-) delete mode 100644 src/main/java/dev/zontreck/otemod/entities/monsters/PossumEntity.java delete mode 100644 src/main/java/dev/zontreck/otemod/entities/monsters/client/PossumModel.java delete mode 100644 src/main/java/dev/zontreck/otemod/entities/monsters/client/PossumRenderer.java delete mode 100644 src/main/java/dev/zontreck/otemod/implementation/OutputItemStackHandler.java delete mode 100644 src/main/resources/assets/otemod/animations/possum.animation.json delete mode 100644 src/main/resources/assets/otemod/geo/possum.geo.json delete mode 100644 src/main/resources/assets/otemod/textures/entity/possum_texture.png diff --git a/build.gradle b/build.gradle index d061edc..386d61c 100644 --- a/build.gradle +++ b/build.gradle @@ -168,6 +168,7 @@ dependencies { runtimeOnly fg.deobf("curse.maven:mekanism-268560:5125665") runtimeOnly fg.deobf("curse.maven:worldedit-225608:4586218") runtimeOnly fg.deobf("curse.maven:jei-238222:5101366") + runtimeOnly fg.deobf("curse.maven:nbtedit-reborn-678133:5082493") // Example mod dependency with JEI - using fg.deobf() ensures the dependency is remapped to your development mappings // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime diff --git a/gradle.properties b/gradle.properties index 21c31f4..bea5b7c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -48,7 +48,7 @@ mod_name=Thresholds # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=GPLv3 # The mod version. See https://semver.org/ -mod_version=1201.4.040124.0234 +mod_version=1201.4.040124.0514 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/main/java/dev/zontreck/otemod/blocks/entity/CompressionChamberBlockEntity.java b/src/main/java/dev/zontreck/otemod/blocks/entity/CompressionChamberBlockEntity.java index ac1156c..e8f2c73 100644 --- a/src/main/java/dev/zontreck/otemod/blocks/entity/CompressionChamberBlockEntity.java +++ b/src/main/java/dev/zontreck/otemod/blocks/entity/CompressionChamberBlockEntity.java @@ -1,7 +1,8 @@ package dev.zontreck.otemod.blocks.entity; +import dev.zontreck.libzontreck.items.InputItemStackHandler; +import dev.zontreck.libzontreck.items.OutputItemStackHandler; import dev.zontreck.libzontreck.util.ChatHelpers; -import dev.zontreck.otemod.implementation.OutputItemStackHandler; import dev.zontreck.otemod.implementation.compressor.CompressionChamberMenu; import dev.zontreck.otemod.implementation.energy.IThresholdsEnergy; import dev.zontreck.otemod.implementation.energy.OTEEnergy; @@ -19,17 +20,14 @@ import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.ContainerData; -import net.minecraft.world.inventory.SimpleContainerData; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.energy.EnergyStorage; import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemStackHandler; @@ -47,6 +45,8 @@ public class CompressionChamberBlockEntity extends BlockEntity implements MenuPr super(ModEntities.COMPRESSION_CHAMBER.get(), pPos, pBlockState); outputSlot = new OutputItemStackHandler(outputItems); + inputSlot = new InputItemStackHandler(itemsHandler); + data = new ContainerData() { @Override public int get(int i) { @@ -91,6 +91,7 @@ public class CompressionChamberBlockEntity extends BlockEntity implements MenuPr } }; private ItemStackHandler outputSlot; + private ItemStackHandler inputSlot; private final OTEEnergy ENERGY_STORAGE = new OTEEnergy(ENERGY_REQUIREMENT*3, ENERGY_REQUIREMENT*512) { @@ -148,7 +149,7 @@ public class CompressionChamberBlockEntity extends BlockEntity implements MenuPr public void onLoad() { super.onLoad(); - lazyItemHandler = LazyOptional.of(()->itemsHandler); + lazyItemHandler = LazyOptional.of(()->inputSlot); lazyOutputItems = LazyOptional.of(()->outputSlot); lazyEnergyHandler = LazyOptional.of(()->ENERGY_STORAGE); } diff --git a/src/main/java/dev/zontreck/otemod/blocks/entity/ItemScrubberBlockEntity.java b/src/main/java/dev/zontreck/otemod/blocks/entity/ItemScrubberBlockEntity.java index 4c1c1a1..0600198 100644 --- a/src/main/java/dev/zontreck/otemod/blocks/entity/ItemScrubberBlockEntity.java +++ b/src/main/java/dev/zontreck/otemod/blocks/entity/ItemScrubberBlockEntity.java @@ -1,6 +1,7 @@ package dev.zontreck.otemod.blocks.entity; -import dev.zontreck.otemod.implementation.OutputItemStackHandler; +import dev.zontreck.libzontreck.items.InputItemStackHandler; +import dev.zontreck.libzontreck.items.OutputItemStackHandler; import dev.zontreck.otemod.implementation.energy.IThresholdsEnergy; import dev.zontreck.otemod.implementation.energy.OTEEnergy; import dev.zontreck.otemod.implementation.scrubber.ItemScrubberMenu; @@ -58,6 +59,8 @@ public class ItemScrubberBlockEntity extends BlockEntity implements MenuProvider } }; private ItemStackHandler outputSlot; + private ItemStackHandler inputSlot; + private final OTEEnergy ENERGY_STORAGE = new OTEEnergy(ENERGY_REQ*3, ENERGY_REQ+512) { @@ -78,6 +81,7 @@ public class ItemScrubberBlockEntity extends BlockEntity implements MenuProvider public ItemScrubberBlockEntity(BlockPos pos, BlockState state) { super(ModEntities.ITEM_SCRUBBER.get(), pos, state); outputSlot = new OutputItemStackHandler(outputItems); + inputSlot = new InputItemStackHandler(itemsHandler); this.data = new ContainerData() { @@ -148,7 +152,7 @@ public class ItemScrubberBlockEntity extends BlockEntity implements MenuProvider public void onLoad() { super.onLoad(); - lazyItemHandler = LazyOptional.of(()->itemsHandler); + lazyItemHandler = LazyOptional.of(()->inputSlot); lazyOutputItems = LazyOptional.of(()->outputSlot); lazyEnergyHandler = LazyOptional.of(()->ENERGY_STORAGE); } diff --git a/src/main/java/dev/zontreck/otemod/blocks/entity/MagicalScrubberBlockEntity.java b/src/main/java/dev/zontreck/otemod/blocks/entity/MagicalScrubberBlockEntity.java index e44909b..e9d5edc 100644 --- a/src/main/java/dev/zontreck/otemod/blocks/entity/MagicalScrubberBlockEntity.java +++ b/src/main/java/dev/zontreck/otemod/blocks/entity/MagicalScrubberBlockEntity.java @@ -1,7 +1,8 @@ package dev.zontreck.otemod.blocks.entity; +import dev.zontreck.libzontreck.items.InputItemStackHandler; +import dev.zontreck.libzontreck.items.OutputItemStackHandler; import dev.zontreck.libzontreck.util.ItemUtils; -import dev.zontreck.otemod.implementation.OutputItemStackHandler; import dev.zontreck.otemod.implementation.energy.IThresholdsEnergy; import dev.zontreck.otemod.implementation.energy.OTEEnergy; import dev.zontreck.otemod.implementation.scrubber.MagicalScrubberMenu; @@ -63,6 +64,7 @@ public class MagicalScrubberBlockEntity extends BlockEntity implements MenuProvi } }; private ItemStackHandler outputSlot; + private ItemStackHandler inputSlot; private final OTEEnergy ENERGY_STORAGE = new OTEEnergy(ENERGY_REQ*3, ENERGY_REQ+512) { @@ -83,6 +85,7 @@ public class MagicalScrubberBlockEntity extends BlockEntity implements MenuProvi public MagicalScrubberBlockEntity(BlockPos pos, BlockState state) { super(ModEntities.MAGICAL_SCRUBBER.get(), pos, state); outputSlot = new OutputItemStackHandler(outputItems); + inputSlot = new InputItemStackHandler(itemsHandler); this.data = new ContainerData() { @@ -153,7 +156,7 @@ public class MagicalScrubberBlockEntity extends BlockEntity implements MenuProvi public void onLoad() { super.onLoad(); - lazyItemHandler = LazyOptional.of(()->itemsHandler); + lazyItemHandler = LazyOptional.of(()->inputSlot); lazyOutputItems = LazyOptional.of(()->outputSlot); lazyEnergyHandler = LazyOptional.of(()->ENERGY_STORAGE); } diff --git a/src/main/java/dev/zontreck/otemod/blocks/entity/UncrafterBlockEntity.java b/src/main/java/dev/zontreck/otemod/blocks/entity/UncrafterBlockEntity.java index a6c709b..544dd50 100644 --- a/src/main/java/dev/zontreck/otemod/blocks/entity/UncrafterBlockEntity.java +++ b/src/main/java/dev/zontreck/otemod/blocks/entity/UncrafterBlockEntity.java @@ -1,12 +1,10 @@ package dev.zontreck.otemod.blocks.entity; -import dev.zontreck.libzontreck.util.ItemUtils; -import dev.zontreck.otemod.implementation.OutputItemStackHandler; +import dev.zontreck.libzontreck.items.InputItemStackHandler; +import dev.zontreck.libzontreck.items.OutputItemStackHandler; import dev.zontreck.otemod.implementation.energy.IThresholdsEnergy; import dev.zontreck.otemod.implementation.energy.OTEEnergy; -import dev.zontreck.otemod.implementation.scrubber.MagicalScrubberMenu; import dev.zontreck.otemod.implementation.uncrafting.UncrafterMenu; -import dev.zontreck.otemod.items.PartialItem; import dev.zontreck.otemod.networking.ModMessages; import dev.zontreck.otemod.networking.packets.EnergySyncS2CPacket; import net.minecraft.core.BlockPos; @@ -20,16 +18,7 @@ import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.ContainerData; -import net.minecraft.world.inventory.CraftingContainer; -import net.minecraft.world.item.EnchantedBookItem; -import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.item.crafting.CraftingRecipe; -import net.minecraft.world.item.crafting.Recipe; -import net.minecraft.world.item.crafting.RecipeType; -import net.minecraft.world.item.enchantment.Enchantment; -import net.minecraft.world.item.enchantment.EnchantmentInstance; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; @@ -39,7 +28,6 @@ import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemStackHandler; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; import java.util.*; @@ -70,6 +58,7 @@ public class UncrafterBlockEntity extends BlockEntity implements MenuProvider, I } }; private ItemStackHandler outputSlot; + private ItemStackHandler inputSlot; private final OTEEnergy ENERGY_STORAGE = new OTEEnergy(ENERGY_REQ*3, ENERGY_REQ+512) { @@ -90,6 +79,7 @@ public class UncrafterBlockEntity extends BlockEntity implements MenuProvider, I public UncrafterBlockEntity(BlockPos pos, BlockState state) { super(ModEntities.UNCRAFTER.get(), pos, state); outputSlot = new OutputItemStackHandler(outputItems); + inputSlot = new InputItemStackHandler(itemsHandler); this.data = new ContainerData() { @@ -160,7 +150,7 @@ public class UncrafterBlockEntity extends BlockEntity implements MenuProvider, I public void onLoad() { super.onLoad(); - lazyItemHandler = LazyOptional.of(()->itemsHandler); + lazyItemHandler = LazyOptional.of(()->inputSlot); lazyOutputItems = LazyOptional.of(()->outputSlot); lazyEnergyHandler = LazyOptional.of(()->ENERGY_STORAGE); } diff --git a/src/main/java/dev/zontreck/otemod/configs/snbt/ServerConfig.java b/src/main/java/dev/zontreck/otemod/configs/snbt/ServerConfig.java index 74671ec..151ea03 100644 --- a/src/main/java/dev/zontreck/otemod/configs/snbt/ServerConfig.java +++ b/src/main/java/dev/zontreck/otemod/configs/snbt/ServerConfig.java @@ -83,6 +83,7 @@ public class ServerConfig tag.put(Cooldowns.TAG_NAME, cooldowns.save()); tag.put(AntiGrief.TAG_NAME, antigrief.save()); tag.put(ChatOverrides.TAG_NAME, chatOverrides.save()); + tag.put(Drops.TAG_NAME, drops.save()); return tag; diff --git a/src/main/java/dev/zontreck/otemod/configs/snbt/sections/Drops.java b/src/main/java/dev/zontreck/otemod/configs/snbt/sections/Drops.java index 2f7e242..a12aa22 100644 --- a/src/main/java/dev/zontreck/otemod/configs/snbt/sections/Drops.java +++ b/src/main/java/dev/zontreck/otemod/configs/snbt/sections/Drops.java @@ -10,8 +10,8 @@ public class Drops public static final String TAG_PLAYER_HEAD_CHANCE = "playerHeadChance"; public boolean enablePlayerHeadChance = true; - public float mobEggingChance = 0.25f; - public float playerHeadChance=0.5f; + public int mobEggingChance = 5; + public int playerHeadChance=10; public CompoundTag save() @@ -32,10 +32,10 @@ public class Drops drops.enablePlayerHeadChance = tag.getBoolean(TAG_PLAYER_HEAD_DROPS); if(tag.contains(TAG_SPAWN_EGG_CHANCE)) - drops.mobEggingChance = tag.getFloat(TAG_SPAWN_EGG_CHANCE); + drops.mobEggingChance = tag.getInt(TAG_SPAWN_EGG_CHANCE); if(tag.contains(TAG_PLAYER_HEAD_CHANCE)) - drops.playerHeadChance = tag.getFloat(TAG_PLAYER_HEAD_CHANCE); + drops.playerHeadChance = tag.getInt(TAG_PLAYER_HEAD_CHANCE); return drops; } diff --git a/src/main/java/dev/zontreck/otemod/enchantments/MobEggEnchantment.java b/src/main/java/dev/zontreck/otemod/enchantments/MobEggEnchantment.java index d30f98f..8205829 100644 --- a/src/main/java/dev/zontreck/otemod/enchantments/MobEggEnchantment.java +++ b/src/main/java/dev/zontreck/otemod/enchantments/MobEggEnchantment.java @@ -7,6 +7,8 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.EnchantmentCategory; +import java.util.Random; + public class MobEggEnchantment extends Enchantment { public static final String TAG_BIAS = "mob_egging_bias"; @@ -59,17 +61,27 @@ public class MobEggEnchantment extends Enchantment public static boolean givesEgg(int level, int bias) { - double CHANCE = ServerConfig.drops.mobEggingChance * 100; + int CHANCE = ServerConfig.drops.mobEggingChance; - CHANCE *= (level / 0.5); + CHANCE += level; CHANCE += bias; - double rng = Math.random()*100000; - if(ServerConfig.general.debug) { - OTEMod.LOGGER.info("Spawn Egg Chance (" + CHANCE + ") [" + rng + "]"); + OTEMod.LOGGER.info("Spawn Egg Chance (" + CHANCE + ")"); } - return (rng <= CHANCE); + return rollChance((int)CHANCE); + } + + public static boolean rollChance(int percent) + { + Random rng = new Random(); + int test = rng.nextInt(100) + 1; + if(ServerConfig.general.debug) + { + OTEMod.LOGGER.info("Spawn Egg Dice Roll (" + test + " / " + percent + ")"); + } + + return test <= percent; } } diff --git a/src/main/java/dev/zontreck/otemod/entities/ModEntityTypes.java b/src/main/java/dev/zontreck/otemod/entities/ModEntityTypes.java index 03769f0..4f13fd5 100644 --- a/src/main/java/dev/zontreck/otemod/entities/ModEntityTypes.java +++ b/src/main/java/dev/zontreck/otemod/entities/ModEntityTypes.java @@ -1,25 +1,14 @@ package dev.zontreck.otemod.entities; import dev.zontreck.otemod.OTEMod; -import dev.zontreck.otemod.entities.monsters.PossumEntity; -import dev.zontreck.otemod.items.ThrownMobCaptureBall; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.MobCategory; -import net.minecraft.world.entity.projectile.Snowball; -import net.minecraft.world.entity.projectile.ThrowableItemProjectile; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; public class ModEntityTypes { public static final DeferredRegister> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, OTEMod.MOD_ID); - //public static final RegistryObject> POSSUM = ENTITIES.register("possum", ()-> EntityType.Builder.of(PossumEntity::new, MobCategory.CREATURE).sized(1.5f, 0.5f).build(new ResourceLocation(OTEMod.MOD_ID, "possum").toString())); - - private static EntityType registerEntity(EntityType.Builder builder, String entityName) { return builder.build(entityName); } diff --git a/src/main/java/dev/zontreck/otemod/entities/monsters/PossumEntity.java b/src/main/java/dev/zontreck/otemod/entities/monsters/PossumEntity.java deleted file mode 100644 index f3cc95d..0000000 --- a/src/main/java/dev/zontreck/otemod/entities/monsters/PossumEntity.java +++ /dev/null @@ -1,59 +0,0 @@ -package dev.zontreck.otemod.entities.monsters; - - -public class PossumEntity -{ - /* - public PossumEntity(EntityType pEntityType, Level pLevel) { - super(pEntityType, pLevel); - //TODO Auto-generated constructor stub - } - - private AnimationFactory factory = GeckoLibUtil.createFactory(this); - - - @Override - public AnimationFactory getFactory() { - return factory; - } - - @Override - public PossumEntity getBreedOffspring(ServerLevel pLevel, AgeableMob pOtherParent) { - return (PossumEntity) ModEntityTypes.POSSUM.get().create(pLevel); - } - - @Override - public boolean isFood(ItemStack pStack) - { - return pStack.is(Items.APPLE); - } - - - public static AttributeSupplier createAttributes() { - return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 12.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F).build(); - } - - private PlayState predicate(AnimationEvent ev) - { - if(ev.isMoving()) - { - // change anim - return PlayState.CONTINUE; - } - - ev.getController().setAnimation(new AnimationBuilder().addAnimation("animation.model.idle", ILoopType.EDefaultLoopTypes.LOOP)); - return PlayState.CONTINUE; - } - - @Override - public void registerControllers(AnimationData data) { - data.addAnimationController(new AnimationController(this, "controller", 0, this::predicate)); - } - - @Override - public void registerGoals() - { - this.goalSelector.addGoal(0, new FloatGoal(this)); - this.goalSelector.addGoal(1, new WaterAvoidingRandomStrollGoal(this, 1)); - }*/ -} \ No newline at end of file diff --git a/src/main/java/dev/zontreck/otemod/entities/monsters/client/PossumModel.java b/src/main/java/dev/zontreck/otemod/entities/monsters/client/PossumModel.java deleted file mode 100644 index 15b08bf..0000000 --- a/src/main/java/dev/zontreck/otemod/entities/monsters/client/PossumModel.java +++ /dev/null @@ -1,22 +0,0 @@ -package dev.zontreck.otemod.entities.monsters.client; - - -public class PossumModel -{ -/* - @Override - public ResourceLocation getAnimationFileLocation(PossumEntity animatable) { - return new ResourceLocation(OTEMod.MOD_ID, "animations/possum.animation.json"); - } - - @Override - public ResourceLocation getModelLocation(PossumEntity object) { - return new ResourceLocation(OTEMod.MOD_ID, "geo/possum.geo.json"); - } - - @Override - public ResourceLocation getTextureLocation(PossumEntity object) { - return new ResourceLocation(OTEMod.MOD_ID, "textures/entity/possum_texture.png"); - }*/ - -} \ No newline at end of file diff --git a/src/main/java/dev/zontreck/otemod/entities/monsters/client/PossumRenderer.java b/src/main/java/dev/zontreck/otemod/entities/monsters/client/PossumRenderer.java deleted file mode 100644 index d93ba82..0000000 --- a/src/main/java/dev/zontreck/otemod/entities/monsters/client/PossumRenderer.java +++ /dev/null @@ -1,29 +0,0 @@ -package dev.zontreck.otemod.entities.monsters.client; - - -public class PossumRenderer -{ -/* - public PossumRenderer(EntityRendererProvider.Context renderManager) { - super(renderManager, new PossumModel()); - this.shadowRadius=0.3f; - } - - - @Override - public ResourceLocation getTextureLocation(PossumEntity entity) - { - - return new ResourceLocation(OTEMod.MOD_ID, "textures/entity/possum_texture.png"); - } - - - @Override - public RenderType getRenderType(PossumEntity animatable, float partialTicks, - PoseStack stack, MultiBufferSource buffer, - VertexConsumer consumer, int packed, ResourceLocation loc) - { - return super.getRenderType(animatable, partialTicks, stack, buffer, consumer, packed, loc); - } - */ -} diff --git a/src/main/java/dev/zontreck/otemod/events/EventHandler.java b/src/main/java/dev/zontreck/otemod/events/EventHandler.java index 4438987..08c810c 100644 --- a/src/main/java/dev/zontreck/otemod/events/EventHandler.java +++ b/src/main/java/dev/zontreck/otemod/events/EventHandler.java @@ -17,6 +17,7 @@ import dev.zontreck.otemod.enchantments.ModEnchantments; import dev.zontreck.otemod.implementation.DeathMessages; import dev.zontreck.otemod.implementation.InventoryBackup; import dev.zontreck.otemod.implementation.Messages; +import dev.zontreck.otemod.items.tags.ItemStatType; import dev.zontreck.otemod.registry.ModDimensions; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; @@ -28,6 +29,7 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.SpawnEggItem; import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.GameType; import net.minecraftforge.common.ForgeSpawnEggItem; @@ -73,12 +75,11 @@ public class EventHandler { } // Calculate chance - double base_chance = ServerConfig.drops.playerHeadChance; + double base_chance = (ServerConfig.drops.playerHeadChance * 100); base_chance += looting; - base_chance *= 100; Random rng = new Random(); - double num = rng.nextDouble(0,100000); + int num = rng.nextInt(100) + 1; if(num <= base_chance) { ItemStack head = HeadUtilities.get(profile.username, "").setHoverName(ChatHelpers.macro(profile.nickname+"'s Head")); @@ -160,9 +161,13 @@ public class EventHandler { // Check enchantment level for looting int level = ItemUtils.getEnchantmentLevel (Enchantments.MOB_LOOTING,stack); if(level==3){ - ItemStack egg = new ItemStack(ForgeSpawnEggItem.fromEntityType(killed.getType())); + ItemStack egg = new ItemStack( + ForgeSpawnEggItem.fromEntityType(killed.getType()) + ); + + ev.getDrops().add(new ItemEntity(killed.level(), killed.getX(), killed.getY(), killed.getZ(), egg)); - //LoreHandlers.updateItem(stack, ItemStatType.EGGING); + LoreHandlers.updateItem(stack, ItemStatType.EGGING); } }else{ bias += 1; diff --git a/src/main/java/dev/zontreck/otemod/events/LoreHandlers.java b/src/main/java/dev/zontreck/otemod/events/LoreHandlers.java index 001d969..7c1903b 100644 --- a/src/main/java/dev/zontreck/otemod/events/LoreHandlers.java +++ b/src/main/java/dev/zontreck/otemod/events/LoreHandlers.java @@ -3,7 +3,11 @@ package dev.zontreck.otemod.events; import dev.zontreck.libzontreck.lore.LoreContainer; import dev.zontreck.libzontreck.lore.LoreEntry; import dev.zontreck.libzontreck.util.ChatHelpers; +import dev.zontreck.libzontreck.util.ItemUtils; import dev.zontreck.otemod.OTEMod; +import dev.zontreck.otemod.configs.snbt.ServerConfig; +import dev.zontreck.otemod.enchantments.MobEggEnchantment; +import dev.zontreck.otemod.enchantments.ModEnchantments; import dev.zontreck.otemod.items.tags.ItemStatTag; import dev.zontreck.otemod.items.tags.ItemStatType; import dev.zontreck.otemod.items.tags.ItemStatistics; @@ -75,7 +79,7 @@ public class LoreHandlers { { if(bs.is(Blocks.DIRT) || bs.is(Blocks.GRASS_BLOCK)) { - OTEMod.LOGGER.info("DIRT!"); + //OTEMod.LOGGER.info("DIRT!"); updateItem(itemUsed, ItemStatType.HOE); } } else if(sName.contains("shovel")) @@ -98,7 +102,7 @@ public class LoreHandlers { { // Check the entity right-clicked, and the item in hand - OTEMod.LOGGER.info("Success"); + //OTEMod.LOGGER.info("Success"); ServerPlayer sp = (ServerPlayer)ev.getEntity(); ItemStack itemUsed = sp.getMainHandItem(); Entity target = ev.getTarget(); @@ -149,6 +153,10 @@ public class LoreHandlers { } + if(ItemUtils.getEnchantmentLevel(ModEnchantments.MOB_EGGING_ENCHANTMENT.get(), weaponUsed) > 0) { + updateItem(weaponUsed, ItemStatType.EGG_CHANCE); + } + } // Only valid to be used by OTEMod @@ -159,31 +167,59 @@ public class LoreHandlers { // Update the mob kill count CompoundTag props = weaponUsed.getTag(); - if(props==null)props=new CompoundTag(); - CompoundTag container = props.getCompound(ItemStatTag.STATS_TAG+"_"+type.name().toLowerCase()); + if(props==null){ + props=new CompoundTag(); + weaponUsed.setTag(props); + } + String tagName = ItemStatTag.STATS_TAG + "_" + type.name().toLowerCase(); + CompoundTag container = new CompoundTag(); + if(!props.contains(tagName)) + { + props.put(tagName, container); + }else container = props.getCompound(ItemStatTag.STATS_TAG+"_"+type.name().toLowerCase()); LoreContainer contain = new LoreContainer(weaponUsed); ItemStatTag isTag; try{ - isTag = new ItemStatTag(type, container.getInt(ItemStatTag.STATS_TAG+"_"+type.name().toLowerCase())); + isTag = new ItemStatTag(type, (container.contains("pos") ? container.getInt("pos") : contain.miscData.loreData.size()), container.getInt("value")); }catch (Exception e){ - isTag = new ItemStatTag(type, 0); + isTag = new ItemStatTag(type, contain.miscData.loreData.size(), 0); } - isTag.increment(); + if(type == ItemStatType.EGG_CHANCE) + { + int bias = weaponUsed.getTag().getInt(MobEggEnchantment.TAG_BIAS); + int level = ItemUtils.getEnchantmentLevel(ModEnchantments.MOB_EGGING_ENCHANTMENT.get(), weaponUsed); + + double percent = ((ServerConfig.drops.mobEggingChance) + (level + bias)); + + isTag.setValue((int)percent); + }else isTag.increment(); LoreEntry entry; + + if(contain.miscData.loreData.size()==0) { // Missing entry entry = new LoreEntry.Builder().text(ItemStatistics.makeText(isTag)).build(); contain.miscData.loreData.add(entry); }else { - entry = contain.miscData.loreData.get(0); // Stat is set at 0 - entry.text = ItemStatistics.makeText(isTag); + if(contain.miscData.loreData.size() == isTag.tagPosition) + { + entry = new LoreEntry.Builder().text(ItemStatistics.makeText(isTag)).build(); + contain.miscData.loreData.add(entry); + }else { + entry = contain.miscData.loreData.get(isTag.tagPosition); // Stat is set at 0 + entry.text = ItemStatistics.makeText(isTag); + + } } // Update item contain.commitLore(); + container.putInt("pos", isTag.tagPosition); + container.putInt("value", isTag.value); + weaponUsed.setTag(props); }catch(Exception e) { e.printStackTrace(); diff --git a/src/main/java/dev/zontreck/otemod/events/ModEventBusEvents.java b/src/main/java/dev/zontreck/otemod/events/ModEventBusEvents.java index 70e977f..0e4090c 100644 --- a/src/main/java/dev/zontreck/otemod/events/ModEventBusEvents.java +++ b/src/main/java/dev/zontreck/otemod/events/ModEventBusEvents.java @@ -1,10 +1,6 @@ package dev.zontreck.otemod.events; import dev.zontreck.otemod.OTEMod; -import dev.zontreck.otemod.entities.ModEntityTypes; -import dev.zontreck.otemod.entities.monsters.PossumEntity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.LivingEntity; import net.minecraftforge.event.entity.EntityAttributeCreationEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; diff --git a/src/main/java/dev/zontreck/otemod/implementation/OutputItemStackHandler.java b/src/main/java/dev/zontreck/otemod/implementation/OutputItemStackHandler.java deleted file mode 100644 index 23f97e6..0000000 --- a/src/main/java/dev/zontreck/otemod/implementation/OutputItemStackHandler.java +++ /dev/null @@ -1,44 +0,0 @@ -package dev.zontreck.otemod.implementation; - -import net.minecraft.core.NonNullList; -import net.minecraft.world.item.ItemStack; -import net.minecraftforge.items.ItemStackHandler; - -public class OutputItemStackHandler extends ItemStackHandler { - private final ItemStackHandler internalSlot; - - public OutputItemStackHandler(ItemStackHandler hidden) { - super(); - internalSlot = hidden; - } - - @Override - public void setSize(int size) { - stacks = NonNullList.withSize(size, ItemStack.EMPTY); - } - - @Override - public void setStackInSlot(int slot, ItemStack stack) { - internalSlot.setStackInSlot(slot, stack); - } - - @Override - public int getSlots() { - return internalSlot.getSlots(); - } - - @Override - public ItemStack getStackInSlot(int slot) { - return internalSlot.getStackInSlot(slot); - } - - @Override - public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { - return stack; - } - - @Override - public ItemStack extractItem(int slot, int amount, boolean simulate) { - return internalSlot.extractItem(slot, amount, simulate); - } -} diff --git a/src/main/java/dev/zontreck/otemod/items/ModItems.java b/src/main/java/dev/zontreck/otemod/items/ModItems.java index 5b9ebb6..fb6f0fb 100644 --- a/src/main/java/dev/zontreck/otemod/items/ModItems.java +++ b/src/main/java/dev/zontreck/otemod/items/ModItems.java @@ -16,14 +16,10 @@ public class ModItems { public static final RegistryObject IHAN_CRYSTAL = CreativeModeTabs.addToOTEModTab(ITEMS.register("ihan_crystal", () -> new IhanCrystal())); - - public static final RegistryObject ETERNIUM_RAW_ORE = CreativeModeTabs.addToOTEModTab(ITEMS.register("eternium_ore", () -> new Item(new Item.Properties()))); public static final RegistryObject ETERNIUM_INGOT = CreativeModeTabs.addToOTEModTab(ITEMS.register("eternium_ingot", ()-> new SimpleFoiledItem(new Item.Properties()))); - - public static final RegistryObject MELTED_ENDER_PEARL = CreativeModeTabs.addToOTEModTab(ITEMS.register("melted_ender_pearl", () -> new SimpleFoiledItem(new Item.Properties().stacksTo(64)))); public static final RegistryObject SINGULARITY = CreativeModeTabs.addToOTEModTab(ITEMS.register("singularity", () -> new UnstableSingularity(new Item.Properties().stacksTo(1)))); diff --git a/src/main/java/dev/zontreck/otemod/items/tags/ItemStatTag.java b/src/main/java/dev/zontreck/otemod/items/tags/ItemStatTag.java index b42bfd0..e647640 100644 --- a/src/main/java/dev/zontreck/otemod/items/tags/ItemStatTag.java +++ b/src/main/java/dev/zontreck/otemod/items/tags/ItemStatTag.java @@ -5,12 +5,14 @@ import net.minecraft.nbt.CompoundTag; public class ItemStatTag { public static final String STATS_TAG = "stat"; public ItemStatType type; + public int tagPosition; public int value; - public ItemStatTag(ItemStatType t, int tag) + public ItemStatTag(ItemStatType t, int tagPos, int tag) { type = t; value = tag; + tagPosition = tagPos; } public void increment(){ @@ -21,6 +23,11 @@ public class ItemStatTag { value--; } + public void setValue(int value) + { + this.value=value; + } + public void save(CompoundTag tag) { tag.putInt(STATS_TAG+"_"+type.name().toLowerCase(), value); diff --git a/src/main/java/dev/zontreck/otemod/items/tags/ItemStatType.java b/src/main/java/dev/zontreck/otemod/items/tags/ItemStatType.java index 5c7801c..d88d297 100644 --- a/src/main/java/dev/zontreck/otemod/items/tags/ItemStatType.java +++ b/src/main/java/dev/zontreck/otemod/items/tags/ItemStatType.java @@ -9,5 +9,6 @@ public enum ItemStatType { SHOVELPATH, HOE, SHEARS, - EGGING + EGGING, + EGG_CHANCE } diff --git a/src/main/java/dev/zontreck/otemod/items/tags/ItemStatistics.java b/src/main/java/dev/zontreck/otemod/items/tags/ItemStatistics.java index c9621ca..fffba35 100644 --- a/src/main/java/dev/zontreck/otemod/items/tags/ItemStatistics.java +++ b/src/main/java/dev/zontreck/otemod/items/tags/ItemStatistics.java @@ -11,6 +11,7 @@ public class ItemStatistics { public static String makeText(ItemStatType type, int val) { String lore = ChatColor.doColors("!White!"); + String sAppend = ""; switch(type) { case SWORD -> { @@ -38,10 +39,14 @@ public class ItemStatistics { lore += "Sheep Shaved: "; } case EGGING -> { - lore += "Mobs Egged: "; + lore += "Spawn Eggs Dropped: "; + } + case EGG_CHANCE -> { + lore += "Spawn Egg Chance: "; + sAppend = "!White!%"; } } - lore += ChatColor.doColors("!Green!"+val); + lore += ChatColor.doColors("!Green!"+val + sAppend); return lore; } } diff --git a/src/main/resources/assets/otemod/animations/possum.animation.json b/src/main/resources/assets/otemod/animations/possum.animation.json deleted file mode 100644 index 34d4f68..0000000 --- a/src/main/resources/assets/otemod/animations/possum.animation.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "format_version": "1.8.0", - "animations": { - "animation.model.idle": { - "loop": true - } - }, - "geckolib_format_version": 2 -} \ No newline at end of file diff --git a/src/main/resources/assets/otemod/geo/possum.geo.json b/src/main/resources/assets/otemod/geo/possum.geo.json deleted file mode 100644 index 42afcad..0000000 --- a/src/main/resources/assets/otemod/geo/possum.geo.json +++ /dev/null @@ -1,321 +0,0 @@ -{ - "format_version": "1.12.0", - "minecraft:geometry": [ - { - "description": { - "identifier": "geometry.unknown", - "texture_width": 64, - "texture_height": 64, - "visible_bounds_width": 3, - "visible_bounds_height": 2.5, - "visible_bounds_offset": [0, 0.75, 0] - }, - "bones": [ - { - "name": "tail", - "pivot": [5, 1, 10], - "cubes": [ - { - "origin": [-7, 5, 1], - "size": [2, 1, 2], - "uv": { - "north": {"uv": [42, 57], "uv_size": [5, 5]}, - "east": {"uv": [28, 58], "uv_size": [5, 6]}, - "south": {"uv": [20, 58], "uv_size": [6, 6]}, - "west": {"uv": [13, 59], "uv_size": [5, 5]}, - "up": {"uv": [6, 59], "uv_size": [7, 5]}, - "down": {"uv": [0, 64], "uv_size": [6, -5]} - } - }, - { - "origin": [-7, 4, 2], - "size": [2, 1, 1], - "uv": { - "north": {"uv": [31, 59], "uv_size": [5, 5]}, - "east": {"uv": [25, 58], "uv_size": [4, 6]}, - "south": {"uv": [19, 58], "uv_size": [6, 6]}, - "west": {"uv": [13, 59], "uv_size": [5, 5]}, - "up": {"uv": [6, 59], "uv_size": [7, 5]}, - "down": {"uv": [0, 64], "uv_size": [6, -5]} - } - }, - { - "origin": [-7, 2, -1], - "size": [1, 1, 2], - "uv": { - "north": {"uv": [59, 56], "uv_size": [4, 5]}, - "east": {"uv": [22, 58], "uv_size": [5, 6]}, - "south": {"uv": [16, 58], "uv_size": [5, 6]}, - "west": {"uv": [11, 59], "uv_size": [5, 5]}, - "up": {"uv": [5, 59], "uv_size": [6, 5]}, - "down": {"uv": [0, 64], "uv_size": [5, -5]} - } - }, - { - "origin": [-7, 1, -2], - "size": [2, 1, 2], - "uv": { - "north": {"uv": [36, 55], "uv_size": [5, 5]}, - "east": {"uv": [27, 58], "uv_size": [5, 6]}, - "south": {"uv": [20, 58], "uv_size": [6, 6]}, - "west": {"uv": [13, 59], "uv_size": [6, 5]}, - "up": {"uv": [6, 59], "uv_size": [7, 5]}, - "down": {"uv": [0, 64], "uv_size": [6, -5]} - } - }, - { - "origin": [-6, 2, -2], - "size": [1, 1, 2], - "uv": { - "north": {"uv": [36, 58], "uv_size": [4, 5]}, - "east": {"uv": [24, 58], "uv_size": [5, 6]}, - "south": {"uv": [19, 58], "uv_size": [5, 6]}, - "west": {"uv": [11, 59], "uv_size": [6, 5]}, - "up": {"uv": [5, 59], "uv_size": [6, 5]}, - "down": {"uv": [0, 64], "uv_size": [5, -5]} - } - }, - { - "origin": [-7, 1, -3], - "size": [2, 1, 1], - "uv": { - "north": {"uv": [32, 58], "uv_size": [5, 5]}, - "east": {"uv": [25, 58], "uv_size": [4, 6]}, - "south": {"uv": [18, 58], "uv_size": [6, 6]}, - "west": {"uv": [13, 60], "uv_size": [4, 4]}, - "up": {"uv": [6, 60], "uv_size": [7, 4]}, - "down": {"uv": [0, 64], "uv_size": [6, -4]} - } - }, - { - "origin": [-8, 3, 0], - "size": [1, 2, 2], - "uv": { - "north": {"uv": [48, 58], "uv_size": [4, 6]}, - "east": {"uv": [25, 57], "uv_size": [5, 7]}, - "south": {"uv": [18, 57], "uv_size": [5, 7]}, - "west": {"uv": [11, 59], "uv_size": [5, 5]}, - "up": {"uv": [5, 59], "uv_size": [6, 5]}, - "down": {"uv": [0, 64], "uv_size": [5, -5]} - } - }, - { - "origin": [-7, 3, 1], - "size": [1, 2, 1], - "uv": { - "north": {"uv": [30, 57], "uv_size": [4, 6]}, - "east": {"uv": [23, 57], "uv_size": [4, 7]}, - "south": {"uv": [17, 57], "uv_size": [5, 7]}, - "west": {"uv": [11, 60], "uv_size": [4, 4]}, - "up": {"uv": [5, 60], "uv_size": [6, 4]}, - "down": {"uv": [0, 64], "uv_size": [5, -4]} - } - }, - { - "origin": [-7, 3, -1], - "size": [2, 2, 2], - "uv": { - "north": {"uv": [34, 57], "uv_size": [5, 6]}, - "east": {"uv": [26, 57], "uv_size": [5, 7]}, - "south": {"uv": [19, 57], "uv_size": [6, 7]}, - "west": {"uv": [13, 59], "uv_size": [5, 5]}, - "up": {"uv": [6, 59], "uv_size": [7, 5]}, - "down": {"uv": [0, 64], "uv_size": [6, -5]} - } - }, - { - "origin": [-9, 2, -2], - "size": [2, 2, 2], - "uv": { - "north": {"uv": [33, 57], "uv_size": [5, 6]}, - "east": {"uv": [25, 57], "uv_size": [5, 7]}, - "south": {"uv": [18, 57], "uv_size": [6, 7]}, - "west": {"uv": [12, 59], "uv_size": [5, 5]}, - "up": {"uv": [6, 59], "uv_size": [7, 5]}, - "down": {"uv": [0, 64], "uv_size": [6, -5]} - } - }, - { - "origin": [-7, 2, -3], - "size": [1, 1, 2], - "uv": { - "north": {"uv": [29, 56], "uv_size": [4, 5]}, - "east": {"uv": [21, 58], "uv_size": [5, 6]}, - "south": {"uv": [13, 58], "uv_size": [5, 6]}, - "west": {"uv": [3, 59], "uv_size": [5, 5]}, - "up": {"uv": [5, 59], "uv_size": [6, 5]}, - "down": {"uv": [0, 64], "uv_size": [5, -5]} - } - }, - { - "origin": [-8, 1, -6], - "size": [1, 1, 2], - "uv": { - "north": {"uv": [34, 56], "uv_size": [4, 5]}, - "east": {"uv": [25, 58], "uv_size": [5, 6]}, - "south": {"uv": [19, 58], "uv_size": [5, 6]}, - "west": {"uv": [12, 59], "uv_size": [5, 5]}, - "up": {"uv": [5, 59], "uv_size": [6, 5]}, - "down": {"uv": [0, 64], "uv_size": [5, -5]} - } - }, - { - "origin": [-8, 1, -4], - "size": [1, 2, 2], - "uv": { - "north": {"uv": [42, 57], "uv_size": [4, 6]}, - "east": {"uv": [24, 57], "uv_size": [5, 7]}, - "south": {"uv": [17, 57], "uv_size": [5, 7]}, - "west": {"uv": [11, 59], "uv_size": [5, 5]}, - "up": {"uv": [5, 59], "uv_size": [6, 5]}, - "down": {"uv": [0, 64], "uv_size": [5, -5]} - } - }, - { - "origin": [-8, -2, -8], - "size": [1, 1, 2], - "uv": { - "north": {"uv": [48, 57], "uv_size": [4, 5]}, - "east": {"uv": [24, 58], "uv_size": [5, 6]}, - "south": {"uv": [16, 58], "uv_size": [5, 6]}, - "west": {"uv": [10, 60], "uv_size": [5, 4]}, - "up": {"uv": [5, 59], "uv_size": [6, 5]}, - "down": {"uv": [0, 64], "uv_size": [5, -5]} - } - }, - { - "origin": [-7, 0, -5], - "size": [2, 2, 2], - "uv": { - "north": {"uv": [46, 58], "uv_size": [5, 4]}, - "east": {"uv": [30, 61], "uv_size": [5, 3]}, - "south": {"uv": [23, 58], "uv_size": [6, 6]}, - "west": {"uv": [15, 60], "uv_size": [5, 4]}, - "up": {"uv": [6, 58], "uv_size": [7, 6]}, - "down": {"uv": [0, 64], "uv_size": [6, -6]} - } - }, - { - "origin": [-8, 0, -7], - "size": [2, 1, 2], - "uv": { - "north": {"uv": [42, 56], "uv_size": [5, 5]}, - "east": {"uv": [26, 58], "uv_size": [5, 6]}, - "south": {"uv": [19, 58], "uv_size": [6, 6]}, - "west": {"uv": [13, 60], "uv_size": [5, 4]}, - "up": {"uv": [6, 59], "uv_size": [7, 5]}, - "down": {"uv": [0, 64], "uv_size": [6, -5]} - } - }, - { - "origin": [-7, -1, -7], - "size": [1, 1, 2], - "uv": { - "north": {"uv": [54, 59], "uv_size": [4, 5]}, - "east": {"uv": [23, 58], "uv_size": [5, 6]}, - "south": {"uv": [17, 58], "uv_size": [5, 6]}, - "west": {"uv": [10, 60], "uv_size": [5, 4]}, - "up": {"uv": [5, 59], "uv_size": [6, 5]}, - "down": {"uv": [0, 64], "uv_size": [5, -5]} - } - }, - { - "origin": [-8, -1, -8], - "size": [1, 1, 2], - "uv": { - "north": {"uv": [54, 58], "uv_size": [4, 5]}, - "east": {"uv": [21, 58], "uv_size": [5, 6]}, - "south": {"uv": [15, 58], "uv_size": [5, 6]}, - "west": {"uv": [9, 60], "uv_size": [5, 4]}, - "up": {"uv": [5, 59], "uv_size": [6, 5]}, - "down": {"uv": [0, 64], "uv_size": [5, -5]} - } - }, - { - "origin": [-9, -2, -8], - "size": [1, 2, 2], - "uv": { - "north": {"uv": [26, 58], "uv_size": [4, 6]}, - "east": {"uv": [31, 57], "uv_size": [5, 7]}, - "south": {"uv": [17, 57], "uv_size": [5, 7]}, - "west": {"uv": [12, 59], "uv_size": [5, 5]}, - "up": {"uv": [5, 59], "uv_size": [6, 5]}, - "down": {"uv": [0, 64], "uv_size": [5, -5]} - } - } - ] - }, - { - "name": "body", - "pivot": [0, 0, 0], - "cubes": [ - { - "origin": [-4, 3, 6], - "size": [7, 4, 1], - "uv": { - "north": {"uv": [3, 6], "uv_size": [7, 4]}, - "east": {"uv": [7, 0], "uv_size": [3, 7]}, - "south": {"uv": [14, 0], "uv_size": [7, 4]}, - "west": {"uv": [24, 0], "uv_size": [3, 10]}, - "up": {"uv": [11, 6], "uv_size": [12, 4]}, - "down": {"uv": [41, 4], "uv_size": [7, -4]} - } - }, - { - "origin": [-5, 1.75, -2], - "size": [9, 6, 8], - "uv": { - "north": {"uv": [8, 8], "uv_size": [9, 6]}, - "east": {"uv": [0, 8], "uv_size": [8, 6]}, - "south": {"uv": [25, 8], "uv_size": [9, 6]}, - "west": {"uv": [17, 8], "uv_size": [8, 6]}, - "up": {"uv": [8, 0], "uv_size": [9, 8]}, - "down": {"uv": [17, 8], "uv_size": [9, -8]} - } - }, - { - "origin": [-4, 2, -3], - "size": [7, 4, 1], - "uv": { - "north": {"uv": [10, 0], "uv_size": [10, 8]}, - "east": {"uv": [27, 4], "uv_size": [2, 11]}, - "south": {"uv": [0, 0], "uv_size": [11, 3]}, - "west": {"uv": [22, 2], "uv_size": [3, 8]}, - "up": {"uv": [18, 0], "uv_size": [7, 2]}, - "down": {"uv": [29, 2], "uv_size": [7, -2]} - } - } - ] - }, - { - "name": "feet", - "pivot": [0, 0, 0], - "cubes": [ - {"origin": [-5, 1, -1.9], "size": [3, 1, 3], "uv": [0, 16]}, - {"origin": [-5, 1, 3], "size": [3, 1, 3], "uv": [0, 16]}, - {"origin": [1, 1, -1.9], "size": [3, 1, 3], "uv": [0, 16]}, - {"origin": [1, 1, 3.1], "size": [3, 1, 3], "uv": [0, 16]} - ] - }, - { - "name": "head", - "pivot": [0, 0, 0], - "cubes": [ - {"origin": [2, 7, -1], "size": [4, 5, 6], "uv": [44, 5]}, - {"origin": [6, 7, 0], "size": [1, 3, 4], "uv": [54, 0]}, - {"origin": [7, 8, 1], "size": [1, 1, 2], "uv": [42, 5]}, - {"origin": [1, 8, 0], "size": [1, 3, 4], "uv": [33, 0]} - ] - }, - { - "name": "ears", - "pivot": [0, 0, 0], - "cubes": [ - {"origin": [3, 11, -2], "size": [1, 2, 2], "uv": [13, 16]}, - {"origin": [3, 11, 4], "size": [1, 2, 2], "uv": [12, 16]} - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/otemod/lang/en_us.json b/src/main/resources/assets/otemod/lang/en_us.json index bcb62c4..953b267 100644 --- a/src/main/resources/assets/otemod/lang/en_us.json +++ b/src/main/resources/assets/otemod/lang/en_us.json @@ -1,8 +1,8 @@ { "key.otemod.open_vault": "Opens Vault 0", - "key.category.otemod": "Only The Essentials", + "key.category.otemod": "Thresholds", - "itemGroup.tabs.otemod": "OTEMod", + "itemGroup.tabs.otemod": "Thresholds", "item.minecraft.splash_potion.effect.flight": "Splash Potion of Flight", "item.minecraft.lingering_potion.effect.flight": "Lingering Potion of Flight", diff --git a/src/main/resources/assets/otemod/textures/entity/possum_texture.png b/src/main/resources/assets/otemod/textures/entity/possum_texture.png deleted file mode 100644 index a47ed29cf2e7e63164405ba7f4b85484c654fc85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4438 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