Skip to content

Commit 5847e65

Browse files
committed
start mmaking an nbt compount script obj
1 parent 504b7bc commit 5847e65

2 files changed

Lines changed: 42 additions & 0 deletions

File tree

src/main/java/dev/diamond/luafy/registry/ScriptObjects.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class ScriptObjects {
1616
public static Vec3dScriptObject VEC3D = new Vec3dScriptObject();
1717
public static ModScriptObject MOD = new ModScriptObject();
1818
public static ScriptResultScriptObject SCRIPT_RESULT = new ScriptResultScriptObject();
19+
public static NbtTableScriptObject NBT_TABLE = new NbtTableScriptObject();
1920

2021
// entities
2122
public static EntityScriptObject ENTITY = new EntityScriptObject();
@@ -31,6 +32,7 @@ public static void registerAll() {
3132
Registry.register(LuafyRegistries.SCRIPT_OBJECTS, Luafy.id("vec3d"), VEC3D);
3233
Registry.register(LuafyRegistries.SCRIPT_OBJECTS, Luafy.id("mod"), MOD);
3334
Registry.register(LuafyRegistries.SCRIPT_OBJECTS, Luafy.id("script_result"), SCRIPT_RESULT);
35+
Registry.register(LuafyRegistries.SCRIPT_OBJECTS, Luafy.id("nbt_table"), NBT_TABLE);
3436

3537
Registry.register(LuafyRegistries.SCRIPT_OBJECTS, Luafy.id("entity"), ENTITY);
3638
Registry.register(LuafyRegistries.SCRIPT_OBJECTS, Luafy.id("living_entity"), LIVING_ENTITY);
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package dev.diamond.luafy.script.object;
2+
3+
import dev.diamond.luafy.lua.LuaTableBuilder;
4+
import dev.diamond.luafy.lua.MetamethodNames;
5+
import dev.diamond.luafy.script.LuaScript;
6+
import net.minecraft.commands.CommandSourceStack;
7+
import net.minecraft.nbt.CompoundTag;
8+
import org.luaj.vm2.LuaString;
9+
import org.luaj.vm2.LuaTable;
10+
import org.luaj.vm2.LuaValue;
11+
12+
13+
public class NbtTableScriptObject extends AbstractScriptObject<CompoundTag> {
14+
public static final String PROP_TABLE = "_table";
15+
16+
public NbtTableScriptObject() {
17+
super("NBT Compound Tag", args -> {
18+
19+
});
20+
}
21+
22+
@Override
23+
public void toTable(CompoundTag obj, LuaTableBuilder builder, LuaScript script) {
24+
LuaTable table = LuaTableBuilder.fromNbtCompound(obj);
25+
26+
builder.add(PROP_TABLE, table);
27+
28+
builder.addMetamethod(MetamethodNames.TO_STRING, args -> LuaString.valueOf(obj.toString()));
29+
}
30+
31+
@Override
32+
public CompoundTag toThing(LuaTable table, CommandSourceStack src, LuaScript script) {
33+
return null;
34+
}
35+
36+
@Override
37+
public String getArgtypeString() {
38+
return "";
39+
}
40+
}

0 commit comments

Comments
 (0)