misty
This commit is contained in:
10
collision.cm
10
collision.cm
@@ -124,8 +124,8 @@ function _check_collision(a, b) {
|
||||
var dist = math.sqrt(dx*dx + dy*dy + dz*dz)
|
||||
|
||||
// Simple sphere-sphere approximation
|
||||
var ra = a.radius || number.max(a.sx || 0, a.sy || 0, a.sz || 0)
|
||||
var rb = b.radius || number.max(b.sx || 0, b.sy || 0, b.sz || 0)
|
||||
var ra = a.radius || max(a.sx || 0, a.sy || 0, a.sz || 0)
|
||||
var rb = b.radius || max(b.sx || 0, b.sy || 0, b.sz || 0)
|
||||
return dist < ra + rb
|
||||
}
|
||||
|
||||
@@ -182,7 +182,7 @@ function _ray_box(ox, oy, oz, dx, dy, dz, box) {
|
||||
var nx = 0, ny = 0, nz = 0
|
||||
|
||||
// X slab
|
||||
if (number.abs(dx) > 0.0001) {
|
||||
if (abs(dx) > 0.0001) {
|
||||
var t1 = (minx - ox) / dx
|
||||
var t2 = (maxx - ox) / dx
|
||||
if (t1 > t2) { var tmp = t1; t1 = t2; t2 = tmp }
|
||||
@@ -193,7 +193,7 @@ function _ray_box(ox, oy, oz, dx, dy, dz, box) {
|
||||
}
|
||||
|
||||
// Y slab
|
||||
if (number.abs(dy) > 0.0001) {
|
||||
if (abs(dy) > 0.0001) {
|
||||
var t1 = (miny - oy) / dy
|
||||
var t2 = (maxy - oy) / dy
|
||||
if (t1 > t2) { var tmp = t1; t1 = t2; t2 = tmp }
|
||||
@@ -204,7 +204,7 @@ function _ray_box(ox, oy, oz, dx, dy, dz, box) {
|
||||
}
|
||||
|
||||
// Z slab
|
||||
if (number.abs(dz) > 0.0001) {
|
||||
if (abs(dz) > 0.0001) {
|
||||
var t1 = (minz - oz) / dz
|
||||
var t2 = (maxz - oz) / dz
|
||||
if (t1 > t2) { var tmp = t1; t1 = t2; t2 = tmp }
|
||||
|
||||
8
core.cm
8
core.cm
@@ -186,7 +186,7 @@ function log_msg() {
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
args.push(text(arguments[i]))
|
||||
}
|
||||
log.console("[lance3d] " + args.join(" "))
|
||||
log.console("[lance3d] " + text(args, " "))
|
||||
}
|
||||
|
||||
function set_lighting(opts) {
|
||||
@@ -197,13 +197,13 @@ function set_lighting(opts) {
|
||||
_state.lighting.sun_dir = [d[0]/len, d[1]/len, d[2]/len]
|
||||
}
|
||||
}
|
||||
if (opts.sun_color) _state.lighting.sun_color = opts.sun_color.slice()
|
||||
if (opts.ambient) _state.lighting.ambient = opts.ambient.slice()
|
||||
if (opts.sun_color) _state.lighting.sun_color = array(opts.sun_color)
|
||||
if (opts.ambient) _state.lighting.ambient = array(opts.ambient)
|
||||
}
|
||||
|
||||
function set_fog(opts) {
|
||||
if (opts.enabled != null) _state.fog.enabled = opts.enabled
|
||||
if (opts.color) _state.fog.color = opts.color.slice()
|
||||
if (opts.color) _state.fog.color = array(opts.color)
|
||||
if (opts.near != null) _state.fog.near = opts.near
|
||||
if (opts.far != null) _state.fog.far = opts.far
|
||||
}
|
||||
|
||||
6
input.cm
6
input.cm
@@ -35,7 +35,7 @@ function process_events() {
|
||||
return false
|
||||
}
|
||||
if (ev.type == "key_down" || ev.type == "key_up") {
|
||||
var key_name = keyboard.get_key_name(ev.key).toLowerCase()
|
||||
var key_name = lower(keyboard.get_key_name(ev.key))
|
||||
var pressed = ev.type == "key_down"
|
||||
|
||||
if (pressed && !_keys_held[key_name]) {
|
||||
@@ -62,12 +62,12 @@ function process_events() {
|
||||
|
||||
// Check if a key is held (by name)
|
||||
function key(name) {
|
||||
return _keys_held[name.toLowerCase()] || false
|
||||
return _keys_held[lower(name)] || false
|
||||
}
|
||||
|
||||
// Check if a key was just pressed this frame (by name)
|
||||
function keyp(name) {
|
||||
return _keys_pressed[name.toLowerCase()] || false
|
||||
return _keys_pressed[lower(name)] || false
|
||||
}
|
||||
|
||||
// Check if a button is held (by index 0-7)
|
||||
|
||||
2
math.cm
2
math.cm
@@ -17,7 +17,7 @@ function rand() {
|
||||
}
|
||||
|
||||
function irand(min_inclusive, max_inclusive) {
|
||||
return number.floor(rand() * (max_inclusive - min_inclusive + 1)) + min_inclusive
|
||||
return floor(rand() * (max_inclusive - min_inclusive + 1)) + min_inclusive
|
||||
}
|
||||
|
||||
// Matrix helpers
|
||||
|
||||
14
resources.cm
14
resources.cm
@@ -47,9 +47,9 @@ function resize_image_for_platform(img, style, tier) {
|
||||
}
|
||||
|
||||
// Resize to fit within target_size x target_size (square)
|
||||
var scale = target_size / number.max(src_w, src_h)
|
||||
var dst_w = number.floor(src_w * scale)
|
||||
var dst_h = number.floor(src_h * scale)
|
||||
var scale = target_size / max(src_w, src_h)
|
||||
var dst_w = floor(src_w * scale)
|
||||
var dst_h = floor(src_h * scale)
|
||||
if (dst_w < 1) dst_w = 1
|
||||
if (dst_h < 1) dst_h = 1
|
||||
|
||||
@@ -107,7 +107,7 @@ function load_texture(path, style, tier) {
|
||||
}
|
||||
|
||||
function load_model(path, style, tier) {
|
||||
var ext = path.slice(path.lastIndexOf('.') + 1).toLowerCase()
|
||||
var ext = lower(text(path, path.lastIndexOf('.') + 1))
|
||||
|
||||
if (ext != "gltf" && ext != "glb") {
|
||||
log.console("resources: unsupported model format: " + ext)
|
||||
@@ -156,7 +156,7 @@ function load_model(path, style, tier) {
|
||||
|
||||
var paint = [1, 1, 1, 1]
|
||||
if (gmat.pbr && gmat.pbr.base_color_factor) {
|
||||
paint = gmat.pbr.base_color_factor.slice()
|
||||
paint = array(gmat.pbr.base_color_factor)
|
||||
}
|
||||
|
||||
var color_map = null
|
||||
@@ -346,8 +346,8 @@ function _make_internal_transform(node) {
|
||||
|
||||
function _transform_set_parent(child, parent) {
|
||||
if (child.parent) {
|
||||
var idx = child.parent.children.indexOf(child)
|
||||
if (idx >= 0) child.parent.children.splice(idx, 1)
|
||||
var idx = find(child.parent.children, child)
|
||||
if (idx != null) child.parent.children.splice(idx, 1)
|
||||
}
|
||||
child.parent = parent
|
||||
if (parent) parent.children.push(child)
|
||||
|
||||
7
sdl.cm
7
sdl.cm
@@ -333,10 +333,11 @@ function submit_frame(draws, clear_color, clear_depth, style_id) {
|
||||
var swap_pass = cmd.render_pass(pass_desc)
|
||||
|
||||
// Sort draws: opaque first, then cutoff, then blend
|
||||
draws.sort(function(a, b) {
|
||||
var order = { opaque: 0, cutoff: 1, mask: 1, blend: 2 }
|
||||
return (order[a.coverage] || 0) - (order[b.coverage] || 0)
|
||||
var keys = array(draws, d => {
|
||||
var k = order[d.coverage]
|
||||
return k == null ? 0 : k
|
||||
})
|
||||
draws = sort(draws, keys)
|
||||
|
||||
var draw_calls = 0
|
||||
var triangles = 0
|
||||
|
||||
Reference in New Issue
Block a user