Skip to content

Commit

Permalink
Fix Quern tag recipe issues. Closes #240
Browse files Browse the repository at this point in the history
  • Loading branch information
GirafiStudios committed May 14, 2021
1 parent bbccf18 commit d8eb85c
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@
import com.google.gson.JsonObject;
import com.google.gson.JsonSyntaxException;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipeSerializer;
import net.minecraft.item.crafting.IRecipeType;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.item.crafting.ShapedRecipe;
import net.minecraft.network.PacketBuffer;
import net.minecraft.tags.ITag;
import net.minecraft.tags.ItemTags;
import net.minecraft.tags.TagCollectionManager;
import net.minecraft.util.JSONUtils;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.crafting.CraftingHelper;
Expand Down Expand Up @@ -49,20 +47,17 @@ public C read(@Nonnull ResourceLocation id, @Nonnull JsonObject json) {
JsonObject inputObject = JSONUtils.getJsonObject(json, "ingredient");
Ingredient input;
if (inputObject.has("tag")) { //Only read as Ingredient directly, when it's a tag
ResourceLocation tagLocation = new ResourceLocation(JSONUtils.getString(inputObject, "tag"));
ITag<Item> tag = ItemTags.getCollection().get(tagLocation);
if (tag != null && !tag.getAllElements().isEmpty()) { //Support empty tags, for mod support
Ingredient ingredient = CraftingHelper.getIngredient(inputObject);
if (this.inputCanHaveCount && inputObject.has("count")) {
List<ItemStack> ingredientStacks = new ArrayList<>();
for (ItemStack stack : ingredient.getMatchingStacks()) {
ingredientStacks.add(new ItemStack(stack.getItem(), JSONUtils.getInt(inputObject, "count", 1)));
}
input = Ingredient.fromStacks(ingredientStacks.toArray(new ItemStack[0]));
} else {
input = ingredient;
Ingredient ingredient = CraftingHelper.getIngredient(inputObject);
if (this.inputCanHaveCount && inputObject.has("count")) {
List<ItemStack> ingredientStacks = new ArrayList<>();
for (ItemStack stack : ingredient.getMatchingStacks()) {
ingredientStacks.add(new ItemStack(stack.getItem(), JSONUtils.getInt(inputObject, "count", 1)));
}
input = Ingredient.fromStacks(ingredientStacks.toArray(new ItemStack[0]));
} else {
input = ingredient;
}
if (TagCollectionManager.getManager().getItemTags().getTagByID(new ResourceLocation(JSONUtils.getString(inputObject, "tag"))).getAllElements().size() == 0) { //Support empty tags, for mod support
input = Ingredient.EMPTY;
}
} else if (!this.inputCanHaveCount) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public QuernRecipe(@Nonnull ItemStack input, @Nonnull ItemStack output, int rota
}

public QuernRecipe(Ingredient input, @Nonnull ItemStack output, int rotations) {
this(new ResourceLocation(Atum.MOD_ID, "spinning_wheel"), input, output, rotations);
this(new ResourceLocation(Atum.MOD_ID, "quern"), input, output, rotations);
}

public QuernRecipe(ResourceLocation id, Ingredient input, @Nonnull ItemStack output, int rotations) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ public Race getRace() {
return this.race;
}

@Override
public int getLevel() {
return this.level;
}

@Nonnull
public AtumVillagerData withProfession(@Nonnull AtumVillagerProfession profession) {
return new AtumVillagerData(profession, this.getLevel(), this.getRace());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,11 +213,10 @@ public Entity changeDimension(@Nonnull ServerWorld server, @Nonnull ITeleporter
}

@Override
@Nonnull
@Deprecated
//Use getAtumVillagerData
public VillagerData getVillagerData() {
return super.getVillagerData();
return null;
}

public AtumVillagerData getAtumVillagerData() {
Expand All @@ -228,6 +227,8 @@ public AtumVillagerData getAtumVillagerData() {
public void setVillagerData(@Nonnull VillagerData data) {
if (data instanceof AtumVillagerData) {
this.setAtumVillagerData((AtumVillagerData) data);
} else {
Atum.LOG.debug("VillagerData present, but shouldn't be.");
}
//Ignore places where vanilla sets villager data
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,15 @@
public class AtumDataSerializer {
private static final List<DataSerializerEntry> DATA_SERIALIZER_ENTRIES = new ArrayList<>();
public static final IDataSerializer<AtumVillagerData> VILLAGER_DATA = new IDataSerializer<AtumVillagerData>() {
@Override
public void write(PacketBuffer buf, AtumVillagerData value) {
buf.writeString(AtumRegistry.VILLAGER_PROFESSION.get().getKey(value.getAtumProfession()).toString());
buf.writeVarInt(value.getLevel());
buf.writeEnumValue(value.getRace());
}

@Override
@Nonnull
public AtumVillagerData read(PacketBuffer buf) {
return new AtumVillagerData(AtumRegistry.VILLAGER_PROFESSION.get().getValue(new ResourceLocation(buf.readString())), buf.readVarInt(), buf.readEnumValue(Race.class));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public class AtumPointsOfInterest {
public static final PointOfInterestType PORTAL = register("portal", getAllStates(AtumBlocks.PORTAL), 0, 1);
public static final PointOfInterestType UNEMPLOYED = register("unemployed", ImmutableSet.of(), 1, ANY_VILLAGER_WORKSTATION, 1);
public static final PointOfInterestType CURATOR = register("curator", CURIO_DISPLAYS, 1, 1);
public static final PointOfInterestType GLASSBLOWER = register("glassblower", getAllStates(AtumBlocks.GLASSBLOWER_FURNACE), 0, 1);
public static final PointOfInterestType GLASSBLOWER = register("glassblower", getAllStates(AtumBlocks.GLASSBLOWER_FURNACE), 1, 1);

public static PointOfInterestType register(String name, Set<BlockState> states, int maxFreeTickets, int validRange) {
ResourceLocation id = new ResourceLocation(Atum.MOD_ID, name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class GenericVillagePools {
public static void init() {
ResourceLocation terminators = new ResourceLocation(Atum.MOD_ID, "village/generic/terminators");
JigsawPatternRegistry.func_244094_a(new JigsawPattern(new ResourceLocation(Atum.MOD_ID, "village/generic/streets"), terminators, ImmutableList.of(Pair.of(JigsawPiece.func_242849_a("atum:village/generic/streets/straight_1"), 5), Pair.of(JigsawPiece.func_242849_a("atum:village/generic/streets/fourway_1"), 3), Pair.of(JigsawPiece.func_242849_a("atum:village/generic/streets/threeway_1"), 3), Pair.of(JigsawPiece.func_242849_a("atum:village/generic/streets/turn_1"), 3), Pair.of(JigsawPiece.func_242849_a("atum:village/generic/streets/turn_2"), 3)), JigsawPattern.PlacementBehaviour.TERRAIN_MATCHING));
JigsawPatternRegistry.func_244094_a(new JigsawPattern(new ResourceLocation(Atum.MOD_ID, "village/generic/houses"), terminators, ImmutableList.of(Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_2", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_3", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_4", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_5", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_6", ProcessorLists.field_244101_a), 1), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_7", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_8", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/animal_pen_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/farm_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/farm_2", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/farm_3", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/market_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/palm_grove_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/wolf_kennel_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/quail_coop_1", ProcessorLists.field_244101_a), 1), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/alchemist", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/armorsmith", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/butcher", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/cartographer", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/curator", ProcessorLists.field_244101_a), 1), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/fletcher", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/glassblower", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/hunter", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/tailor", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/librarian", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/weaponsmith", ProcessorLists.field_244101_a), 2)), JigsawPattern.PlacementBehaviour.RIGID));
JigsawPatternRegistry.func_244094_a(new JigsawPattern(new ResourceLocation(Atum.MOD_ID, "village/generic/houses"), terminators, ImmutableList.of(Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_2", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_3", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_4", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_5", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_6", ProcessorLists.field_244101_a), 1), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_7", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/generic_small_house_8", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/animal_pen_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/farm_1", ProcessorLists.field_244101_a), 3), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/farm_2", ProcessorLists.field_244101_a), 3), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/farm_3", ProcessorLists.field_244101_a), 3), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/market_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/palm_grove_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/wolf_kennel_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/quail_coop_1", ProcessorLists.field_244101_a), 1), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/alchemist", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/armorsmith", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/butcher", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/cartographer", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/curator", ProcessorLists.field_244101_a), 1), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/fletcher", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/glassblower", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/hunter", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/tailor", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/librarian", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/houses/weaponsmith", ProcessorLists.field_244101_a), 2)), JigsawPattern.PlacementBehaviour.RIGID));
JigsawPatternRegistry.func_244094_a(new JigsawPattern(new ResourceLocation(Atum.MOD_ID, "village/generic/market_stalls"), terminators, ImmutableList.of(Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_1", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_2", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_3", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_4", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_5", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_6", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_7", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_8", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_9", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_10", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_11", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_12", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_13", ProcessorLists.field_244101_a), 2), Pair.of(JigsawPiece.func_242851_a("atum:village/generic/market_stalls/market_stall_14", ProcessorLists.field_244101_a), 2)), JigsawPattern.PlacementBehaviour.RIGID));
JigsawPatternRegistry.func_244094_a(new JigsawPattern(terminators, new ResourceLocation("empty"), ImmutableList.of(Pair.of(JigsawPiece.func_242849_a("atum:village/generic/terminators/terminator_1"), 1)), JigsawPattern.PlacementBehaviour.TERRAIN_MATCHING));
JigsawPatternRegistry.func_244094_a(new JigsawPattern(new ResourceLocation(Atum.MOD_ID, "village/generic/decor"), new ResourceLocation("empty"), ImmutableList.of(Pair.of(JigsawPiece.func_242849_a("atum:village/generic/decor/torch_1"), 1), Pair.of(JigsawPiece.func_242849_a("atum:village/generic/decor/torch_2"), 1), Pair.of(JigsawPiece.func_242849_a("atum:village/generic/decor/torch_3"), 1), Pair.of(JigsawPiece.func_242849_a("atum:village/generic/decor/torch_4"), 1), Pair.of(JigsawPiece.func_242849_a("atum:village/generic/decor/tree_1"), 1), Pair.of(JigsawPiece.func_242864_g(), 10)), JigsawPattern.PlacementBehaviour.RIGID));
Expand Down

0 comments on commit d8eb85c

Please sign in to comment.