Files
armorpaint/Sources/arm/data/MaterialSlot.hx
T
luboslenco a1c5b6222a Cleanup
2021-01-12 20:37:49 +01:00

59 lines
1.4 KiB
Haxe

package arm.data;
import haxe.Json;
import kha.Image;
import kha.Blob;
import zui.Nodes;
import iron.data.MaterialData;
import iron.data.Data;
import arm.util.RenderUtil;
class MaterialSlot {
public var nodes = new Nodes();
public var canvas: TNodeCanvas;
public var image: Image = null;
public var imageIcon: Image = null;
public var previewReady = false;
public var data: MaterialData;
public var id = 0;
static var defaultCanvas: Blob = null;
public var paintBase = true;
public var paintOpac = true;
public var paintOcc = true;
public var paintRough = true;
public var paintMet = true;
public var paintNor = true;
public var paintHeight = true;
public var paintEmis = true;
public var paintSubs = true;
public function new(m: MaterialData = null, c: TNodeCanvas = null) {
for (mat in Project.materials) if (mat.id >= id) id = mat.id + 1;
data = m;
var w = RenderUtil.matPreviewSize;
var wIcon = 50;
image = Image.createRenderTarget(w, w);
imageIcon = Image.createRenderTarget(wIcon, wIcon);
if (c == null) {
if (defaultCanvas == null) { // Synchronous
Data.getBlob("default_material.arm", function(b: Blob) {
defaultCanvas = b;
});
}
canvas = iron.system.ArmPack.decode(defaultCanvas.toBytes());
canvas.name = "Material " + (id + 1);
}
else {
canvas = c;
}
}
public function unload() {
image.unload();
imageIcon.unload();
}
}