File tree Expand file tree Collapse file tree
src/main/java/dev/diamond/luafy Expand file tree Collapse file tree Original file line number Diff line number Diff 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 );
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments