8
8
"log"
9
9
"os"
10
10
"path/filepath"
11
+ "strings"
11
12
"text/template"
12
13
13
14
"github.com/Tnze/go-mc/internal/generateutils"
@@ -56,19 +57,23 @@ func main() {
56
57
log .Fatal (err )
57
58
}
58
59
59
- generateRegistry (registries ["minecraft:block_entity_type" ], "BlockEntityType" , "blockentitytype" )
60
- generateRegistry (registries ["minecraft:entity_type" ], "EntityType" , "entitytype" )
60
+ for key , reg := range registries {
61
+ registryName := strings .TrimPrefix (key , "minecraft:" )
62
+ typeName := generateutils .ToGoTypeName (strings .ReplaceAll (registryName , "/" , "_" ))
63
+ filename := strings .NewReplacer ("_" , "" , "/" , "_" ).Replace (registryName )
64
+ generateRegistry (reg , typeName , filename )
65
+ }
61
66
}
62
67
63
- func generateRegistry (r registry , typeName , packageName string ) {
68
+ func generateRegistry (r registry , typeName , filename string ) {
64
69
entries := make ([]string , len (r .Entries ))
65
70
for name , v := range r .Entries {
66
71
entries [v .ProtocolID ] = name
67
72
}
68
73
69
74
var buff bytes.Buffer
70
75
err := temp .Execute (& buff , tempData {
71
- PackageName : packageName ,
76
+ PackageName : filename ,
72
77
Default : r .Default ,
73
78
Entries : entries ,
74
79
TypeName : typeName ,
@@ -79,10 +84,11 @@ func generateRegistry(r registry, typeName, packageName string) {
79
84
80
85
formattedSource , err := format .Source (buff .Bytes ())
81
86
if err != nil {
82
- log .Fatal (err )
87
+ log .Print (filename , err )
88
+ formattedSource = buff .Bytes ()
83
89
}
84
90
85
- err = os .WriteFile (filepath .Join (packageName , packageName + ".go" ), formattedSource , 0o666 )
91
+ err = os .WriteFile (filepath .Join (".." , filename + ".go" ), formattedSource , 0o666 )
86
92
if err != nil {
87
93
log .Fatal (err )
88
94
}
0 commit comments