37 lines
794 B
Haxe
37 lines
794 B
Haxe
package iron.data;
|
|
|
|
import iron.data.SceneFormat;
|
|
|
|
class LightData {
|
|
|
|
public var name: String;
|
|
public var raw: TLightData;
|
|
|
|
public function new(raw: TLightData, done: LightData->Void) {
|
|
this.raw = raw;
|
|
this.name = raw.name;
|
|
done(this);
|
|
}
|
|
|
|
public static inline function typeToInt(s: String): Int {
|
|
switch (s) {
|
|
case "sun": return 0;
|
|
case "point": return 1;
|
|
case "spot": return 2;
|
|
case "area": return 3;
|
|
default: return 0;
|
|
}
|
|
}
|
|
|
|
public static function parse(name: String, id: String, done: LightData->Void) {
|
|
Data.getSceneRaw(name, function(format: TSceneFormat) {
|
|
var raw: TLightData = Data.getLightRawByName(format.light_datas, id);
|
|
if (raw == null) {
|
|
trace('Light data "$id" not found!');
|
|
done(null);
|
|
}
|
|
new LightData(raw, done);
|
|
});
|
|
}
|
|
}
|