1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-19 19:25:48 +00:00

[CI skip] Added new recipe type translations

This commit is contained in:
TheBusyBiscuit 2020-03-10 21:44:42 +01:00
parent 242aba9352
commit eb6140c7ed
3 changed files with 69 additions and 12 deletions

View File

@ -2746,7 +2746,7 @@ public final class SlimefunItemSetup {
new ItemStack[] {null, null, null, null, SlimefunItems.BUCKET_OF_OIL, null, null, null, null})
.register(plugin);
new RadioactiveItem(Categories.RESOURCES, Radioactivity.MODERATE, (SlimefunItemStack) SlimefunItems.NETHER_ICE, new RecipeType(SlimefunItems.GEO_MINER),
new RadioactiveItem(Categories.RESOURCES, Radioactivity.MODERATE, (SlimefunItemStack) SlimefunItems.NETHER_ICE, RecipeType.GEO_MINER,
new ItemStack[] {null, null, null, null, null, null, null, null, null})
.register(plugin);
@ -3091,7 +3091,7 @@ public final class SlimefunItemSetup {
}.register(plugin);
new SlimefunItem(Categories.TECH_MISC, (SlimefunItemStack) SlimefunItems.REACTOR_COOLANT_CELL, new RecipeType(SlimefunItems.FREEZER),
new SlimefunItem(Categories.TECH_MISC, (SlimefunItemStack) SlimefunItems.REACTOR_COOLANT_CELL, RecipeType.FREEZER,
new ItemStack[] {new ItemStack(Material.BLUE_ICE), null, null, null, null, null, null, null, null})
.register(plugin);
@ -3099,11 +3099,11 @@ public final class SlimefunItemSetup {
new ItemStack[] {SlimefunItems.ENRICHED_NETHER_ICE, null, null, null, null, null, null, null, null})
.register(plugin);
new RadioactiveItem(Categories.RESOURCES, Radioactivity.HIGH, (SlimefunItemStack) SlimefunItems.NEPTUNIUM, new RecipeType(SlimefunItems.NUCLEAR_REACTOR),
new RadioactiveItem(Categories.RESOURCES, Radioactivity.HIGH, (SlimefunItemStack) SlimefunItems.NEPTUNIUM, RecipeType.NUCLEAR_REACTOR,
new ItemStack[] {SlimefunItems.URANIUM, null, null, null, null, null, null, null, null})
.register(plugin);
new RadioactiveItem(Categories.RESOURCES, Radioactivity.VERY_HIGH, (SlimefunItemStack) SlimefunItems.PLUTONIUM, new RecipeType(SlimefunItems.NUCLEAR_REACTOR),
new RadioactiveItem(Categories.RESOURCES, Radioactivity.VERY_HIGH, (SlimefunItemStack) SlimefunItems.PLUTONIUM, RecipeType.NUCLEAR_REACTOR,
new ItemStack[] {SlimefunItems.NEPTUNIUM, null, null, null, null, null, null, null, null})
.register(plugin);

View File

@ -2,13 +2,18 @@ package me.mrCookieSlime.Slimefun.Lists;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.logging.Level;
import org.bukkit.ChatColor;
import org.bukkit.Keyed;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@ -18,6 +23,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.items.altar.AltarRecipe
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunMachine;
import me.mrCookieSlime.Slimefun.api.Slimefun;
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
public class RecipeType implements Keyed {
@ -25,7 +31,6 @@ public class RecipeType implements Keyed {
public static final RecipeType MULTIBLOCK = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "multiblock"), new CustomItem(Material.BRICKS, "&bMultiBlock", "", "&a&oBuild it in the World"));
public static final RecipeType ARMOR_FORGE = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "armor_forge"), (SlimefunItemStack) SlimefunItems.ARMOR_FORGE, "", "&a&oCraft it in an Armor Forge");
public static final RecipeType GRIND_STONE = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "grind_stone"), (SlimefunItemStack) SlimefunItems.GRIND_STONE, "", "&a&oGrind it using the Grind Stone");
public static final RecipeType MOB_DROP = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "mob_drop"), new CustomItem(Material.IRON_SWORD, "&bMob Drop", "", "&a&oKill the specified Mob to obtain this Item"));
public static final RecipeType SMELTERY = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "smeltery"), (SlimefunItemStack) SlimefunItems.SMELTERY, "", "&a&oSmelt it using a Smeltery");
public static final RecipeType ORE_CRUSHER = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "ore_crusher"), (SlimefunItemStack) SlimefunItems.ORE_CRUSHER, "", "&a&oCrush it using the Ore Crusher");
public static final RecipeType GOLD_PAN = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "gold_pan"), (SlimefunItemStack) SlimefunItems.GOLD_PAN, "", "&a&oUse a Gold Pan on Gravel to obtain this Item");
@ -39,11 +44,17 @@ public class RecipeType implements Keyed {
public static final RecipeType ANCIENT_ALTAR = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "ancient_altar"), (SlimefunItemStack) SlimefunItems.ANCIENT_ALTAR, (recipe, output) -> {
AltarRecipe altarRecipe = new AltarRecipe(Arrays.asList(recipe), output);
SlimefunPlugin.getAncientAltarListener().getRecipes().add(altarRecipe);
}, "", "&dYou will need to craft this Item", "&dby performing an Ancient Altar Ritual");
});
public static final RecipeType HEATED_PRESSURE_CHAMBER = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "heated_pressure_chamber"), (SlimefunItemStack) SlimefunItems.HEATED_PRESSURE_CHAMBER, "", "&a&oCraft this Item in a", "&a&oHeated Pressure Chamber");
public static final RecipeType FOOD_FABRICATOR = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "food_fabricator"), (SlimefunItemStack) SlimefunItems.FOOD_FABRICATOR, "", "&a&oCraft this Item in a", "&a&oFood Fabricator");
public static final RecipeType FOOD_COMPOSTER = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "food_composter"), (SlimefunItemStack) SlimefunItems.FOOD_COMPOSTER, "", "&a&oCraft this Item in a", "&a&oFood Composter");
public static final RecipeType MOB_DROP = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "mob_drop"), new CustomItem(Material.IRON_SWORD, "&bMob Drop"), RecipeType::registerMobDrop, "", "&rKill the specified Mob to obtain this Item");
public static final RecipeType HEATED_PRESSURE_CHAMBER = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "heated_pressure_chamber"), (SlimefunItemStack) SlimefunItems.HEATED_PRESSURE_CHAMBER);
public static final RecipeType FOOD_FABRICATOR = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "food_fabricator"), (SlimefunItemStack) SlimefunItems.FOOD_FABRICATOR);
public static final RecipeType FOOD_COMPOSTER = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "food_composter"), (SlimefunItemStack) SlimefunItems.FOOD_COMPOSTER);
public static final RecipeType FREEZER = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "freezer"), (SlimefunItemStack) SlimefunItems.FREEZER);
public static final RecipeType GEO_MINER = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "geo_miner"), (SlimefunItemStack) SlimefunItems.GEO_MINER);
public static final RecipeType NUCLEAR_REACTOR = new RecipeType(new NamespacedKey(SlimefunPlugin.instance, "nuclear_reactor"), (SlimefunItemStack) SlimefunItems.NUCLEAR_REACTOR);
public static final RecipeType NULL = new RecipeType();
@ -74,11 +85,17 @@ public class RecipeType implements Keyed {
this(key, slimefunItem, null, lore);
}
public RecipeType(NamespacedKey key, SlimefunItemStack slimefunItem, BiConsumer<ItemStack[], ItemStack> callback, String... lore) {
this.item = new CustomItem(slimefunItem, null, lore);
this.machine = slimefunItem.getItemID();
public RecipeType(NamespacedKey key, ItemStack item, BiConsumer<ItemStack[], ItemStack> callback, String... lore) {
this.item = new CustomItem(item, null, lore);
this.key = key;
this.consumer = callback;
if (item instanceof SlimefunItemStack) {
this.machine = ((SlimefunItemStack) item).getItemID();
}
else {
this.machine = "";
}
}
@Deprecated
@ -114,6 +131,13 @@ public class RecipeType implements Keyed {
if (consumer != null) {
consumer.accept(recipe, result);
}
else {
SlimefunItem slimefunItem = SlimefunItem.getByID(this.machine);
if (slimefunItem instanceof SlimefunMachine) {
((SlimefunMachine) slimefunItem).addRecipe(recipe, result);
}
}
}
public ItemStack toItem() {
@ -133,6 +157,21 @@ public class RecipeType implements Keyed {
return key;
}
private static void registerMobDrop(ItemStack[] recipe, ItemStack output) {
String mob = null;
try {
mob = ChatColor.stripColor(recipe[4].getItemMeta().getDisplayName()).toUpperCase().replace(' ', '_');
EntityType entity = EntityType.valueOf(mob);
Set<ItemStack> dropping = SlimefunPlugin.getRegistry().getMobDrops().getOrDefault(entity, new HashSet<>());
dropping.add(output);
SlimefunPlugin.getRegistry().getMobDrops().put(entity, dropping);
}
catch (Exception x) {
Slimefun.getLogger().log(Level.WARNING, "An Exception occured when setting a Drop for the Mob Type: \"" + mob + "\"", x);
}
}
public static List<ItemStack> getRecipeInputs(SlimefunMachine machine) {
if (machine == null) return new ArrayList<>();
List<ItemStack[]> recipes = machine.getRecipes();

View File

@ -104,6 +104,24 @@ slimefun:
- 'Craft this Item as shown'
- 'using a Food Composter'
freezer:
name: 'Freezer'
lore:
- 'Craft this Item as shown'
- 'using a Freezer'
geo_miner:
name: 'GEO Miner'
lore:
- 'This Item can be gathered'
- 'by using a GEO Miner'
nuclear_reactor:
name: 'Nuclear Reactor'
lore:
- 'This Item is a byproduct'
- 'of running a Nuclear Reactor'
minecraft:
shaped: