pgtools 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +25 -25
  3. data/bin/bxm_decoder +2 -2
  4. data/bin/bxm_encoder +2 -2
  5. data/bin/clh_convert +2 -2
  6. data/bin/clp_convert +2 -2
  7. data/bin/clw_convert +2 -2
  8. data/bin/dat_creator +2 -2
  9. data/bin/dat_extractor +2 -2
  10. data/bin/dat_ls +2 -2
  11. data/bin/eff_idd_creator +2 -2
  12. data/bin/eff_idd_extractor +2 -2
  13. data/bin/exp_convert_wiiu_pc +2 -2
  14. data/bin/exp_tool +2 -2
  15. data/bin/mot_convert_wiiu_pc +2 -2
  16. data/bin/mot_tool +2 -2
  17. data/bin/pkz_extractor +2 -2
  18. data/bin/scr_creator +2 -2
  19. data/bin/scr_extractor +2 -2
  20. data/bin/wmb_cleanup +2 -2
  21. data/bin/wmb_common_bones +2 -2
  22. data/bin/wmb_convert_pc_switch +2 -2
  23. data/bin/wmb_convert_wiiu_pc +2 -2
  24. data/bin/wmb_export_assimp +2 -2
  25. data/bin/wmb_get_bone_map +2 -2
  26. data/bin/wmb_import_assimp +2 -2
  27. data/bin/wmb_import_nier +2 -2
  28. data/bin/wmb_import_wiiu +2 -2
  29. data/bin/wtb_convert_wiiu_pc +2 -2
  30. data/bin/wtx_creator +2 -2
  31. data/bin/wtx_extractor +2 -2
  32. data/lib/bayonetta/alignment.rb +0 -0
  33. data/lib/bayonetta/bone.rb +0 -0
  34. data/lib/bayonetta/bxm.rb +180 -180
  35. data/lib/bayonetta/clh.rb +159 -159
  36. data/lib/bayonetta/clp.rb +212 -212
  37. data/lib/bayonetta/clw.rb +166 -166
  38. data/lib/bayonetta/dat.rb +261 -261
  39. data/lib/bayonetta/eff.rb +314 -314
  40. data/lib/bayonetta/endianness.rb +0 -0
  41. data/lib/bayonetta/exp.rb +768 -768
  42. data/lib/bayonetta/linalg.rb +416 -416
  43. data/lib/bayonetta/material_database.yaml +2581 -2581
  44. data/lib/bayonetta/mot.rb +763 -763
  45. data/lib/bayonetta/pkz.rb +63 -63
  46. data/lib/bayonetta/scr.rb +0 -0
  47. data/lib/bayonetta/tools/bxm_decoder.rb +23 -23
  48. data/lib/bayonetta/tools/bxm_encoder.rb +37 -37
  49. data/lib/bayonetta/tools/clh_convert.rb +60 -60
  50. data/lib/bayonetta/tools/clp_convert.rb +70 -70
  51. data/lib/bayonetta/tools/clw_convert.rb +60 -60
  52. data/lib/bayonetta/tools/dat_creator.rb +57 -57
  53. data/lib/bayonetta/tools/dat_extractor.rb +94 -94
  54. data/lib/bayonetta/tools/dat_ls.rb +106 -106
  55. data/lib/bayonetta/tools/eff_idd_creator.rb +66 -66
  56. data/lib/bayonetta/tools/eff_idd_extractor.rb +73 -73
  57. data/lib/bayonetta/tools/exp_convert_wiiu_pc.rb +33 -33
  58. data/lib/bayonetta/tools/exp_tool.rb +48 -48
  59. data/lib/bayonetta/tools/mot_convert_wiiu_pc.rb +33 -33
  60. data/lib/bayonetta/tools/mot_tool.rb +0 -0
  61. data/lib/bayonetta/tools/pkz_extractor.rb +75 -75
  62. data/lib/bayonetta/tools/scr_creator.rb +63 -63
  63. data/lib/bayonetta/tools/scr_extractor.rb +78 -78
  64. data/lib/bayonetta/tools/wmb_cleanup.rb +250 -250
  65. data/lib/bayonetta/tools/wmb_common_bones.rb +45 -45
  66. data/lib/bayonetta/tools/wmb_convert_pc_switch.rb +35 -35
  67. data/lib/bayonetta/tools/wmb_convert_wiiu_pc.rb +33 -33
  68. data/lib/bayonetta/tools/wmb_export_assimp.rb +479 -479
  69. data/lib/bayonetta/tools/wmb_get_bone_map.rb +50 -50
  70. data/lib/bayonetta/tools/wmb_import_assimp.rb +735 -735
  71. data/lib/bayonetta/tools/wmb_import_geometry_wiiu_pc.rb +472 -472
  72. data/lib/bayonetta/tools/wmb_import_nier.rb +309 -309
  73. data/lib/bayonetta/tools/wtb_convert_wiiu_pc.rb +95 -95
  74. data/lib/bayonetta/tools/wtb_import_textures.rb +103 -103
  75. data/lib/bayonetta/tools/wtx_creator.rb +69 -69
  76. data/lib/bayonetta/tools/wtx_extractor.rb +85 -85
  77. data/lib/bayonetta/vertex_types.yaml +0 -0
  78. data/lib/bayonetta/vertex_types2.yaml +0 -0
  79. data/lib/bayonetta/vertex_types_nier.yaml +145 -145
  80. data/lib/bayonetta/wmb.rb +2455 -2443
  81. data/lib/bayonetta/wmb3.rb +759 -759
  82. data/lib/bayonetta/wtb.rb +481 -481
  83. data/lib/bayonetta.rb +60 -60
  84. metadata +2 -2
data/lib/bayonetta/clh.rb CHANGED
@@ -1,159 +1,159 @@
1
- module Bayonetta
2
-
3
- class CLHFile < LibBin::Structure
4
-
5
- class FVector < LibBin::Structure
6
- float :x
7
- float :y
8
- float :z
9
-
10
- def from_bxm_vector(v)
11
- @x, @y, @z = v.split(" ").collect(&:to_f)
12
- self
13
- end
14
-
15
- def self.from_bxm_vector(v)
16
- nv = self::new
17
- nv.from_bxm_vector(v)
18
- nv
19
- end
20
-
21
- end
22
-
23
- class ClothAT < LibBin::Structure
24
- int16 :p1
25
- int16 :p2
26
- float :weight
27
- float :radius
28
- register_field :offset1, FVector
29
- register_field :offset2, FVector
30
-
31
- def from_bxm_cloth_at(h)
32
- @p1 = h.at_css("p1").content.to_i
33
- @p2 = h.at_css("p2").content.to_i
34
- @weight = h.at_css("weight").content.to_f
35
- @radius = h.at_css("radius").content.to_f
36
- @offset1 = FVector.from_bxm_vector(h.at_css("offset1").content)
37
- @offset2 = FVector.from_bxm_vector(h.at_css("offset2").content)
38
- self
39
- end
40
-
41
- def self.from_bxm_cloth_at(c)
42
- clat = self::new
43
- clat.from_bxm_cloth_at(c)
44
- clat
45
- end
46
-
47
- def remap(map)
48
- @p1 = check_and_remap_bone(map, @p1)
49
- @p2 = check_and_remap_bone(map, @p2)
50
- end
51
-
52
- private
53
- def check_and_remap_bone(map, no)
54
- tmp = map[no]
55
- raise "No bone found in map for #{no}!" unless tmp
56
- tmp
57
- end
58
-
59
- end
60
-
61
- int32 :cloth_at_num
62
- register_field :cloth_at, ClothAT, count: 'cloth_at_num'
63
-
64
- def was_big?
65
- @__was_big
66
- end
67
-
68
- def remap(map)
69
- @cloth_at.each { |c|
70
- c.remap(map)
71
- }
72
- end
73
-
74
- def self.load_bxm(input_name)
75
- bxm = BXMFile::load(input_name)
76
- clat = self::new
77
-
78
- doc = bxm.to_xml
79
- clat.cloth_at_num = doc.at_css("//CLOTH_AT//CLOTH_AT_NUM").content.to_i
80
-
81
- clat.cloth_at = doc.css("//CLOTH_AT//CLOTH_AT_WK").collect { |c|
82
- ClothAT.from_bxm_cloth_at(c)
83
- }
84
- clat
85
- end
86
-
87
- def self.is_big?(f)
88
- f.rewind
89
- f.size
90
- block = lambda { |int|
91
- num = f.read(4).unpack(int).first
92
- ( num >= 0 ) && ( num < 256 )
93
- }
94
- big = block.call("l>")
95
- f.rewind
96
- small = block.call("l<")
97
- f.rewind
98
- raise "Invalid data!" unless big ^ small
99
- return big
100
- end
101
-
102
- def self.convert(input_name, output_name, output_big = false)
103
- if input_name.respond_to?(:read) && input_name.respond_to?(:seek)
104
- input = input_name
105
- else
106
- input = File.open(input_name, "rb")
107
- end
108
- input_big = is_big?(input)
109
-
110
- if output_name.respond_to?(:write) && output_name.respond_to?(:seek)
111
- output = output_name
112
- else
113
- output = File.open(output_name, "wb")
114
- end
115
- output.rewind
116
-
117
- clp = self::new
118
- clp.instance_variable_set(:@__was_big, input_big)
119
- clp.__convert(input, output, input_big, output_big)
120
-
121
- input.close unless input_name.respond_to?(:read) && input_name.respond_to?(:seek)
122
- output.close unless output_name.respond_to?(:write) && output_name.respond_to?(:seek)
123
- clp
124
- end
125
-
126
- def self.load(input_name)
127
- if input_name.respond_to?(:read) && input_name.respond_to?(:seek)
128
- input = input_name
129
- else
130
- input = File.open(input_name, "rb")
131
- end
132
- input_big = is_big?(input)
133
-
134
- clp = self::new
135
- clp.instance_variable_set(:@__was_big, input_big)
136
- clp.__load(input, input_big)
137
- input.close unless input_name.respond_to?(:read) && input_name.respond_to?(:seek)
138
- clp
139
- end
140
-
141
- def dump(output_name, output_big = false)
142
- if output_name.respond_to?(:write) && output_name.respond_to?(:seek)
143
- output = output_name
144
- else
145
- output = File.open(output_name, "wb")
146
- end
147
- output.rewind
148
-
149
- __set_dump_state(output, output_big, nil, nil)
150
- __dump_fields
151
- __unset_dump_state
152
-
153
- output.close unless output_name.respond_to?(:write) && output_name.respond_to?(:seek)
154
- self
155
- end
156
-
157
- end
158
-
159
- end
1
+ module Bayonetta
2
+
3
+ class CLHFile < LibBin::Structure
4
+
5
+ class FVector < LibBin::Structure
6
+ float :x
7
+ float :y
8
+ float :z
9
+
10
+ def from_bxm_vector(v)
11
+ @x, @y, @z = v.split(" ").collect(&:to_f)
12
+ self
13
+ end
14
+
15
+ def self.from_bxm_vector(v)
16
+ nv = self::new
17
+ nv.from_bxm_vector(v)
18
+ nv
19
+ end
20
+
21
+ end
22
+
23
+ class ClothAT < LibBin::Structure
24
+ int16 :p1
25
+ int16 :p2
26
+ float :weight
27
+ float :radius
28
+ register_field :offset1, FVector
29
+ register_field :offset2, FVector
30
+
31
+ def from_bxm_cloth_at(h)
32
+ @p1 = h.at_css("p1").content.to_i
33
+ @p2 = h.at_css("p2").content.to_i
34
+ @weight = h.at_css("weight").content.to_f
35
+ @radius = h.at_css("radius").content.to_f
36
+ @offset1 = FVector.from_bxm_vector(h.at_css("offset1").content)
37
+ @offset2 = FVector.from_bxm_vector(h.at_css("offset2").content)
38
+ self
39
+ end
40
+
41
+ def self.from_bxm_cloth_at(c)
42
+ clat = self::new
43
+ clat.from_bxm_cloth_at(c)
44
+ clat
45
+ end
46
+
47
+ def remap(map)
48
+ @p1 = check_and_remap_bone(map, @p1)
49
+ @p2 = check_and_remap_bone(map, @p2)
50
+ end
51
+
52
+ private
53
+ def check_and_remap_bone(map, no)
54
+ tmp = map[no]
55
+ raise "No bone found in map for #{no}!" unless tmp
56
+ tmp
57
+ end
58
+
59
+ end
60
+
61
+ int32 :cloth_at_num
62
+ register_field :cloth_at, ClothAT, count: 'cloth_at_num'
63
+
64
+ def was_big?
65
+ @__was_big
66
+ end
67
+
68
+ def remap(map)
69
+ @cloth_at.each { |c|
70
+ c.remap(map)
71
+ }
72
+ end
73
+
74
+ def self.load_bxm(input_name)
75
+ bxm = BXMFile::load(input_name)
76
+ clat = self::new
77
+
78
+ doc = bxm.to_xml
79
+ clat.cloth_at_num = doc.at_css("//CLOTH_AT//CLOTH_AT_NUM").content.to_i
80
+
81
+ clat.cloth_at = doc.css("//CLOTH_AT//CLOTH_AT_WK").collect { |c|
82
+ ClothAT.from_bxm_cloth_at(c)
83
+ }
84
+ clat
85
+ end
86
+
87
+ def self.is_big?(f)
88
+ f.rewind
89
+ f.size
90
+ block = lambda { |int|
91
+ num = f.read(4).unpack(int).first
92
+ ( num >= 0 ) && ( num < 256 )
93
+ }
94
+ big = block.call("l>")
95
+ f.rewind
96
+ small = block.call("l<")
97
+ f.rewind
98
+ raise "Invalid data!" unless big ^ small
99
+ return big
100
+ end
101
+
102
+ def self.convert(input_name, output_name, output_big = false)
103
+ if input_name.respond_to?(:read) && input_name.respond_to?(:seek)
104
+ input = input_name
105
+ else
106
+ input = File.open(input_name, "rb")
107
+ end
108
+ input_big = is_big?(input)
109
+
110
+ if output_name.respond_to?(:write) && output_name.respond_to?(:seek)
111
+ output = output_name
112
+ else
113
+ output = File.open(output_name, "wb")
114
+ end
115
+ output.rewind
116
+
117
+ clp = self::new
118
+ clp.instance_variable_set(:@__was_big, input_big)
119
+ clp.__convert(input, output, input_big, output_big)
120
+
121
+ input.close unless input_name.respond_to?(:read) && input_name.respond_to?(:seek)
122
+ output.close unless output_name.respond_to?(:write) && output_name.respond_to?(:seek)
123
+ clp
124
+ end
125
+
126
+ def self.load(input_name)
127
+ if input_name.respond_to?(:read) && input_name.respond_to?(:seek)
128
+ input = input_name
129
+ else
130
+ input = File.open(input_name, "rb")
131
+ end
132
+ input_big = is_big?(input)
133
+
134
+ clp = self::new
135
+ clp.instance_variable_set(:@__was_big, input_big)
136
+ clp.__load(input, input_big)
137
+ input.close unless input_name.respond_to?(:read) && input_name.respond_to?(:seek)
138
+ clp
139
+ end
140
+
141
+ def dump(output_name, output_big = false)
142
+ if output_name.respond_to?(:write) && output_name.respond_to?(:seek)
143
+ output = output_name
144
+ else
145
+ output = File.open(output_name, "wb")
146
+ end
147
+ output.rewind
148
+
149
+ __set_dump_state(output, output_big, nil, nil)
150
+ __dump_fields
151
+ __unset_dump_state
152
+
153
+ output.close unless output_name.respond_to?(:write) && output_name.respond_to?(:seek)
154
+ self
155
+ end
156
+
157
+ end
158
+
159
+ end