package com.thebrokenrail.scriptcraft.api.bridge; import com.thebrokenrail.scriptcraft.core.ScriptCraftCore; import com.thebrokenrail.scriptcraft.core.ValueUtil; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; class ItemStackBridges { static void register() { ScriptCraftCore.addBridge("ItemStack.create", args -> new ItemStack(Registry.ITEM.get(new Identifier((String) args[0])), ((Double) args[1]).intValue())); ScriptCraftCore.addBridge("ItemStack.getItem", args -> Registry.ITEM.getId(((ItemStack) args[0]).getItem()).toString()); ScriptCraftCore.addBridge("ItemStack.setCount", args -> { ((ItemStack) args[0]).setCount((int) ValueUtil.toDouble(args[1], 0)); return null; }); ScriptCraftCore.addBridge("ItemStack.getCount", args -> (double) ((ItemStack) args[0]).getCount()); ScriptCraftCore.addBridge("ItemStack.setDamage", args -> { ((ItemStack) args[0]).setDamage((int) ValueUtil.toDouble(args[1], 0)); return null; }); ScriptCraftCore.addBridge("ItemStack.getDamage", args -> (double) ((ItemStack) args[0]).getDamage()); ScriptCraftCore.addBridge("ItemStack.isDamageable", args -> ((ItemStack) args[0]).isDamageable()); ScriptCraftCore.addBridge("ItemStack.getTag", args -> ((ItemStack) args[0]).getTag()); ScriptCraftCore.addBridge("ItemStack.setTag", args -> { ((ItemStack) args[0]).setTag((CompoundTag) args[1]); return null; }); ScriptCraftCore.addBridge("ItemStack.toTag", args -> ((ItemStack) args[0]).toTag(new CompoundTag())); ScriptCraftCore.addBridge("ItemStack.fromTag", args -> ItemStack.fromTag((CompoundTag) args[1])); ScriptCraftCore.addBridge("ItemStack.split", args -> ((ItemStack) args[0]).split((int) ValueUtil.toDouble(args[1], 0))); } }