Skip to content

Commit

Permalink
Possibility to add NBT data for Infusion recipes output (#215)
Browse files Browse the repository at this point in the history
  • Loading branch information
Bulldog83 committed Jun 30, 2021
1 parent 13e169c commit 3f225c5
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 25 deletions.
26 changes: 13 additions & 13 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,30 +43,30 @@ dependencies {

def useOptional(String dep) {
dependencies.modRuntime (dep) {
exclude group: "net.fabricmc.fabric-api"
exclude group: "net.fabricmc"
exclude group: 'net.fabricmc.fabric-api'
exclude group: 'net.fabricmc'
if (!dep.contains("me.shedaniel")) {
exclude group: "me.shedaniel.cloth"
exclude group: "me.shedaniel"
exclude group: 'me.shedaniel.cloth'
exclude group: 'me.shedaniel'
}
}
dependencies.modCompileOnly (dep) {
exclude group: "net.fabricmc.fabric-api"
exclude group: "net.fabricmc"
exclude group: 'net.fabricmc.fabric-api'
exclude group: 'net.fabricmc'
if (!dep.contains("me.shedaniel")) {
exclude group: "me.shedaniel.cloth"
exclude group: "me.shedaniel"
exclude group: 'me.shedaniel.cloth'
exclude group: 'me.shedaniel'
}
}
}

def useApi(String dep) {
dependencies.modApi (dep) {
exclude group: "net.fabricmc.fabric-api"
exclude group: "net.fabricmc"
exclude group: 'net.fabricmc.fabric-api'
exclude group: 'net.fabricmc'
if (!dep.contains("me.shedaniel")) {
exclude group: "me.shedaniel.cloth"
exclude group: "me.shedaniel"
exclude group: 'me.shedaniel.cloth'
exclude group: 'me.shedaniel'
}
}
}
Expand Down Expand Up @@ -162,4 +162,4 @@ task release(dependsOn: [remapJar, sourcesJar, javadocJar]) {
// // uncomment to publish to the local maven
// // mavenLocal()
// }
//}
//}
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ archives_base_name = better-end

# Dependencies
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
patchouli_version = 50-FABRIC
fabric_version = 0.32.9+1.16
canvas_version = 1.0.+
patchouli_version = 53-FABRIC
fabric_version = 0.36.0+1.16
bclib_version = 0.1.44
rei_version = 5.8.10
rei_version = 5.12.248
canvas_version = 1.0.+
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ public void be_canBeAffected(MobEffectInstance mobEffectInstance, CallbackInfoRe
info.setReturnValue(false);
}
} catch (Exception ex) {
BetterEnd.LOGGER.warning("Blindness resistance attribute haven't registered.");
BetterEnd.LOGGER.warning("Blindness resistance attribute haven't been registered.");
}
}

Expand Down
13 changes: 6 additions & 7 deletions src/main/java/ru/betterend/particle/InfusionParticleType.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@
import ru.betterend.registry.EndParticles;

public class InfusionParticleType extends ParticleType<InfusionParticleType> implements ParticleOptions {
public static final Codec<InfusionParticleType> CODEC = ItemStack.CODEC.xmap(itemStack -> {
return new InfusionParticleType(EndParticles.INFUSION, itemStack);
}, infusionParticleType -> {
return infusionParticleType.itemStack;
});
public static final Codec<InfusionParticleType> CODEC = ItemStack.CODEC.xmap(
itemStack -> new InfusionParticleType(EndParticles.INFUSION, itemStack),
infusionParticleType -> infusionParticleType.itemStack);

public static final ParticleOptions.Deserializer<InfusionParticleType> PARAMETERS_FACTORY = new ParticleOptions.Deserializer<InfusionParticleType>() {
public InfusionParticleType fromCommand(ParticleType<InfusionParticleType> particleType, StringReader stringReader) throws CommandSyntaxException {
stringReader.expect(' ');
Expand All @@ -35,8 +34,8 @@ public InfusionParticleType fromNetwork(ParticleType<InfusionParticleType> parti
}
};

private ParticleType<InfusionParticleType> type;
private ItemStack itemStack;
private final ParticleType<InfusionParticleType> type;
private final ItemStack itemStack;

public InfusionParticleType(ParticleType<InfusionParticleType> particleType, ItemStack stack) {
super(true, PARAMETERS_FACTORY);
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/ru/betterend/recipe/builders/InfusionRecipe.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@

import com.google.gson.JsonObject;

import com.mojang.brigadier.exceptions.CommandSyntaxException;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.util.NbtType;
import net.minecraft.core.NonNullList;
import net.minecraft.nbt.*;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagLoader;
import net.minecraft.util.GsonHelper;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.Ingredient;
Expand All @@ -17,6 +21,7 @@
import net.minecraft.world.item.crafting.RecipeType;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.storage.loot.GsonAdapterFactory;
import ru.bclib.recipes.BCLRecipeManager;
import ru.betterend.BetterEnd;
import ru.betterend.config.Configs;
Expand Down Expand Up @@ -209,6 +214,15 @@ public InfusionRecipe fromJson(ResourceLocation id, JsonObject json) {
if (recipe.output == null) {
throw new IllegalStateException("Output item does not exists!");
}
if (result.has("nbt")) {
try {
String nbtData = GsonHelper.getAsString(result, "nbt");
CompoundTag nbt = TagParser.parseTag(nbtData);
recipe.output.setTag(nbt);
} catch (CommandSyntaxException ex) {
BetterEnd.LOGGER.warning("Error parse nbt data for output.", ex);
}
}
recipe.group = GsonHelper.getAsString(json, "group", GROUP);
recipe.time = GsonHelper.getAsInt(json, "time", 1);

Expand Down

0 comments on commit 3f225c5

Please sign in to comment.