generated from Slimefun/Addon-Template
-
Notifications
You must be signed in to change notification settings - Fork 39
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
✨ feat: Added Gastronomicon integration.
PicnicBasket is now whitelist based instead of hobjawed together. SeedPlucker can not pick specific Gastronomicon seeds (if installed). CulinaryGenerator can now use Gastronomicon foods (if installed). GrowthChamber, and GrowthChamberMK2 can now produce the new tree types (Mangrove and Cherry).
- Loading branch information
1 parent
e11fa59
commit 91eb847
Showing
10 changed files
with
425 additions
and
329 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
204 changes: 131 additions & 73 deletions
204
src/main/java/me/profelements/dynatech/items/backpacks/PicnicBasket.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,73 +1,131 @@ | ||
package me.profelements.dynatech.items.backpacks; | ||
|
||
import io.github.thebusybiscuit.exoticgarden.items.CustomFood; | ||
import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup; | ||
import io.github.thebusybiscuit.slimefun4.api.items.ItemSetting; | ||
import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem; | ||
import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; | ||
import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType; | ||
import io.github.thebusybiscuit.slimefun4.implementation.items.backpacks.SlimefunBackpack; | ||
import me.profelements.dynatech.DynaTech; | ||
import org.bukkit.Material; | ||
import org.bukkit.inventory.ItemStack; | ||
|
||
import javax.annotation.Nonnull; | ||
import javax.annotation.Nullable; | ||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
public class PicnicBasket extends SlimefunBackpack { | ||
|
||
private final List<Material> defaultBlacklist = new ArrayList<>(); | ||
|
||
private final ItemSetting<List<String>> blacklistedMaterials = new ItemSetting<>(this, "blacklisted-materials", ToStringList(getDefaultBlacklist())); | ||
|
||
public PicnicBasket(int size, ItemGroup itemGroup, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { | ||
super(size, itemGroup, item, recipeType, recipe); | ||
|
||
/*Maybe use Material.getMaterial() and send a set of strings*/ | ||
|
||
addItemSetting(blacklistedMaterials); | ||
} | ||
|
||
@Override | ||
public boolean isItemAllowed(@Nonnull ItemStack item, @Nullable SlimefunItem itemAsSlimefunItem) { | ||
if (DynaTech.isExoticGardenInstalled()) { | ||
if (itemAsSlimefunItem instanceof CustomFood) { | ||
return true; | ||
} else { | ||
return item.getType().isEdible() && !blacklistedMaterials.getValue().contains(item.getType().toString()); | ||
} | ||
} | ||
return item.getType().isEdible() && !blacklistedMaterials.getValue().contains(item.getType().toString()); | ||
} | ||
|
||
private List<Material> getDefaultBlacklist() { | ||
defaultBlacklist.add(Material.PUFFERFISH); | ||
defaultBlacklist.add(Material.POISONOUS_POTATO); | ||
defaultBlacklist.add(Material.SPIDER_EYE); | ||
defaultBlacklist.add(Material.CHORUS_FRUIT); | ||
defaultBlacklist.add(Material.ENCHANTED_GOLDEN_APPLE); | ||
defaultBlacklist.add(Material.GOLDEN_APPLE); | ||
defaultBlacklist.add(Material.ROTTEN_FLESH); | ||
|
||
//Returns Stuff, maybe will figure this out later. | ||
defaultBlacklist.add(Material.SUSPICIOUS_STEW); | ||
defaultBlacklist.add(Material.MUSHROOM_STEW); | ||
defaultBlacklist.add(Material.RABBIT_STEW); | ||
defaultBlacklist.add(Material.BEETROOT_SOUP); | ||
defaultBlacklist.add(Material.HONEY_BOTTLE); | ||
|
||
return defaultBlacklist; | ||
} | ||
|
||
private List<String> ToStringList(List<Material> mats) { | ||
List<String> materials = new ArrayList<>(); | ||
|
||
for (Material mat : mats) { | ||
materials.add(mat.toString()); | ||
} | ||
|
||
return materials; | ||
} | ||
} | ||
package me.profelements.dynatech.items.backpacks; | ||
|
||
import io.github.bakedlibs.dough.collections.Pair; | ||
import io.github.thebusybiscuit.exoticgarden.items.CustomFood; | ||
import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup; | ||
import io.github.thebusybiscuit.slimefun4.api.items.ItemSetting; | ||
import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem; | ||
import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; | ||
import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType; | ||
import io.github.thebusybiscuit.slimefun4.implementation.items.backpacks.SlimefunBackpack; | ||
import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils; | ||
import me.profelements.dynatech.DynaTech; | ||
import org.bukkit.Material; | ||
import org.bukkit.inventory.ItemStack; | ||
|
||
import javax.annotation.Nonnull; | ||
import javax.annotation.Nullable; | ||
import java.util.ArrayList; | ||
import java.util.HashMap; | ||
import java.util.List; | ||
import java.util.Map; | ||
|
||
public class PicnicBasket extends SlimefunBackpack { | ||
|
||
public static Map<ItemStack, Pair<Integer, Float>> foods = new HashMap<>(); | ||
|
||
private final List<Material> defaultBlacklist = new ArrayList<>(); | ||
|
||
private final ItemSetting<List<String>> blacklistedMaterials = new ItemSetting<>(this, "blacklisted-materials", ToStringList(getDefaultBlacklist())); | ||
|
||
public PicnicBasket(int size, ItemGroup itemGroup, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { | ||
super(size, itemGroup, item, recipeType, recipe); | ||
|
||
/*Maybe use Material.getMaterial() and send a set of strings*/ | ||
|
||
addItemSetting(blacklistedMaterials); | ||
} | ||
|
||
|
||
@Override | ||
public void postRegister() { | ||
registerDefaultFoods(); | ||
} | ||
|
||
|
||
@Override | ||
public boolean isItemAllowed(@Nonnull ItemStack item, @Nullable SlimefunItem itemAsSlimefunItem) { | ||
for (ItemStack stack : getFoods().keySet()) { | ||
if (SlimefunUtils.isItemSimilar(stack, item, false, false)) { | ||
return true; | ||
} else { | ||
continue; | ||
} | ||
} | ||
return false; | ||
} | ||
|
||
private List<Material> getDefaultBlacklist() { | ||
defaultBlacklist.add(Material.PUFFERFISH); | ||
defaultBlacklist.add(Material.POISONOUS_POTATO); | ||
defaultBlacklist.add(Material.SPIDER_EYE); | ||
defaultBlacklist.add(Material.CHORUS_FRUIT); | ||
defaultBlacklist.add(Material.ENCHANTED_GOLDEN_APPLE); | ||
defaultBlacklist.add(Material.GOLDEN_APPLE); | ||
defaultBlacklist.add(Material.ROTTEN_FLESH); | ||
|
||
//Returns Stuff, maybe will figure this out later. | ||
defaultBlacklist.add(Material.SUSPICIOUS_STEW); | ||
defaultBlacklist.add(Material.MUSHROOM_STEW); | ||
defaultBlacklist.add(Material.RABBIT_STEW); | ||
defaultBlacklist.add(Material.BEETROOT_SOUP); | ||
defaultBlacklist.add(Material.HONEY_BOTTLE); | ||
|
||
return defaultBlacklist; | ||
} | ||
|
||
private List<String> ToStringList(List<Material> mats) { | ||
List<String> materials = new ArrayList<>(); | ||
|
||
for (Material mat : mats) { | ||
materials.add(mat.toString()); | ||
} | ||
|
||
return materials; | ||
} | ||
|
||
@Nonnull | ||
public static Map<ItemStack, Pair<Integer, Float>> getFoods() { | ||
return foods; | ||
} | ||
|
||
private static void registerDefaultFoods() { | ||
registerFood(new ItemStack(Material.APPLE), new Pair<Integer, Float>(4, 3F)); | ||
registerFood(new ItemStack(Material.MELON_SLICE), new Pair<Integer, Float>(2, 1F)); | ||
registerFood(new ItemStack(Material.SWEET_BERRIES), new Pair<Integer, Float>(2, 1F)); | ||
registerFood(new ItemStack(Material.GLOW_BERRIES), new Pair<Integer, Float>(2, 1F)); | ||
registerFood(new ItemStack(Material.CARROT), new Pair<>(3, 3F)); | ||
registerFood(new ItemStack(Material.GOLDEN_CARROT), new Pair<>(6, 15F)); | ||
registerFood(new ItemStack(Material.POTATO), new Pair<>(1, 1F)); | ||
registerFood(new ItemStack(Material.BAKED_POTATO), new Pair<>(5, 6F)); | ||
registerFood(new ItemStack(Material.BEETROOT), new Pair<>(1, 1F)); | ||
registerFood(new ItemStack(Material.DRIED_KELP), new Pair<>(1, 1F)); | ||
registerFood(new ItemStack(Material.BEEF), new Pair<>(3, 1F)); | ||
registerFood(new ItemStack(Material.COOKED_BEEF), new Pair<>(8, 13F)); | ||
registerFood(new ItemStack(Material.PORKCHOP), new Pair<>(3, 1F)); | ||
registerFood(new ItemStack(Material.COOKED_PORKCHOP), new Pair<>(8, 13F)); | ||
registerFood(new ItemStack(Material.MUTTON), new Pair<>(2, 1F)); | ||
registerFood(new ItemStack(Material.COOKED_MUTTON), new Pair<>(6, 9F)); | ||
registerFood(new ItemStack(Material.CHICKEN), new Pair<>(1, 1F)); | ||
registerFood(new ItemStack(Material.COOKED_CHICKEN), new Pair<>(6, 7F)); | ||
registerFood(new ItemStack(Material.RABBIT), new Pair<>(3, 1F)); | ||
registerFood(new ItemStack(Material.COOKED_RABBIT), new Pair<>(5, 6F)); | ||
registerFood(new ItemStack(Material.COD), new Pair<>(2, 1F)); | ||
registerFood(new ItemStack(Material.COOKED_COD), new Pair<>(5, 6F)); | ||
registerFood(new ItemStack(Material.SALMON), new Pair<>(2, 1F)); | ||
registerFood(new ItemStack(Material.COOKED_SALMON), new Pair<>(6, 9F)); | ||
registerFood(new ItemStack(Material.TROPICAL_FISH), new Pair<>(1, 1F)); | ||
registerFood(new ItemStack(Material.BREAD), new Pair<>(5, 6F)); | ||
registerFood(new ItemStack(Material.COOKIE), new Pair<>(2, 1F)); | ||
registerFood(new ItemStack(Material.CAKE), new Pair<>(14, 14F)); | ||
registerFood(new ItemStack(Material.PUMPKIN_PIE), new Pair<>(8, 5F)); | ||
} | ||
|
||
|
||
public static void registerFood(ItemStack item, Pair<Integer, Float> pair) { | ||
getFoods().put(item, pair); | ||
} | ||
|
||
|
||
|
||
} |
Oops, something went wrong.