diff options
| author | shedaniel <daniel@shedaniel.me> | 2020-04-18 15:48:19 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2020-04-18 15:48:19 +0800 |
| commit | 8e617f5a6c92a21be270ec190261d979deac965f (patch) | |
| tree | db564a02bd9a4d60cf5362d0ae239924ccd5d9c6 | |
| parent | 8fc595cace9efb981009b7a9f1a3be1809895164 (diff) | |
| download | RoughlyEnoughItems-8e617f5a6c92a21be270ec190261d979deac965f.tar.gz RoughlyEnoughItems-8e617f5a6c92a21be270ec190261d979deac965f.tar.bz2 RoughlyEnoughItems-8e617f5a6c92a21be270ec190261d979deac965f.zip | |
Added FluidSupportProvider
Signed-off-by: shedaniel <daniel@shedaniel.me>
| -rw-r--r-- | .github/workflows/curseforge.yml | 1 | ||||
| -rwxr-xr-x | build.gradle | 15 | ||||
| -rw-r--r-- | gradle.properties | 2 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/api/EntryStack.java | 46 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/api/fluid/FluidSupportProvider.java | 34 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java | 2 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java | 2 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/impl/EmptyEntryStack.java | 7 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java | 24 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/impl/FluidSupportProviderImpl.java | 49 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java | 19 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java | 2 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/impl/RenderingEntry.java | 10 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java | 20 | ||||
| -rw-r--r-- | src/main/resources/icon.png | bin | 220223 -> 47308 bytes |
15 files changed, 196 insertions, 37 deletions
diff --git a/.github/workflows/curseforge.yml b/.github/workflows/curseforge.yml index d989c9780..c8721ec76 100644 --- a/.github/workflows/curseforge.yml +++ b/.github/workflows/curseforge.yml @@ -19,3 +19,4 @@ jobs: run: ./gradlew clean build releaseOnCf --refresh-dependencies --stacktrace env: danielshe_curse_api_key: ${{ secrets.CF_API_KEY }} + BRANCH_NAME: ${{ github.ref }}
\ No newline at end of file diff --git a/build.gradle b/build.gradle index 06dea5c70..13b572b6e 100755 --- a/build.gradle +++ b/build.gradle @@ -114,14 +114,23 @@ task remapMavenJar(type: RemapJarTask, dependsOn: jar) { def releaseChangelog = "No changelog" -/* Thank you modmenu */ +/* Thank you modmenu & fablabs */ task releaseOnCf { def df = new SimpleDateFormat("yyyy-MM-dd HH:mm") df.setTimeZone(TimeZone.getTimeZone("UTC")) - def currentBranch = "git rev-parse --abbrev-ref HEAD".execute().in.readLines().join('\n') + def currentBranch + if (System.env.BRANCH_NAME) { + branch = System.env.BRANCH_NAME + branch = branch.substring(branch.lastIndexOf("/")+1) + } else { + branch = "git rev-parse --abbrev-ref HEAD".execute().in.text.trim() + } + if (currentBranch == "HEAD") { + branch = "git rev-parse --short HEAD".execute().in.text.trim() + } def time = df.format(new Date()) def changes = new StringBuilder() - changes << "<h2>REI v$project.version for $project.supported_version</h2>Updated at <b>$time</b>.<br><a href=\"https://www.github.com/shedaniel/RoughlyEnoughItems/commits/$currentBranch\">Click here for changelog</a>" + changes << "<h2>REI v$project.version for $project.supported_version</h2>Updated at <b>$time</b>.<br><a href=\"https://www.github.com/shedaniel/RoughlyEnoughItems/commits/$branch\">Click here for changelog</a>" def proc = "git log --max-count=200 --pretty=format:\"%s\"".execute() proc.in.eachLine { line -> def processedLine = line.toString() diff --git a/gradle.properties b/gradle.properties index 2f38961d9..85605cb38 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -mod_version=4.1.10-unstable +mod_version=4.1.12-unstable supported_version=20w16a minecraft_version=20w16a yarn_version=20w16a+build.1 diff --git a/src/main/java/me/shedaniel/rei/api/EntryStack.java b/src/main/java/me/shedaniel/rei/api/EntryStack.java index 46c1dd5e0..23c232ee1 100644 --- a/src/main/java/me/shedaniel/rei/api/EntryStack.java +++ b/src/main/java/me/shedaniel/rei/api/EntryStack.java @@ -27,19 +27,20 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; +import me.shedaniel.rei.api.fluid.FluidSupportProvider; import me.shedaniel.rei.api.widgets.Tooltip; import me.shedaniel.rei.impl.EmptyEntryStack; import me.shedaniel.rei.impl.FluidEntryStack; import me.shedaniel.rei.impl.ItemEntryStack; import net.minecraft.client.resource.language.I18n; import net.minecraft.fluid.Fluid; -import net.minecraft.item.BucketItem; import net.minecraft.item.Item; import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.StringNbtReader; import net.minecraft.util.Identifier; +import net.minecraft.util.math.MathHelper; import net.minecraft.util.registry.Registry; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -65,6 +66,10 @@ public interface EntryStack { return new FluidEntryStack(fluid, amount); } + static EntryStack create(Fluid fluid, double amount) { + return new FluidEntryStack(fluid, amount); + } + static EntryStack create(ItemStack stack) { return new ItemEntryStack(stack); } @@ -124,32 +129,41 @@ public interface EntryStack { } } + @Deprecated + @ApiStatus.ScheduledForRemoval static EntryStack copyFluidToBucket(EntryStack stack) { - if (stack.getType() != Type.FLUID) - throw new IllegalArgumentException("EntryStack must be fluid!"); - Fluid fluid = stack.getFluid(); - Item item = fluid.getBucketItem(); - if (item == null) - return EntryStack.empty(); - return EntryStack.create(item); + return copyFluidToItem(stack); + } + + static EntryStack copyFluidToItem(EntryStack stack) { + return FluidSupportProvider.INSTANCE.fluidToItem(stack); } + @Deprecated + @ApiStatus.ScheduledForRemoval static EntryStack copyBucketToFluid(EntryStack stack) { - if (stack.getType() != Type.ITEM) - throw new IllegalArgumentException("EntryStack must be item!"); - Item item = stack.getItem(); - if (item instanceof BucketItem) - return EntryStack.create(((BucketItem) item).fluid, 1000); - return EntryStack.empty(); + return copyItemToFluid(stack); + } + + static EntryStack copyItemToFluid(EntryStack stack) { + return FluidSupportProvider.INSTANCE.itemToFluid(stack); } Optional<Identifier> getIdentifier(); EntryStack.Type getType(); - int getAmount(); + default int getAmount() { + return MathHelper.floor(getFloatingAmount()); + } + + double getFloatingAmount(); + + default void setAmount(int amount) { + setFloatingAmount(amount); + } - void setAmount(int amount); + void setFloatingAmount(double amount); boolean isEmpty(); diff --git a/src/main/java/me/shedaniel/rei/api/fluid/FluidSupportProvider.java b/src/main/java/me/shedaniel/rei/api/fluid/FluidSupportProvider.java new file mode 100644 index 000000000..a8636d35e --- /dev/null +++ b/src/main/java/me/shedaniel/rei/api/fluid/FluidSupportProvider.java @@ -0,0 +1,34 @@ +package me.shedaniel.rei.api.fluid; + +import me.shedaniel.rei.api.EntryStack; +import me.shedaniel.rei.impl.FluidSupportProviderImpl; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +/** + * Experimental library, scheduled to change if needed. + */ +@ApiStatus.Experimental +public interface FluidSupportProvider { + FluidSupportProvider INSTANCE = new FluidSupportProviderImpl(); + + void registerFluidProvider(@NotNull FluidProvider provider); + + @NotNull + EntryStack fluidToItem(@NotNull EntryStack fluidStack); + + @NotNull + EntryStack itemToFluid(@NotNull EntryStack itemStack); + + interface FluidProvider { + @NotNull + default EntryStack fluidToItem(@NotNull EntryStack fluidStack) { + return EntryStack.empty(); + } + + @NotNull + default EntryStack itemToFluid(@NotNull EntryStack itemStack) { + return EntryStack.empty(); + } + } +} diff --git a/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java index 444fdc831..1d75bae27 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java @@ -725,7 +725,7 @@ public class EntryListWidget extends WidgetWithBounds { EntryStack entry = getCurrentEntry().copy(); if (!entry.isEmpty()) { if (entry.getType() == EntryStack.Type.FLUID) - entry = EntryStack.copyFluidToBucket(entry); + entry = EntryStack.copyFluidToItem(entry); if (entry.getType() == EntryStack.Type.ITEM) entry.setAmount(button != 1 && !Screen.hasShiftDown() ? 1 : entry.getItemStack().getMaxCount()); ClientHelper.getInstance().tryCheatingEntry(entry); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java index ffc9c969e..b9693c840 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java @@ -296,7 +296,7 @@ public class FavoritesListWidget extends WidgetWithBounds { EntryStack entry = getCurrentEntry().copy(); if (!entry.isEmpty()) { if (entry.getType() == EntryStack.Type.FLUID) - entry = EntryStack.copyFluidToBucket(entry); + entry = EntryStack.copyFluidToItem(entry); if (entry.getType() == EntryStack.Type.ITEM) entry.setAmount(button != 1 && !Screen.hasShiftDown() ? 1 : entry.getItemStack().getMaxCount()); ClientHelper.getInstance().tryCheatingEntry(entry); diff --git a/src/main/java/me/shedaniel/rei/impl/EmptyEntryStack.java b/src/main/java/me/shedaniel/rei/impl/EmptyEntryStack.java index d19d2511a..f63be6320 100644 --- a/src/main/java/me/shedaniel/rei/impl/EmptyEntryStack.java +++ b/src/main/java/me/shedaniel/rei/impl/EmptyEntryStack.java @@ -57,7 +57,12 @@ public class EmptyEntryStack implements EntryStack { } @Override - public void setAmount(int amount) { + public double getFloatingAmount() { + return 0; + } + + @Override + public void setFloatingAmount(double amount) { } diff --git a/src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java b/src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java index 61b604bd2..02c524b75 100644 --- a/src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java +++ b/src/main/java/me/shedaniel/rei/impl/FluidEntryStack.java @@ -52,15 +52,19 @@ import java.util.*; @ApiStatus.Internal public class FluidEntryStack extends AbstractEntryStack { private static final Map<Fluid, Pair<Sprite, Integer>> FLUID_SPRITE_CACHE = new HashMap<>(); - private static final int EMPTY_AMOUNT = -1319182373; + private static final double EMPTY_AMOUNT = -1319182373; private Fluid fluid; - private int amount; + private double amount; public FluidEntryStack(Fluid fluid) { this(fluid, EMPTY_AMOUNT); } public FluidEntryStack(Fluid fluid, int amount) { + this(fluid, (double) amount); + } + + public FluidEntryStack(Fluid fluid, double amount) { this.fluid = fluid; this.amount = amount; } @@ -93,13 +97,13 @@ public class FluidEntryStack extends AbstractEntryStack { } @Override - public int getAmount() { + public double getFloatingAmount() { return amount; } @Override - public void setAmount(int amount) { - this.amount = amount == EMPTY_AMOUNT ? EMPTY_AMOUNT : Math.max(amount, 0); + public void setFloatingAmount(double amount) { + this.amount = amount <= 0 ? EMPTY_AMOUNT : amount; if (isEmpty()) { fluid = Fluids.EMPTY; } @@ -127,35 +131,35 @@ public class FluidEntryStack extends AbstractEntryStack { @Override public boolean equalsIgnoreTagsAndAmount(EntryStack stack) { if (stack.getType() != Type.FLUID) - return false; + return EntryStack.copyFluidToItem(this).equalsIgnoreTagsAndAmount(stack); return fluid == stack.getFluid(); } @Override public boolean equalsIgnoreTags(EntryStack stack) { if (stack.getType() != Type.FLUID) - return false; + return EntryStack.copyFluidToItem(this).equalsIgnoreTags(stack); return fluid == stack.getFluid() && amount == stack.getAmount(); } @Override public boolean equalsIgnoreAmount(EntryStack stack) { if (stack.getType() != Type.FLUID) - return false; + return EntryStack.copyFluidToItem(this).equalsIgnoreAmount(stack); return fluid == stack.getFluid(); } @Override public boolean equalsAll(EntryStack stack) { if (stack.getType() != Type.FLUID) - return false; + return EntryStack.copyFluidToItem(this).equalsAll(stack); return fluid == stack.getFluid() && amount == stack.getAmount(); } @Override public int hashOfAll() { int result = hashIgnoreAmountAndTags(); - result = 31 * result + amount; + result = 31 * result + Double.hashCode(amount); return result; } diff --git a/src/main/java/me/shedaniel/rei/impl/FluidSupportProviderImpl.java b/src/main/java/me/shedaniel/rei/impl/FluidSupportProviderImpl.java new file mode 100644 index 000000000..dede539c0 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/impl/FluidSupportProviderImpl.java @@ -0,0 +1,49 @@ +package me.shedaniel.rei.impl; + +import com.google.common.collect.Lists; +import me.shedaniel.rei.api.EntryStack; +import me.shedaniel.rei.api.fluid.FluidSupportProvider; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; + +import java.util.List; +import java.util.Objects; + +@ApiStatus.Experimental +@ApiStatus.Internal +public class FluidSupportProviderImpl implements FluidSupportProvider { + private final List<FluidProvider> providers = Lists.newArrayList(); + + public void reset() { + providers.clear(); + } + + @Override + public void registerFluidProvider(@NotNull FluidProvider provider) { + providers.add(Objects.requireNonNull(provider, "Registered provider is null!")); + } + + @Override + public @NotNull EntryStack fluidToItem(@NotNull EntryStack fluidStack) { + if (fluidStack.isEmpty()) return EntryStack.empty(); + if (fluidStack.getType() != EntryStack.Type.FLUID) + throw new IllegalArgumentException("EntryStack must be fluid!"); + for (FluidProvider provider : providers) { + EntryStack stack = Objects.requireNonNull(provider.fluidToItem(fluidStack), provider.getClass() + " is creating null objects for fluidToItem!"); + if (!stack.isEmpty()) return stack; + } + return EntryStack.empty(); + } + + @Override + public @NotNull EntryStack itemToFluid(@NotNull EntryStack itemStack) { + if (itemStack.isEmpty()) return EntryStack.empty(); + if (itemStack.getType() != EntryStack.Type.ITEM) + throw new IllegalArgumentException("EntryStack must be item!"); + for (FluidProvider provider : providers) { + EntryStack stack = Objects.requireNonNull(provider.itemToFluid(itemStack), provider.getClass() + " is creating null objects for itemToFluid!"); + if (!stack.isEmpty()) return stack; + } + return EntryStack.empty(); + } +} diff --git a/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java b/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java index cb65b0396..cceea85a6 100644 --- a/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java +++ b/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java @@ -40,6 +40,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.util.Identifier; +import net.minecraft.util.math.MathHelper; import net.minecraft.util.registry.Registry; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -77,11 +78,21 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt } @Override + public double getFloatingAmount() { + return itemStack.getCount(); + } + + @Override public void setAmount(int amount) { itemStack.setCount(amount); } @Override + public void setFloatingAmount(double amount) { + itemStack.setCount(MathHelper.floor(amount)); + } + + @Override public boolean isEmpty() { return itemStack.isEmpty(); } @@ -103,14 +114,14 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt @Override public boolean equalsIgnoreTagsAndAmount(EntryStack stack) { if (stack.getType() != Type.ITEM) - return false; + return EntryStack.copyItemToFluid(this).equalsIgnoreTagsAndAmount(stack); return itemStack.getItem() == stack.getItem(); } @Override public boolean equalsAll(EntryStack stack) { if (stack.getType() != Type.ITEM) - return false; + return EntryStack.copyItemToFluid(this).equalsAll(stack); if (itemStack.getItem() != stack.getItem() || getAmount() != stack.getAmount()) return false; return ItemStack.areTagsEqual(itemStack, stack.getItemStack()); @@ -119,7 +130,7 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt @Override public boolean equalsIgnoreAmount(EntryStack stack) { if (stack.getType() != Type.ITEM) - return false; + return EntryStack.copyItemToFluid(this).equalsIgnoreAmount(stack); if (itemStack.getItem() != stack.getItem()) return false; ItemStack otherStack = stack.getItemStack(); @@ -173,7 +184,7 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt @Override public boolean equalsIgnoreTags(EntryStack stack) { if (stack.getType() != Type.ITEM) - return false; + return EntryStack.copyItemToFluid(this).equalsIgnoreTags(stack); if (itemStack.getItem() != stack.getItem()) return false; return getAmount() == stack.getAmount(); diff --git a/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java b/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java index af7f5cfdf..1ccd768ce 100644 --- a/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java +++ b/src/main/java/me/shedaniel/rei/impl/RecipeHelperImpl.java @@ -29,6 +29,7 @@ import com.google.common.collect.Sets; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.*; +import me.shedaniel.rei.api.fluid.FluidSupportProvider; import me.shedaniel.rei.api.plugins.REIPluginV0; import me.shedaniel.rei.api.subsets.SubsetsRegistry; import me.shedaniel.rei.impl.subsets.SubsetsRegistryImpl; @@ -283,6 +284,7 @@ public class RecipeHelperImpl implements RecipeHelper { this.liveRecipeGenerators.clear(); this.autoTransferHandlers.clear(); ((SubsetsRegistryImpl) SubsetsRegistry.INSTANCE).reset(); + ((FluidSupportProviderImpl) FluidSupportProvider.INSTANCE).reset(); ((DisplayHelperImpl) DisplayHelper.getInstance()).resetData(); ((DisplayHelperImpl) DisplayHelper.getInstance()).resetCache(); BaseBoundsHandler baseBoundsHandler = new BaseBoundsHandlerImpl(); diff --git a/src/main/java/me/shedaniel/rei/impl/RenderingEntry.java b/src/main/java/me/shedaniel/rei/impl/RenderingEntry.java index c7745a218..e2c02a8e7 100644 --- a/src/main/java/me/shedaniel/rei/impl/RenderingEntry.java +++ b/src/main/java/me/shedaniel/rei/impl/RenderingEntry.java @@ -48,11 +48,21 @@ public abstract class RenderingEntry extends DrawableHelper implements EntryStac } @Override + public double getFloatingAmount() { + return 0; + } + + @Override public void setAmount(int amount) { } @Override + public void setFloatingAmount(double amount) { + + } + + @Override public boolean isEmpty() { return false; } diff --git a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java index bceaf5b23..b42283d54 100644 --- a/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java +++ b/src/main/java/me/shedaniel/rei/plugin/DefaultPlugin.java @@ -30,6 +30,7 @@ import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.*; +import me.shedaniel.rei.api.fluid.FluidSupportProvider; import me.shedaniel.rei.api.plugins.REIPluginV0; import me.shedaniel.rei.api.widgets.Panel; import me.shedaniel.rei.api.widgets.Tooltip; @@ -78,6 +79,7 @@ import net.minecraft.tag.BlockTags; import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; import net.minecraft.util.registry.Registry; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.*; @@ -386,6 +388,24 @@ public class DefaultPlugin implements REIPluginV0 { recipeHelper.registerScreenClickArea(new Rectangle(78, 32, 28, 23), FurnaceScreen.class, SMELTING); recipeHelper.registerScreenClickArea(new Rectangle(78, 32, 28, 23), SmokerScreen.class, SMOKING); recipeHelper.registerScreenClickArea(new Rectangle(78, 32, 28, 23), BlastFurnaceScreen.class, BLASTING); + FluidSupportProvider.INSTANCE.registerFluidProvider(new FluidSupportProvider.FluidProvider() { + @Override + public @NotNull EntryStack fluidToItem(@NotNull EntryStack fluidStack) { + Fluid fluid = fluidStack.getFluid(); + Item item = fluid.getBucketItem(); + if (item == null) + return EntryStack.empty(); + return EntryStack.create(item); + } + + @Override + public @NotNull EntryStack itemToFluid(@NotNull EntryStack itemStack) { + Item item = itemStack.getItem(); + if (item instanceof BucketItem) + return EntryStack.create(((BucketItem) item).fluid, 1000); + return EntryStack.empty(); + } + }); // SubsetsRegistry subsetsRegistry = SubsetsRegistry.INSTANCE; // subsetsRegistry.registerPathEntry("roughlyenoughitems:food", EntryStack.create(Items.MILK_BUCKET)); // subsetsRegistry.registerPathEntry("roughlyenoughitems:food/roughlyenoughitems:cookies", EntryStack.create(Items.COOKIE)); diff --git a/src/main/resources/icon.png b/src/main/resources/icon.png Binary files differindex b5fcfc407..bf5ad0f2c 100644 --- a/src/main/resources/icon.png +++ b/src/main/resources/icon.png |
