Merge branch 'master' into 1.15

# Conflicts:
#	src/main/java/carpet/script/CarpetExpression.java
This commit is contained in:
gnembon committed 2019-10-13 02:55:19 -03:00
commit 7fae5c92cf
20 files changed
+553 -138

No files matched your search

@@ -54,6 +54,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.item.NetworkSyncedItem;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.Tag;
import net.minecraft.network.Packet;
import net.minecraft.particle.ParticleEffect;
import net.minecraft.predicate.entity.EntityPredicates;
@@ -2888,6 +2889,34 @@ public class CarpetExpression
CarpetServer.scriptServer.events.scheduleCall(cc, funname, args, delay);
return (c_, t_) -> Value.TRUE;
});
this.expr.addLazyFunction("get_global_state", -1, (c, t, lv) ->
{
String file = null;
if (lv.size()>0)
file = lv.get(0).evalValue(c).getString();
Tag state = ((CarpetContext)c).host.getGlobalState(file);
if (state == null)
return (cc, tt) -> Value.NULL;
Value retVal = new NBTSerializableValue(state);
return (cc, tt) -> retVal;
});
this.expr.addLazyFunction("set_global_state", -1, (c, t, lv) ->
{
if (lv.size() == 0)
throw new InternalExpressionException("save_state needs nbt tag and optional file");
Value val = lv.get(0).evalValue(c);
String file = null;
if (lv.size()>1)
file = lv.get(1).evalValue(c).getString();
NBTSerializableValue tagValue = (val instanceof NBTSerializableValue)
? (NBTSerializableValue) val
: new NBTSerializableValue(val.getString());
Tag tag = tagValue.getTag();
((CarpetContext)c).host.setGlobalState(tag, file);
return (cc, tt) -> Value.NULL;
});
}
/**