Silly Minecraft mod that adds Asbestos

๐Ÿง‘โ€๐Ÿ’ป Add small utilities

+127
+112
src/main/java/xyz/naomieow/asbestos/inventory/InventoryImproved.java
··· 1 + package xyz.naomieow.asbestos.inventory; 2 + 3 + import net.minecraft.entity.player.PlayerEntity; 4 + import net.minecraft.inventory.Inventories; 5 + import net.minecraft.inventory.Inventory; 6 + import net.minecraft.item.ItemStack; 7 + import net.minecraft.util.collection.DefaultedList; 8 + import xyz.naomieow.asbestos.item.ModItems; 9 + 10 + /* 11 + Originally by Tiviacz1337<br> 12 + https://github.com/Tiviacz1337/Travelers-Backpack/blob/1.20.1-fabric/src/main/java/com/tiviacz/travelersbackpack/inventory/InventoryImproved.java 13 + */ 14 + public abstract class InventoryImproved implements Inventory 15 + { 16 + protected final DefaultedList<ItemStack> stacks; 17 + 18 + public InventoryImproved(DefaultedList<ItemStack> stacks) 19 + { 20 + this.stacks = stacks; 21 + } 22 + 23 + public DefaultedList<ItemStack> getStacks() 24 + { 25 + return this.stacks; 26 + } 27 + 28 + @Override 29 + public int size() 30 + { 31 + return this.stacks.size(); 32 + } 33 + 34 + @Override 35 + public boolean isEmpty() 36 + { 37 + for(int i = 0; i < size(); i++) 38 + { 39 + if(!getStack(i).isEmpty()) 40 + { 41 + return false; 42 + } 43 + } 44 + return true; 45 + } 46 + 47 + @Override 48 + public ItemStack getStack(int slot) 49 + { 50 + return this.stacks.get(slot); 51 + } 52 + 53 + @Override 54 + public ItemStack removeStack(int slot, int amount) 55 + { 56 + ItemStack itemstack = Inventories.splitStack(this.stacks, slot, amount); 57 + 58 + if(!itemstack.isEmpty()) 59 + { 60 + this.markDirty(); 61 + } 62 + return itemstack; 63 + } 64 + 65 + @Override 66 + public ItemStack removeStack(int slot) 67 + { 68 + ItemStack itemStack = this.stacks.get(slot); 69 + if(itemStack.isEmpty()) 70 + { 71 + return ItemStack.EMPTY; 72 + } 73 + else 74 + { 75 + this.stacks.set(slot, ItemStack.EMPTY); 76 + return itemStack; 77 + } 78 + } 79 + 80 + @Override 81 + public void setStack(int slot, ItemStack stack) 82 + { 83 + this.stacks.set(slot, stack); 84 + if(!stack.isEmpty() && stack.getCount() > this.getMaxCountPerStack()) 85 + { 86 + stack.setCount(this.getMaxCountPerStack()); 87 + } 88 + 89 + this.markDirty(); 90 + } 91 + 92 + @Override 93 + public abstract void markDirty(); 94 + 95 + @Override 96 + public boolean isValid(int slot, ItemStack stack) 97 + { 98 + return !(stack.getItem() == ModItems.CANCER_METER); 99 + } 100 + 101 + @Override 102 + public boolean canPlayerUse(PlayerEntity player) 103 + { 104 + return true; 105 + } 106 + 107 + @Override 108 + public void clear() 109 + { 110 + 111 + } 112 + }
+15
src/main/java/xyz/naomieow/asbestos/screen/util/MouseUtil.java
··· 1 + package xyz.naomieow.asbestos.screen.util; 2 + 3 + public class MouseUtil { 4 + public static boolean isMouseOver(double mouseX, double mouseY, int x, int y) { 5 + return isMouseOver(mouseX, mouseY, x, y, 16); 6 + } 7 + 8 + public static boolean isMouseOver(double mouseX, double mouseY, int x, int y, int size) { 9 + return isMouseOver(mouseX, mouseY, x, y, size, size); 10 + } 11 + 12 + public static boolean isMouseOver(double mouseX, double mouseY, int x, int y, int sizeX, int sizeY) { 13 + return (mouseX >= x && mouseX <= x + sizeX) && (mouseY >= y && mouseY <= y + sizeY); 14 + } 15 + }