Add cooked and rotten variants of all the fish
|
@ -77,6 +77,7 @@ public class UAdvancementsProvider extends FabricAdvancementProvider {
|
||||||
p.child(UItems.WEIRD_ROCK).hidden().criterion("has_rock", hasItems(UItems.WEIRD_ROCK)).build(consumer, "thats_unusual");
|
p.child(UItems.WEIRD_ROCK).hidden().criterion("has_rock", hasItems(UItems.WEIRD_ROCK)).build(consumer, "thats_unusual");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
parent.child(UItems.FRIED_AXOLOTL).criterion("eaten_axolotl", ConsumeItemCriterion.Conditions.item(UItems.FRIED_AXOLOTL)).build(consumer, "tastes_like_chicken");
|
||||||
parent.child(UItems.OATS).criterion("has_oats", hasItems(UItems.OATS)).build(consumer, "oats_so_easy");
|
parent.child(UItems.OATS).criterion("has_oats", hasItems(UItems.OATS)).build(consumer, "oats_so_easy");
|
||||||
parent.child(Items.HAY_BLOCK).criterion("eat_hay", ConsumeItemCriterion.Conditions.item(Items.HAY_BLOCK)).build(consumer, "what_the_hay");
|
parent.child(Items.HAY_BLOCK).criterion("eat_hay", ConsumeItemCriterion.Conditions.item(Items.HAY_BLOCK)).build(consumer, "what_the_hay");
|
||||||
parent.child(UItems.COPPER_HORSE_SHOE).criterion("has_horseshoe", hasItems(UTags.Items.HORSE_SHOES)).build(consumer, "blacksmith").children(p -> {
|
parent.child(UItems.COPPER_HORSE_SHOE).criterion("has_horseshoe", hasItems(UTags.Items.HORSE_SHOES)).build(consumer, "blacksmith").children(p -> {
|
||||||
|
|
|
@ -59,12 +59,14 @@ public class UModelProvider extends FabricModelProvider {
|
||||||
ItemModels.register(itemModelGenerator,
|
ItemModels.register(itemModelGenerator,
|
||||||
UItems.ACORN, UItems.APPLE_PIE_HOOF, UItems.APPLE_PIE_SLICE, UItems.APPLE_PIE,
|
UItems.ACORN, UItems.APPLE_PIE_HOOF, UItems.APPLE_PIE_SLICE, UItems.APPLE_PIE,
|
||||||
UItems.BANANA, UItems.BOTCHED_GEM, UItems.BOWL_OF_NUTS, UItems.BROKEN_SUNGLASSES, UItems.BURNED_JUICE, UItems.BURNED_TOAST,
|
UItems.BANANA, UItems.BOTCHED_GEM, UItems.BOWL_OF_NUTS, UItems.BROKEN_SUNGLASSES, UItems.BURNED_JUICE, UItems.BURNED_TOAST,
|
||||||
UItems.CARAPACE, UItems.CLAM_SHELL, UItems.COOKED_ZAP_APPLE, UItems.CHOCOLATE_OATMEAL_COOKIE, UItems.CLOUD_LUMP, UItems.CRISPY_HAY_FRIES, UItems.CRYSTAL_HEART, UItems.CRYSTAL_SHARD,
|
UItems.CARAPACE, UItems.CLAM_SHELL, UItems.COOKED_ZAP_APPLE, UItems.CHOCOLATE_OATMEAL_COOKIE,
|
||||||
|
UItems.CLOUD_LUMP, UItems.CRISPY_HAY_FRIES, UItems.CRYSTAL_HEART, UItems.CRYSTAL_SHARD,
|
||||||
|
UItems.COOKED_TROPICAL_FISH, UItems.COOKED_PUFFERFISH, UItems.FRIED_AXOLOTL,
|
||||||
UItems.DAFFODIL_DAISY_SANDWICH, UItems.DRAGON_BREATH_SCROLL,
|
UItems.DAFFODIL_DAISY_SANDWICH, UItems.DRAGON_BREATH_SCROLL,
|
||||||
UItems.EMPTY_JAR,
|
UItems.EMPTY_JAR,
|
||||||
UItems.FRIENDSHIP_BRACELET,
|
UItems.FRIENDSHIP_BRACELET,
|
||||||
UItems.GIANT_BALLOON, UItems.GOLDEN_FEATHER, UItems.GOLDEN_OAK_SEEDS, UItems.GOLDEN_WING, UItems.GREEN_APPLE_SEEDS, UItems.GREEN_APPLE, UItems.GROGARS_BELL,
|
UItems.GIANT_BALLOON, UItems.GOLDEN_FEATHER, UItems.GOLDEN_OAK_SEEDS, UItems.GOLDEN_WING, UItems.GREEN_APPLE_SEEDS, UItems.GREEN_APPLE, UItems.GROGARS_BELL,
|
||||||
UItems.GRYPHON_FEATHER,
|
UItems.GRYPHON_FEATHER, UItems.GREEN_FRIED_EGG,
|
||||||
UItems.HAY_BURGER, UItems.HAY_FRIES, UItems.HORSE_SHOE_FRIES,
|
UItems.HAY_BURGER, UItems.HAY_FRIES, UItems.HORSE_SHOE_FRIES,
|
||||||
UItems.IMPORTED_OATS,
|
UItems.IMPORTED_OATS,
|
||||||
UItems.JAM_TOAST, UItems.JUICE,
|
UItems.JAM_TOAST, UItems.JUICE,
|
||||||
|
@ -72,7 +74,8 @@ public class UModelProvider extends FabricModelProvider {
|
||||||
UItems.MANGO, UItems.MUFFIN,
|
UItems.MANGO, UItems.MUFFIN,
|
||||||
UItems.OATMEAL, UItems.OATMEAL_COOKIE, UItems.SCONE,
|
UItems.OATMEAL, UItems.OATMEAL_COOKIE, UItems.SCONE,
|
||||||
UItems.PEBBLES, UItems.PEGASUS_FEATHER, UItems.PINECONE, UItems.PINECONE_COOKIE, UItems.PINEAPPLE_CROWN,
|
UItems.PEBBLES, UItems.PEGASUS_FEATHER, UItems.PINECONE, UItems.PINECONE_COOKIE, UItems.PINEAPPLE_CROWN,
|
||||||
UItems.RAIN_CLOUD_JAR, UItems.ROCK_STEW, UItems.ROCK, UItems.ROTTEN_APPLE,
|
UItems.RAIN_CLOUD_JAR, UItems.ROCK_STEW, UItems.ROCK,
|
||||||
|
UItems.ROTTEN_APPLE, UItems.ROTTEN_COD, UItems.ROTTEN_TROPICAL_FISH, UItems.ROTTEN_SALMON, UItems.ROTTEN_PUFFERFISH,
|
||||||
UItems.SALT_CUBE, UItems.SCALLOP_SHELL, UItems.SHELLY, UItems.SOUR_APPLE_SEEDS, UItems.SOUR_APPLE, UItems.SPELLBOOK, UItems.STORM_CLOUD_JAR,
|
UItems.SALT_CUBE, UItems.SCALLOP_SHELL, UItems.SHELLY, UItems.SOUR_APPLE_SEEDS, UItems.SOUR_APPLE, UItems.SPELLBOOK, UItems.STORM_CLOUD_JAR,
|
||||||
UItems.SWEET_APPLE_SEEDS, UItems.SWEET_APPLE,
|
UItems.SWEET_APPLE_SEEDS, UItems.SWEET_APPLE,
|
||||||
UItems.TOAST, UItems.TOM, UItems.TURRET_SHELL,
|
UItems.TOAST, UItems.TOM, UItems.TURRET_SHELL,
|
||||||
|
@ -106,7 +109,10 @@ public class UModelProvider extends FabricModelProvider {
|
||||||
.put(TextureKey.LAYER1, ModelIds.getItemSubModelId(UItems.MAGIC_STAFF, "_magic")), itemModelGenerator.writer);
|
.put(TextureKey.LAYER1, ModelIds.getItemSubModelId(UItems.MAGIC_STAFF, "_magic")), itemModelGenerator.writer);
|
||||||
|
|
||||||
// polearms
|
// polearms
|
||||||
List.of(UItems.DIAMOND_POLEARM, UItems.GOLDEN_POLEARM, UItems.NETHERITE_POLEARM, UItems.STONE_POLEARM, UItems.WOODEN_POLEARM, UItems.IRON_POLEARM).forEach(item -> ItemModels.registerPolearm(itemModelGenerator, item));
|
List.of(
|
||||||
|
UItems.DIAMOND_POLEARM, UItems.GOLDEN_POLEARM, UItems.NETHERITE_POLEARM,
|
||||||
|
UItems.STONE_POLEARM, UItems.WOODEN_POLEARM, UItems.IRON_POLEARM
|
||||||
|
).forEach(item -> ItemModels.registerPolearm(itemModelGenerator, item));
|
||||||
// sheets
|
// sheets
|
||||||
ItemModels.register(itemModelGenerator, BedsheetsItem.ITEMS.values().stream().toArray(Item[]::new));
|
ItemModels.register(itemModelGenerator, BedsheetsItem.ITEMS.values().stream().toArray(Item[]::new));
|
||||||
// badges
|
// badges
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.minelittlepony.unicopia.datagen.providers.loot;
|
||||||
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import com.minelittlepony.unicopia.UTags;
|
||||||
import com.minelittlepony.unicopia.item.UItems;
|
import com.minelittlepony.unicopia.item.UItems;
|
||||||
import com.minelittlepony.unicopia.item.enchantment.UEnchantments;
|
import com.minelittlepony.unicopia.item.enchantment.UEnchantments;
|
||||||
|
|
||||||
|
@ -14,20 +15,24 @@ import net.minecraft.enchantment.Enchantments;
|
||||||
import net.minecraft.item.ItemConvertible;
|
import net.minecraft.item.ItemConvertible;
|
||||||
import net.minecraft.loot.LootPool;
|
import net.minecraft.loot.LootPool;
|
||||||
import net.minecraft.loot.LootTable;
|
import net.minecraft.loot.LootTable;
|
||||||
|
import net.minecraft.loot.condition.LocationCheckLootCondition;
|
||||||
import net.minecraft.loot.condition.LootCondition;
|
import net.minecraft.loot.condition.LootCondition;
|
||||||
import net.minecraft.loot.condition.MatchToolLootCondition;
|
import net.minecraft.loot.condition.MatchToolLootCondition;
|
||||||
import net.minecraft.loot.condition.RandomChanceLootCondition;
|
import net.minecraft.loot.condition.RandomChanceLootCondition;
|
||||||
import net.minecraft.loot.condition.TableBonusLootCondition;
|
import net.minecraft.loot.condition.TableBonusLootCondition;
|
||||||
import net.minecraft.loot.entry.ItemEntry;
|
import net.minecraft.loot.entry.ItemEntry;
|
||||||
import net.minecraft.loot.entry.LootPoolEntry;
|
import net.minecraft.loot.entry.LootPoolEntry;
|
||||||
|
import net.minecraft.loot.entry.TagEntry;
|
||||||
import net.minecraft.loot.function.ApplyBonusLootFunction;
|
import net.minecraft.loot.function.ApplyBonusLootFunction;
|
||||||
import net.minecraft.loot.function.SetCountLootFunction;
|
import net.minecraft.loot.function.SetCountLootFunction;
|
||||||
import net.minecraft.loot.provider.number.ConstantLootNumberProvider;
|
import net.minecraft.loot.provider.number.ConstantLootNumberProvider;
|
||||||
import net.minecraft.loot.provider.number.UniformLootNumberProvider;
|
import net.minecraft.loot.provider.number.UniformLootNumberProvider;
|
||||||
import net.minecraft.predicate.NumberRange;
|
import net.minecraft.predicate.NumberRange;
|
||||||
|
import net.minecraft.predicate.entity.LocationPredicate;
|
||||||
import net.minecraft.predicate.item.EnchantmentPredicate;
|
import net.minecraft.predicate.item.EnchantmentPredicate;
|
||||||
import net.minecraft.predicate.item.ItemPredicate;
|
import net.minecraft.predicate.item.ItemPredicate;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
import net.minecraft.world.biome.BiomeKeys;
|
||||||
|
|
||||||
public class UBlockAdditionsLootTableProvider extends FabricBlockLootTableProvider {
|
public class UBlockAdditionsLootTableProvider extends FabricBlockLootTableProvider {
|
||||||
public static final LootCondition.Builder WITH_GEM_FINDER = MatchToolLootCondition.builder(ItemPredicate.Builder.create().enchantment(new EnchantmentPredicate(UEnchantments.GEM_FINDER, NumberRange.IntRange.atLeast(1))));
|
public static final LootCondition.Builder WITH_GEM_FINDER = MatchToolLootCondition.builder(ItemPredicate.Builder.create().enchantment(new EnchantmentPredicate(UEnchantments.GEM_FINDER, NumberRange.IntRange.atLeast(1))));
|
||||||
|
@ -35,6 +40,10 @@ public class UBlockAdditionsLootTableProvider extends FabricBlockLootTableProvid
|
||||||
public static final LootCondition.Builder WITHOUT_SILK_TOUCH_AND_GEM_FINDER = WITHOUT_SILK_TOUCH.and(WITH_GEM_FINDER);
|
public static final LootCondition.Builder WITHOUT_SILK_TOUCH_AND_GEM_FINDER = WITHOUT_SILK_TOUCH.and(WITH_GEM_FINDER);
|
||||||
public static final float[] GEMSTONES_FORTUNE_CHANCE = { 0.1F, 0.14285715F, 0.25F, 1F };
|
public static final float[] GEMSTONES_FORTUNE_CHANCE = { 0.1F, 0.14285715F, 0.25F, 1F };
|
||||||
|
|
||||||
|
public static final LootCondition.Builder NEEDS_OCEAN_OR_BEACH_BIOME =
|
||||||
|
LocationCheckLootCondition.builder(LocationPredicate.Builder.create().biome(BiomeKeys.OCEAN))
|
||||||
|
.or(LocationCheckLootCondition.builder(LocationPredicate.Builder.create().biome(BiomeKeys.BEACH)));
|
||||||
|
|
||||||
public UBlockAdditionsLootTableProvider(FabricDataOutput dataOutput) {
|
public UBlockAdditionsLootTableProvider(FabricDataOutput dataOutput) {
|
||||||
super(dataOutput);
|
super(dataOutput);
|
||||||
}
|
}
|
||||||
|
@ -57,12 +66,25 @@ public class UBlockAdditionsLootTableProvider extends FabricBlockLootTableProvid
|
||||||
addVanillaDrop(Blocks.DEEPSLATE_DIAMOND_ORE, this::crystalShardDrops);
|
addVanillaDrop(Blocks.DEEPSLATE_DIAMOND_ORE, this::crystalShardDrops);
|
||||||
addVanillaDrop(Blocks.OAK_LEAVES, block -> chanceDropWithShears(block, UItems.ACORN, GEMSTONES_FORTUNE_CHANCE));
|
addVanillaDrop(Blocks.OAK_LEAVES, block -> chanceDropWithShears(block, UItems.ACORN, GEMSTONES_FORTUNE_CHANCE));
|
||||||
addVanillaDrop(Blocks.SPRUCE_LEAVES, block -> chanceDropWithShears(block, UItems.PINECONE, GEMSTONES_FORTUNE_CHANCE));
|
addVanillaDrop(Blocks.SPRUCE_LEAVES, block -> chanceDropWithShears(block, UItems.PINECONE, GEMSTONES_FORTUNE_CHANCE));
|
||||||
|
addVanillaDrop(Blocks.GRAVEL, this::shellDrops);
|
||||||
|
addVanillaDrop(Blocks.SUSPICIOUS_GRAVEL, this::shellDrops);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addVanillaDrop(Block block, Function<Block, LootTable.Builder> lootTableFunction) {
|
private void addVanillaDrop(Block block, Function<Block, LootTable.Builder> lootTableFunction) {
|
||||||
lootTables.put(new Identifier("unicopiamc", block.getLootTableId().getPath()), lootTableFunction.apply(block));
|
lootTables.put(new Identifier("unicopiamc", block.getLootTableId().getPath()), lootTableFunction.apply(block));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LootTable.Builder shellDrops(Block block) {
|
||||||
|
return LootTable.builder().pool(LootPool.builder()
|
||||||
|
.rolls(ConstantLootNumberProvider.create(1))
|
||||||
|
.conditionally(WITHOUT_SILK_TOUCH.and(NEEDS_OCEAN_OR_BEACH_BIOME))
|
||||||
|
.with(applyExplosionDecay(block, TagEntry.builder(UTags.Items.SHELLS)
|
||||||
|
.apply(SetCountLootFunction.builder(ConstantLootNumberProvider.create(1)))
|
||||||
|
)
|
||||||
|
.conditionally(TableBonusLootCondition.builder(Enchantments.FORTUNE, GEMSTONES_FORTUNE_CHANCE)))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public LootTable.Builder chanceDropWithShears(Block block, ItemConvertible drop, float...chance) {
|
public LootTable.Builder chanceDropWithShears(Block block, ItemConvertible drop, float...chance) {
|
||||||
return LootTable.builder()
|
return LootTable.builder()
|
||||||
.pool(LootPool.builder()
|
.pool(LootPool.builder()
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.minelittlepony.unicopia.datagen.providers.loot;
|
||||||
|
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
|
|
||||||
|
import com.minelittlepony.unicopia.UConventionalTags;
|
||||||
import com.minelittlepony.unicopia.UTags;
|
import com.minelittlepony.unicopia.UTags;
|
||||||
import com.minelittlepony.unicopia.item.UItems;
|
import com.minelittlepony.unicopia.item.UItems;
|
||||||
|
|
||||||
|
@ -60,6 +61,7 @@ public class UChestAdditionsLootTableProvider extends SimpleFabricLootTableProvi
|
||||||
.rolls(UniformLootNumberProvider.create(0, 1))
|
.rolls(UniformLootNumberProvider.create(0, 1))
|
||||||
.with(ItemEntry.builder(UItems.GROGARS_BELL).weight(1))
|
.with(ItemEntry.builder(UItems.GROGARS_BELL).weight(1))
|
||||||
));
|
));
|
||||||
|
|
||||||
exporter.accept(LootTables.BURIED_TREASURE_CHEST, LootTable.builder().pool(LootPool.builder()
|
exporter.accept(LootTables.BURIED_TREASURE_CHEST, LootTable.builder().pool(LootPool.builder()
|
||||||
.rolls(UniformLootNumberProvider.create(1, 4))
|
.rolls(UniformLootNumberProvider.create(1, 4))
|
||||||
.with(ItemEntry.builder(UItems.PEARL_NECKLACE).weight(1))
|
.with(ItemEntry.builder(UItems.PEARL_NECKLACE).weight(1))
|
||||||
|
@ -68,21 +70,25 @@ public class UChestAdditionsLootTableProvider extends SimpleFabricLootTableProvi
|
||||||
exporter.accept(LootTables.SHIPWRECK_SUPPLY_CHEST, LootTable.builder().pool(LootPool.builder()
|
exporter.accept(LootTables.SHIPWRECK_SUPPLY_CHEST, LootTable.builder().pool(LootPool.builder()
|
||||||
.rolls(UniformLootNumberProvider.create(1, 6))
|
.rolls(UniformLootNumberProvider.create(1, 6))
|
||||||
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(3))
|
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(3))
|
||||||
|
.with(TagEntry.expandBuilder(UConventionalTags.Items.ROTTEN_FISH).weight(1))
|
||||||
));
|
));
|
||||||
exporter.accept(LootTables.SHIPWRECK_TREASURE_CHEST, LootTable.builder().pool(LootPool.builder()
|
exporter.accept(LootTables.SHIPWRECK_TREASURE_CHEST, LootTable.builder().pool(LootPool.builder()
|
||||||
.rolls(UniformLootNumberProvider.create(1, 4))
|
.rolls(UniformLootNumberProvider.create(1, 4))
|
||||||
.with(ItemEntry.builder(UItems.PEARL_NECKLACE).weight(1))
|
.with(ItemEntry.builder(UItems.PEARL_NECKLACE).weight(1))
|
||||||
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(3))
|
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(3))
|
||||||
|
.with(TagEntry.expandBuilder(UConventionalTags.Items.ROTTEN_FISH).weight(1))
|
||||||
));
|
));
|
||||||
exporter.accept(LootTables.UNDERWATER_RUIN_BIG_CHEST, LootTable.builder().pool(LootPool.builder()
|
exporter.accept(LootTables.UNDERWATER_RUIN_BIG_CHEST, LootTable.builder().pool(LootPool.builder()
|
||||||
.rolls(UniformLootNumberProvider.create(1, 2))
|
.rolls(UniformLootNumberProvider.create(1, 2))
|
||||||
.with(ItemEntry.builder(UItems.PEARL_NECKLACE).weight(1))
|
.with(ItemEntry.builder(UItems.PEARL_NECKLACE).weight(1))
|
||||||
.with(ItemEntry.builder(UItems.SHELLY).weight(4))
|
.with(ItemEntry.builder(UItems.SHELLY).weight(4))
|
||||||
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(8))
|
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(8))
|
||||||
|
.with(TagEntry.expandBuilder(UConventionalTags.Items.ROTTEN_FISH).weight(1))
|
||||||
));
|
));
|
||||||
exporter.accept(LootTables.UNDERWATER_RUIN_SMALL_CHEST, LootTable.builder().pool(LootPool.builder()
|
exporter.accept(LootTables.UNDERWATER_RUIN_SMALL_CHEST, LootTable.builder().pool(LootPool.builder()
|
||||||
.rolls(UniformLootNumberProvider.create(1, 4))
|
.rolls(UniformLootNumberProvider.create(1, 4))
|
||||||
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(1))
|
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(1))
|
||||||
|
.with(TagEntry.expandBuilder(UConventionalTags.Items.ROTTEN_FISH).weight(1))
|
||||||
));
|
));
|
||||||
|
|
||||||
exporter.accept(LootTables.DESERT_WELL_ARCHAEOLOGY, LootTable.builder().pool(LootPool.builder()
|
exporter.accept(LootTables.DESERT_WELL_ARCHAEOLOGY, LootTable.builder().pool(LootPool.builder()
|
||||||
|
@ -112,17 +118,20 @@ public class UChestAdditionsLootTableProvider extends SimpleFabricLootTableProvi
|
||||||
.rolls(UniformLootNumberProvider.create(1, 4))
|
.rolls(UniformLootNumberProvider.create(1, 4))
|
||||||
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(1))
|
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(1))
|
||||||
.with(ItemEntry.builder(UItems.PEARL_NECKLACE).weight(1))
|
.with(ItemEntry.builder(UItems.PEARL_NECKLACE).weight(1))
|
||||||
|
.with(TagEntry.expandBuilder(UConventionalTags.Items.ROTTEN_FISH).weight(1))
|
||||||
));
|
));
|
||||||
|
|
||||||
exporter.accept(LootTables.FISHING_GAMEPLAY, LootTable.builder().pool(LootPool.builder()
|
exporter.accept(LootTables.FISHING_GAMEPLAY, LootTable.builder().pool(LootPool.builder()
|
||||||
.rolls(UniformLootNumberProvider.create(1, 4))
|
.rolls(UniformLootNumberProvider.create(1, 4))
|
||||||
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(2))
|
.with(TagEntry.expandBuilder(UTags.Items.SHELLS).weight(2))
|
||||||
|
.with(TagEntry.expandBuilder(UConventionalTags.Items.ROTTEN_FISH).weight(1))
|
||||||
));
|
));
|
||||||
|
|
||||||
exporter.accept(LootTables.FISHING_JUNK_GAMEPLAY, LootTable.builder().pool(LootPool.builder()
|
exporter.accept(LootTables.FISHING_JUNK_GAMEPLAY, LootTable.builder().pool(LootPool.builder()
|
||||||
.rolls(UniformLootNumberProvider.create(1, 4))
|
.rolls(UniformLootNumberProvider.create(1, 4))
|
||||||
.with(ItemEntry.builder(UItems.BROKEN_SUNGLASSES).weight(2))
|
.with(ItemEntry.builder(UItems.BROKEN_SUNGLASSES).weight(2))
|
||||||
.with(ItemEntry.builder(UItems.WHEAT_WORMS).weight(2))
|
.with(ItemEntry.builder(UItems.WHEAT_WORMS).weight(2))
|
||||||
|
.with(TagEntry.expandBuilder(UConventionalTags.Items.ROTTEN_FISH).weight(1))
|
||||||
.with(ItemEntry.builder(UItems.BOTCHED_GEM).weight(4))
|
.with(ItemEntry.builder(UItems.BOTCHED_GEM).weight(4))
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
|
@ -411,6 +411,10 @@ public class URecipeProvider extends FabricRecipeProvider {
|
||||||
offerSmelting(exporter, List.of(UItems.BURNED_JUICE, UItems.BURNED_TOAST), RecipeCategory.FOOD, Items.CHARCOAL, 1, 20, "coal");
|
offerSmelting(exporter, List.of(UItems.BURNED_JUICE, UItems.BURNED_TOAST), RecipeCategory.FOOD, Items.CHARCOAL, 1, 20, "coal");
|
||||||
offerSmelting(exporter, List.of(UItems.HAY_FRIES), RecipeCategory.FOOD, UItems.CRISPY_HAY_FRIES, 1F, 25, "hay_fries");
|
offerSmelting(exporter, List.of(UItems.HAY_FRIES), RecipeCategory.FOOD, UItems.CRISPY_HAY_FRIES, 1F, 25, "hay_fries");
|
||||||
offerSmelting(exporter, List.of(UItems.ZAP_APPLE), RecipeCategory.FOOD, UItems.COOKED_ZAP_APPLE, 1.2F, 430, "zap_apple");
|
offerSmelting(exporter, List.of(UItems.ZAP_APPLE), RecipeCategory.FOOD, UItems.COOKED_ZAP_APPLE, 1.2F, 430, "zap_apple");
|
||||||
|
offerSmelting(exporter, List.of(Items.TROPICAL_FISH), RecipeCategory.FOOD, UItems.COOKED_TROPICAL_FISH, 1.2F, 230, "fish");
|
||||||
|
offerSmelting(exporter, List.of(Items.PUFFERFISH), RecipeCategory.FOOD, UItems.COOKED_PUFFERFISH, 1.2F, 230, "fish");
|
||||||
|
offerSmelting(exporter, List.of(Items.AXOLOTL_BUCKET), RecipeCategory.FOOD, UItems.FRIED_AXOLOTL, 2.2F, 230, "fried_axolotl");
|
||||||
|
offerSmelting(exporter, List.of(UBlocks.MYSTERIOUS_EGG.asItem()), RecipeCategory.FOOD, UItems.GREEN_FRIED_EGG, 3.8F, 630, "fried_egg");
|
||||||
|
|
||||||
ShapelessRecipeJsonBuilder.create(RecipeCategory.FOOD, UItems.ZAP_APPLE_JAM_JAR)
|
ShapelessRecipeJsonBuilder.create(RecipeCategory.FOOD, UItems.ZAP_APPLE_JAM_JAR)
|
||||||
.input(UItems.COOKED_ZAP_APPLE, 6).criterion(hasItem(UItems.COOKED_ZAP_APPLE), conditionsFromItem(UItems.COOKED_ZAP_APPLE))
|
.input(UItems.COOKED_ZAP_APPLE, 6).criterion(hasItem(UItems.COOKED_ZAP_APPLE), conditionsFromItem(UItems.COOKED_ZAP_APPLE))
|
||||||
|
|
|
@ -201,7 +201,12 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider {
|
||||||
;
|
;
|
||||||
getOrCreateTagBuilder(UConventionalTags.Items.BANANAS).add(UItems.BANANA);
|
getOrCreateTagBuilder(UConventionalTags.Items.BANANAS).add(UItems.BANANA);
|
||||||
getOrCreateTagBuilder(UConventionalTags.Items.RAW_FISH).add(Items.COD, Items.SALMON, Items.PUFFERFISH, Items.TROPICAL_FISH).addOptionalTag(new Identifier("c", "mollusks"));
|
getOrCreateTagBuilder(UConventionalTags.Items.RAW_FISH).add(Items.COD, Items.SALMON, Items.PUFFERFISH, Items.TROPICAL_FISH).addOptionalTag(new Identifier("c", "mollusks"));
|
||||||
getOrCreateTagBuilder(UConventionalTags.Items.COOKED_FISH).add(Items.COOKED_COD, Items.COOKED_SALMON);
|
getOrCreateTagBuilder(UConventionalTags.Items.COOKED_FISH).add(Items.COOKED_COD, Items.COOKED_SALMON, UItems.COOKED_TROPICAL_FISH, UItems.COOKED_PUFFERFISH, UItems.FRIED_AXOLOTL);
|
||||||
|
getOrCreateTagBuilder(UConventionalTags.Items.ROTTEN_FISH).add(UItems.ROTTEN_COD, UItems.ROTTEN_TROPICAL_FISH, UItems.ROTTEN_SALMON, UItems.ROTTEN_PUFFERFISH);
|
||||||
|
getOrCreateTagBuilder(ItemTags.FISHES).add(
|
||||||
|
UItems.COOKED_TROPICAL_FISH, UItems.COOKED_PUFFERFISH, UItems.FRIED_AXOLOTL,
|
||||||
|
UItems.ROTTEN_COD, UItems.ROTTEN_TROPICAL_FISH, UItems.ROTTEN_SALMON, UItems.ROTTEN_PUFFERFISH
|
||||||
|
);
|
||||||
getOrCreateTagBuilder(UConventionalTags.Items.COOKED_MEAT)
|
getOrCreateTagBuilder(UConventionalTags.Items.COOKED_MEAT)
|
||||||
.add(Items.COOKED_PORKCHOP, Items.COOKED_BEEF, Items.COOKED_MUTTON, Items.COOKED_RABBIT, Items.COOKED_CHICKEN, Items.RABBIT_STEW)
|
.add(Items.COOKED_PORKCHOP, Items.COOKED_BEEF, Items.COOKED_MUTTON, Items.COOKED_RABBIT, Items.COOKED_CHICKEN, Items.RABBIT_STEW)
|
||||||
.addOptionalTag(new Identifier("c", "cooked_bacon"))
|
.addOptionalTag(new Identifier("c", "cooked_bacon"))
|
||||||
|
|
|
@ -11,9 +11,13 @@ import net.minecraft.stat.Stats;
|
||||||
import net.minecraft.util.UseAction;
|
import net.minecraft.util.UseAction;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class DrinkableItem extends Item {
|
public class ConsumableItem extends Item {
|
||||||
public DrinkableItem(Item.Settings settings) {
|
|
||||||
|
private final UseAction action;
|
||||||
|
|
||||||
|
public ConsumableItem(Item.Settings settings, UseAction action) {
|
||||||
super(settings);
|
super(settings);
|
||||||
|
this.action = action;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -30,6 +34,6 @@ public class DrinkableItem extends Item {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UseAction getUseAction(ItemStack stack) {
|
public UseAction getUseAction(ItemStack stack) {
|
||||||
return UseAction.DRINK;
|
return action;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -29,6 +29,7 @@ public interface UFoodComponents {
|
||||||
FoodComponent OATMEAL_COOKIE = FoodComponents.COOKIE; //builder(2, 0.1F).build();
|
FoodComponent OATMEAL_COOKIE = FoodComponents.COOKIE; //builder(2, 0.1F).build();
|
||||||
FoodComponent CHOCOLATE_OATMEAL_COOKIE = builder(3, 0.4F).build();
|
FoodComponent CHOCOLATE_OATMEAL_COOKIE = builder(3, 0.4F).build();
|
||||||
FoodComponent SCONE = builder(2, 0.2F).build();
|
FoodComponent SCONE = builder(2, 0.2F).build();
|
||||||
|
FoodComponent FRIED_EGG = builder(4, 0.4F).build();
|
||||||
|
|
||||||
FoodComponent WORMS = builder(1, 1.5F).alwaysEdible().meat().build();
|
FoodComponent WORMS = builder(1, 1.5F).alwaysEdible().meat().build();
|
||||||
FoodComponent INSECTS = builder(1, 0).alwaysEdible().build();
|
FoodComponent INSECTS = builder(1, 0).alwaysEdible().build();
|
||||||
|
|
|
@ -27,6 +27,7 @@ import net.fabricmc.fabric.api.registry.CompostingChanceRegistry;
|
||||||
import net.fabricmc.fabric.api.registry.FuelRegistry;
|
import net.fabricmc.fabric.api.registry.FuelRegistry;
|
||||||
import net.minecraft.sound.SoundEvent;
|
import net.minecraft.sound.SoundEvent;
|
||||||
import net.minecraft.util.Rarity;
|
import net.minecraft.util.Rarity;
|
||||||
|
import net.minecraft.util.UseAction;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
import net.minecraft.registry.RegistryKey;
|
import net.minecraft.registry.RegistryKey;
|
||||||
import net.minecraft.registry.Registries;
|
import net.minecraft.registry.Registries;
|
||||||
|
@ -119,17 +120,17 @@ public interface UItems {
|
||||||
Item GOLDEN_OAK_SEEDS = register("golden_oak_seeds", new AliasedBlockItem(UBlocks.GOLDEN_OAK_SPROUT, new Item.Settings()), ItemGroups.NATURAL);
|
Item GOLDEN_OAK_SEEDS = register("golden_oak_seeds", new AliasedBlockItem(UBlocks.GOLDEN_OAK_SPROUT, new Item.Settings()), ItemGroups.NATURAL);
|
||||||
|
|
||||||
Item MUG = register("mug", new Item(new Settings()), ItemGroups.TOOLS);
|
Item MUG = register("mug", new Item(new Settings()), ItemGroups.TOOLS);
|
||||||
Item CIDER = register("cider", new DrinkableItem(new Item.Settings().food(UFoodComponents.CIDER).maxCount(16).recipeRemainder(MUG)), ItemGroups.FOOD_AND_DRINK);
|
Item CIDER = register("cider", new ConsumableItem(new Item.Settings().food(UFoodComponents.CIDER).maxCount(16).recipeRemainder(MUG), UseAction.DRINK), ItemGroups.FOOD_AND_DRINK);
|
||||||
Item JUICE = register("juice", new DrinkableItem(new Item.Settings().recipeRemainder(Items.GLASS_BOTTLE).maxCount(16).food(UFoodComponents.JUICE)), ItemGroups.FOOD_AND_DRINK);
|
Item JUICE = register("juice", new ConsumableItem(new Item.Settings().recipeRemainder(Items.GLASS_BOTTLE).maxCount(16).food(UFoodComponents.JUICE), UseAction.DRINK), ItemGroups.FOOD_AND_DRINK);
|
||||||
Item BURNED_JUICE = register("burned_juice", new DrinkableItem(new Item.Settings().recipeRemainder(Items.GLASS_BOTTLE).maxCount(16).food(UFoodComponents.BURNED_JUICE)), ItemGroups.FOOD_AND_DRINK);
|
Item BURNED_JUICE = register("burned_juice", new ConsumableItem(new Item.Settings().recipeRemainder(Items.GLASS_BOTTLE).maxCount(16).food(UFoodComponents.BURNED_JUICE), UseAction.DRINK), ItemGroups.FOOD_AND_DRINK);
|
||||||
Item APPLE_PIE = register("apple_pie", new BlockItem(UBlocks.APPLE_PIE, new Item.Settings().maxCount(1)), ItemGroups.FOOD_AND_DRINK);
|
Item APPLE_PIE = register("apple_pie", new BlockItem(UBlocks.APPLE_PIE, new Item.Settings().maxCount(1)), ItemGroups.FOOD_AND_DRINK);
|
||||||
Item APPLE_PIE_HOOF = register("apple_pie_hoof", new AliasedBlockItem(UBlocks.APPLE_PIE, new Item.Settings().maxCount(1)), ItemGroups.FOOD_AND_DRINK);
|
Item APPLE_PIE_HOOF = register("apple_pie_hoof", new AliasedBlockItem(UBlocks.APPLE_PIE, new Item.Settings().maxCount(1)), ItemGroups.FOOD_AND_DRINK);
|
||||||
Item APPLE_PIE_SLICE = register("apple_pie_slice", new Item(new Item.Settings().maxCount(16).food(UFoodComponents.PIE)), ItemGroups.FOOD_AND_DRINK);
|
Item APPLE_PIE_SLICE = register("apple_pie_slice", new Item(new Item.Settings().maxCount(16).food(UFoodComponents.PIE)), ItemGroups.FOOD_AND_DRINK);
|
||||||
Item CANDIED_APPLE = register("candied_apple", new StagedFoodItem(new Item.Settings().food(UFoodComponents.CANDY).maxDamage(3), () -> Items.STICK), ItemGroups.FOOD_AND_DRINK);
|
Item CANDIED_APPLE = register("candied_apple", new StagedFoodItem(new Item.Settings().food(UFoodComponents.CANDY).maxDamage(3), () -> Items.STICK), ItemGroups.FOOD_AND_DRINK);
|
||||||
|
|
||||||
Item LOVE_BOTTLE = register("love_bottle", new DrinkableItem(new Item.Settings().food(UFoodComponents.LOVE_BOTTLE).maxCount(1).recipeRemainder(Items.GLASS_BOTTLE)), ItemGroups.FOOD_AND_DRINK);
|
Item LOVE_BOTTLE = register("love_bottle", new ConsumableItem(new Item.Settings().food(UFoodComponents.LOVE_BOTTLE).maxCount(1).recipeRemainder(Items.GLASS_BOTTLE), UseAction.DRINK), ItemGroups.FOOD_AND_DRINK);
|
||||||
Item LOVE_BUCKET = register("love_bucket", new DrinkableItem(new Item.Settings().food(UFoodComponents.LOVE_BUCKET).recipeRemainder(Items.BUCKET)), ItemGroups.FOOD_AND_DRINK);
|
Item LOVE_BUCKET = register("love_bucket", new ConsumableItem(new Item.Settings().food(UFoodComponents.LOVE_BUCKET).recipeRemainder(Items.BUCKET), UseAction.DRINK), ItemGroups.FOOD_AND_DRINK);
|
||||||
Item LOVE_MUG = register("love_mug", new DrinkableItem(new Item.Settings().food(UFoodComponents.LOVE_MUG).recipeRemainder(MUG)), ItemGroups.FOOD_AND_DRINK);
|
Item LOVE_MUG = register("love_mug", new ConsumableItem(new Item.Settings().food(UFoodComponents.LOVE_MUG).recipeRemainder(MUG), UseAction.DRINK), ItemGroups.FOOD_AND_DRINK);
|
||||||
|
|
||||||
Item GOLDEN_FEATHER = register("golden_feather", new Item(new Item.Settings().rarity(Rarity.UNCOMMON)), ItemGroups.NATURAL);
|
Item GOLDEN_FEATHER = register("golden_feather", new Item(new Item.Settings().rarity(Rarity.UNCOMMON)), ItemGroups.NATURAL);
|
||||||
Item GOLDEN_WING = register("golden_wing", new Item(new Item.Settings().rarity(Rarity.UNCOMMON)), ItemGroups.NATURAL);
|
Item GOLDEN_WING = register("golden_wing", new Item(new Item.Settings().rarity(Rarity.UNCOMMON)), ItemGroups.NATURAL);
|
||||||
|
@ -226,6 +227,16 @@ public interface UItems {
|
||||||
Item TURRET_SHELL = register("turret_shell", new Item(new Item.Settings()), ItemGroups.INGREDIENTS);
|
Item TURRET_SHELL = register("turret_shell", new Item(new Item.Settings()), ItemGroups.INGREDIENTS);
|
||||||
Item SHELLY = register("shelly", new Item(new Item.Settings()), ItemGroups.INGREDIENTS);
|
Item SHELLY = register("shelly", new Item(new Item.Settings()), ItemGroups.INGREDIENTS);
|
||||||
|
|
||||||
|
Item ROTTEN_COD = register("rotten_cod", new Item(new Item.Settings().food(FoodComponents.ROTTEN_FLESH)), ItemGroups.FOOD_AND_DRINK);
|
||||||
|
Item ROTTEN_SALMON = register("rotten_salmon", new Item(new Item.Settings().food(FoodComponents.ROTTEN_FLESH)), ItemGroups.FOOD_AND_DRINK);
|
||||||
|
Item ROTTEN_TROPICAL_FISH = register("rotten_tropical_fish", new Item(new Item.Settings().food(FoodComponents.ROTTEN_FLESH)), ItemGroups.FOOD_AND_DRINK);
|
||||||
|
Item ROTTEN_PUFFERFISH = register("rotten_pufferfish", new Item(new Item.Settings().food(FoodComponents.ROTTEN_FLESH)), ItemGroups.FOOD_AND_DRINK);
|
||||||
|
|
||||||
|
Item COOKED_TROPICAL_FISH = register("cooked_tropical_fish", new Item(new Item.Settings().food(FoodComponents.COOKED_COD)), ItemGroups.FOOD_AND_DRINK);
|
||||||
|
Item COOKED_PUFFERFISH = register("cooked_pufferfish", new Item(new Item.Settings().food(FoodComponents.COOKED_COD)), ItemGroups.FOOD_AND_DRINK);
|
||||||
|
Item FRIED_AXOLOTL = register("fried_axolotl", new ConsumableItem(new Item.Settings().food(FoodComponents.COOKED_CHICKEN).recipeRemainder(Items.BUCKET), UseAction.EAT), ItemGroups.FOOD_AND_DRINK);
|
||||||
|
Item GREEN_FRIED_EGG = register("green_fried_egg", new Item(new Item.Settings().food(UFoodComponents.FRIED_EGG)), ItemGroups.FOOD_AND_DRINK);
|
||||||
|
|
||||||
Item CARAPACE = register("carapace", new Item(new Item.Settings()), ItemGroups.INGREDIENTS);
|
Item CARAPACE = register("carapace", new Item(new Item.Settings()), ItemGroups.INGREDIENTS);
|
||||||
Item CLOTH_BED = register("cloth_bed", new FancyBedItem(UBlocks.CLOTH_BED, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL);
|
Item CLOTH_BED = register("cloth_bed", new FancyBedItem(UBlocks.CLOTH_BED, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL);
|
||||||
Item CLOUD_BED = register("cloud_bed", new CloudBedItem(UBlocks.CLOUD_BED, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL);
|
Item CLOUD_BED = register("cloud_bed", new CloudBedItem(UBlocks.CLOUD_BED, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL);
|
||||||
|
|
|
@ -74,6 +74,14 @@
|
||||||
"item.unicopia.cooked_zap_apple": "Cooked Zap Apple",
|
"item.unicopia.cooked_zap_apple": "Cooked Zap Apple",
|
||||||
"item.unicopia.zap_apple": "Zap Apple",
|
"item.unicopia.zap_apple": "Zap Apple",
|
||||||
"item.unicopia.zap_bulb": "Unripened Zap Apple",
|
"item.unicopia.zap_bulb": "Unripened Zap Apple",
|
||||||
|
"item.unicopia.rotten_cod": "Rotten Cod",
|
||||||
|
"item.unicopia.rotten_salmon": "Rotten Salmon",
|
||||||
|
"item.unicopia.rotten_tropical_fish": "Rotten Tropical Fish",
|
||||||
|
"item.unicopia.rotten_pufferfish": "Rotten Pufferfish",
|
||||||
|
"item.unicopia.cooked_tropical_fish": "Cooked Tropical Fish",
|
||||||
|
"item.unicopia.cooked_pufferfish": "Cooked Pufferfish",
|
||||||
|
"item.unicopia.fried_axolotl": "Fried Axolotl",
|
||||||
|
"item.unicopia.green_fried_egg": "Green Fried Egg",
|
||||||
|
|
||||||
"item.unicopia.love_bottle": "Bottle o' Love",
|
"item.unicopia.love_bottle": "Bottle o' Love",
|
||||||
"item.unicopia.love_bucket": "Love Bucket",
|
"item.unicopia.love_bucket": "Love Bucket",
|
||||||
|
@ -1639,6 +1647,8 @@
|
||||||
"advancements.unicopia.eat_trick_apple.description": "Bite into a zap apple",
|
"advancements.unicopia.eat_trick_apple.description": "Bite into a zap apple",
|
||||||
"advancements.unicopia.eat_pinecone.title": "Desperation",
|
"advancements.unicopia.eat_pinecone.title": "Desperation",
|
||||||
"advancements.unicopia.eat_pinecone.description": "Eat a pinecone",
|
"advancements.unicopia.eat_pinecone.description": "Eat a pinecone",
|
||||||
|
"advancements.unicopia.tastes_like_chicken.title": "Tastes Like Chicken",
|
||||||
|
"advancements.unicopia.tastes_like_chicken.description": "Fry and eat an axolotl",
|
||||||
"advancements.unicopia.what_the_hay.title": "What The Hay",
|
"advancements.unicopia.what_the_hay.title": "What The Hay",
|
||||||
"advancements.unicopia.what_the_hay.description": "Eat an entire block of hay",
|
"advancements.unicopia.what_the_hay.description": "Eat an entire block of hay",
|
||||||
"advancements.unicopia.oats_so_easy.title": "Oats So Easy",
|
"advancements.unicopia.oats_so_easy.title": "Oats So Easy",
|
||||||
|
|
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 6.4 KiB |
BIN
src/main/resources/assets/unicopia/textures/item/fried_egg.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 6.6 KiB |
BIN
src/main/resources/assets/unicopia/textures/item/rotten_cod.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 6.5 KiB |
|
@ -10,6 +10,7 @@
|
||||||
"unicopia:chiselled_chitin_hull",
|
"unicopia:chiselled_chitin_hull",
|
||||||
"unicopia:chitin_spikes",
|
"unicopia:chitin_spikes",
|
||||||
"unicopia:mysterious_egg",
|
"unicopia:mysterious_egg",
|
||||||
|
"unicopia:green_fried_egg",
|
||||||
"unicopia:hive",
|
"unicopia:hive",
|
||||||
"unicopia:dark_oak_stable_door",
|
"unicopia:dark_oak_stable_door",
|
||||||
"#c:cooked_meat",
|
"#c:cooked_meat",
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
"#unicopia:bed_sheets",
|
"#unicopia:bed_sheets",
|
||||||
"#c:raw_fish",
|
"#c:raw_fish",
|
||||||
"#c:cooked_fish",
|
"#c:cooked_fish",
|
||||||
|
"#c:rotten_fish",
|
||||||
"unicopia:rain_cloud_jar",
|
"unicopia:rain_cloud_jar",
|
||||||
"unicopia:storm_cloud_jar",
|
"unicopia:storm_cloud_jar",
|
||||||
"unicopia:lightning_jar",
|
"unicopia:lightning_jar",
|
||||||
|
|