This commit is contained in:
luboslenco
2024-01-17 18:53:31 +01:00
parent 29a20dd5ce
commit ee67b50c0f
268 changed files with 29303 additions and 31304 deletions
-10
View File
@@ -1,10 +0,0 @@
package ;
class Manifest {
public static inline var title = "ArmorForge";
public static inline var version = "0.1";
public static inline var url = "https://armorforge.org";
public static inline var url_android = "";
public static inline var url_ios = "";
}
+9
View File
@@ -0,0 +1,9 @@
class Manifest {
static title = "ArmorForge";
static version = "0.1";
static url = "https://armorforge.org";
static url_android = "";
static url_ios = "";
}
@@ -1,33 +1,20 @@
package arm;
import haxe.Json;
import zui.Zui;
import iron.Vec4;
import iron.Object;
import iron.Scene;
import iron.SceneFormat;
import iron.Data;
import iron.MaterialData;
import iron.MeshObject;
import iron.LightObject;
import iron.CameraObject;
class TabObjects {
static var materialId = 0;
static materialId = 0;
static function roundfp(f: Float, precision = 2): Float {
f *= std.Math.pow(10, precision);
return std.Math.round(f) / std.Math.pow(10, precision);
static roundfp = (f: f32, precision = 2): f32 => {
f *= Math.pow(10, precision);
return Math.round(f) / Math.pow(10, precision);
}
public static function draw(htab: Handle) {
var ui = UIBase.inst.ui;
static draw = (htab: Handle) => {
let ui = UIBase.inst.ui;
if (ui.tab(htab, tr("Objects"))) {
ui.beginSticky();
ui.row([1 / 4]);
if (ui.button("Import")) {
Project.importMesh(false, function() {
Project.importMesh(false, () => {
Project.paintObjects.pop().setParent(null);
});
}
@@ -37,13 +24,13 @@ class TabObjects {
// ui.indent();
ui._y -= ui.ELEMENT_OFFSET();
var listX = ui._x;
var listW = ui._w;
let listX = ui._x;
let listW = ui._w;
var lineCounter = 0;
function drawList(listHandle: zui.Zui.Handle, currentObject: Object) {
let lineCounter = 0;
drawList(listHandle: zui.Zui.Handle, currentObject: BaseObject) => {
if (currentObject.name.charAt(0) == ".") return; // Hidden
var b = false;
let b = false;
// Highlight every other line
if (lineCounter % 2 == 0) {
@@ -85,22 +72,22 @@ class TabObjects {
}
if (ui.isHovered && ui.inputReleasedR) {
UIMenu.draw(function(ui: Zui) {
UIMenu.draw((ui: Zui) => {
if (UIMenu.menuButton(ui, "Assign Material")) {
materialId++;
for (sh in Scene.active.raw.shader_datas) {
for (let sh of Scene.active.raw.shader_datas) {
if (sh.name == "Material_data") {
var s: TShaderData = Json.parse(Json.stringify(sh));
let s: TShaderData = JSON.parse(JSON.stringify(sh));
s.name = "TempMaterial_data" + materialId;
Scene.active.raw.shader_datas.push(s);
break;
}
}
for (mat in Scene.active.raw.material_datas) {
for (let mat of Scene.active.raw.material_datas) {
if (mat.name == "Material") {
var m: TMaterialData = Json.parse(Json.stringify(mat));
let m: TMaterialData = JSON.parse(JSON.stringify(mat));
m.name = "TempMaterial" + materialId;
m.shader = "TempMaterial_data" + materialId;
Scene.active.raw.material_datas.push(m);
@@ -108,8 +95,8 @@ class TabObjects {
}
}
Data.getMaterial("Scene", "TempMaterial" + materialId, function(md: MaterialData) {
var mo: MeshObject = cast currentObject;
Data.getMaterial("Scene", "TempMaterial" + materialId, (md: MaterialData) => {
let mo: MeshObject = currentObject;
mo.materials = [md];
MakeMaterial.parseMeshPreviewMaterial(md);
});
@@ -118,8 +105,8 @@ class TabObjects {
}
if (b) {
var currentY = ui._y;
for (child in currentObject.children) {
let currentY = ui._y;
for (let child of currentObject.children) {
// ui.indent();
drawList(listHandle, child);
// ui.unindent();
@@ -131,7 +118,7 @@ class TabObjects {
ui.g.color = 0xffffffff;
}
}
for (c in Scene.active.root.children) {
for (let c of Scene.active.root.children) {
drawList(Zui.handle("tabobjects_1"), c);
}
@@ -142,35 +129,35 @@ class TabObjects {
// ui.indent();
if (Context.raw.selectedObject != null) {
var h = Zui.handle("tabobjects_3");
let h = Zui.handle("tabobjects_3");
h.selected = Context.raw.selectedObject.visible;
Context.raw.selectedObject.visible = ui.check(h, "Visible");
var t = Context.raw.selectedObject.transform;
var localPos = t.loc;
var worldPos = new Vec4(t.worldx(), t.worldy(), t.worldz(), 1.0);
var scale = t.scale;
var rot = t.rot.getEuler();
var dim = t.dim;
let t = Context.raw.selectedObject.transform;
let localPos = t.loc;
let worldPos = new Vec4(t.worldx(), t.worldy(), t.worldz(), 1.0);
let scale = t.scale;
let rot = t.rot.getEuler();
let dim = t.dim;
rot.mult(180 / 3.141592);
var f = 0.0;
let f = 0.0;
ui.row([1 / 4, 1 / 4, 1 / 4, 1 / 4]);
ui.text("Loc");
h = Zui.handle("tabobjects_4");
h.text = roundfp(localPos.x) + "";
f = Std.parseFloat(ui.textInput(h, "X"));
f = parseFloat(ui.textInput(h, "X"));
if (h.changed) localPos.x = f;
h = Zui.handle("tabobjects_5");
h.text = roundfp(localPos.y) + "";
f = Std.parseFloat(ui.textInput(h, "Y"));
f = parseFloat(ui.textInput(h, "Y"));
if (h.changed) localPos.y = f;
h = Zui.handle("tabobjects_6");
h.text = roundfp(localPos.z) + "";
f = Std.parseFloat(ui.textInput(h, "Z"));
f = parseFloat(ui.textInput(h, "Z"));
if (h.changed) localPos.z = f;
ui.row([1 / 4, 1 / 4, 1 / 4, 1 / 4]);
@@ -178,28 +165,28 @@ class TabObjects {
h = Zui.handle("tabobjects_7");
h.text = roundfp(rot.x) + "";
f = Std.parseFloat(ui.textInput(h, "X"));
var changed = false;
f = parseFloat(ui.textInput(h, "X"));
let changed = false;
if (h.changed) { changed = true; rot.x = f; }
h = Zui.handle("tabobjects_8");
h.text = roundfp(rot.y) + "";
f = Std.parseFloat(ui.textInput(h, "Y"));
f = parseFloat(ui.textInput(h, "Y"));
if (h.changed) { changed = true; rot.y = f; }
h = Zui.handle("tabobjects_9");
h.text = roundfp(rot.z) + "";
f = Std.parseFloat(ui.textInput(h, "Z"));
f = parseFloat(ui.textInput(h, "Z"));
if (h.changed) { changed = true; rot.z = f; }
if (changed && Context.raw.selectedObject.name != "Scene") {
rot.mult(3.141592 / 180);
Context.raw.selectedObject.transform.rot.fromEuler(rot.x, rot.y, rot.z);
Context.raw.selectedObject.transform.buildMatrix();
// #if arm_physics
// var rb = Context.raw.selectedObject.getTrait(RigidBody);
// ///if arm_physics
// let rb = Context.raw.selectedObject.getTrait(RigidBody);
// if (rb != null) rb.syncTransform();
// #end
// ///end
}
ui.row([1 / 4, 1 / 4, 1 / 4, 1 / 4]);
@@ -207,17 +194,17 @@ class TabObjects {
h = Zui.handle("tabobjects_10");
h.text = roundfp(scale.x) + "";
f = Std.parseFloat(ui.textInput(h, "X"));
f = parseFloat(ui.textInput(h, "X"));
if (h.changed) scale.x = f;
h = Zui.handle("tabobjects_11");
h.text = roundfp(scale.y) + "";
f = Std.parseFloat(ui.textInput(h, "Y"));
f = parseFloat(ui.textInput(h, "Y"));
if (h.changed) scale.y = f;
h = Zui.handle("tabobjects_12");
h.text = roundfp(scale.z) + "";
f = Std.parseFloat(ui.textInput(h, "Z"));
f = parseFloat(ui.textInput(h, "Z"));
if (h.changed) scale.z = f;
ui.row([1 / 4, 1 / 4, 1 / 4, 1 / 4]);
@@ -225,35 +212,35 @@ class TabObjects {
h = Zui.handle("tabobjects_13");
h.text = roundfp(dim.x) + "";
f = Std.parseFloat(ui.textInput(h, "X"));
f = parseFloat(ui.textInput(h, "X"));
if (h.changed) dim.x = f;
h = Zui.handle("tabobjects_14");
h.text = roundfp(dim.y) + "";
f = Std.parseFloat(ui.textInput(h, "Y"));
f = parseFloat(ui.textInput(h, "Y"));
if (h.changed) dim.y = f;
h = Zui.handle("tabobjects_15");
h.text = roundfp(dim.z) + "";
f = Std.parseFloat(ui.textInput(h, "Z"));
f = parseFloat(ui.textInput(h, "Z"));
if (h.changed) dim.z = f;
Context.raw.selectedObject.transform.dirty = true;
if (Context.raw.selectedObject.name == "Scene") {
var p = Scene.active.world.probe;
let p = Scene.active.world.probe;
p.raw.strength = ui.slider(Zui.handle("tabobjects_16", {value: p.raw.strength}), "Environment", 0.0, 5.0, true);
}
else if (Std.isOfType(Context.raw.selectedObject, LightObject)) {
var light = cast(Context.raw.selectedObject, LightObject);
var lightHandle = Zui.handle("tabobjects_17");
else if (Context.raw.selectedObject.constructor == LightObject) {
let light = cast(Context.raw.selectedObject, LightObject);
let lightHandle = Zui.handle("tabobjects_17");
lightHandle.value = light.data.raw.strength / 10;
light.data.raw.strength = ui.slider(lightHandle, "Strength", 0.0, 5.0, true) * 10;
}
else if (Std.isOfType(Context.raw.selectedObject, CameraObject)) {
var cam = cast(Context.raw.selectedObject, CameraObject);
var fovHandle = Zui.handle("tabobjects_18");
fovHandle.value = Std.int(cam.data.raw.fov * 100) / 100;
else if (Context.raw.selectedObject.constructor == CameraObject) {
let cam = cast(Context.raw.selectedObject, CameraObject);
let fovHandle = Zui.handle("tabobjects_18");
fovHandle.value = Math.floor(cam.data.raw.fov * 100) / 100;
cam.data.raw.fov = ui.slider(fovHandle, "FoV", 0.3, 2.0, true);
if (fovHandle.changed) {
cam.buildProjection();
-5
View File
@@ -1,5 +0,0 @@
// Global imports
import arm.Translator.tr;
import arm.Enums;
using StringTools;