diff --git a/mods/artifact_characters/key.lua b/mods/artifact_characters/key.lua index 046c8c1..1f7c471 100644 --- a/mods/artifact_characters/key.lua +++ b/mods/artifact_characters/key.lua @@ -23,11 +23,14 @@ function ns.do_whack(m) node = {name = node.name}, time = 0.1 } + if artifact.on_whacked then + artifact.on_whacked("node", m.pointed_node) + end elseif m.pointed_obj and m.pointed_obj.on_whack then if m.pointed_obj:on_whack() then -- For use in artifact_help. if artifact.on_whacked then - artifact.on_whacked() + artifact.on_whacked("object", m.pointed_obj) end end end diff --git a/mods/artifact_chat/init.lua b/mods/artifact_chat/init.lua index 99ae760..743e73c 100644 --- a/mods/artifact_chat/init.lua +++ b/mods/artifact_chat/init.lua @@ -3,6 +3,12 @@ local ns = artifact local hud_pop_times = {} function ns.push_chat_message(msg, sender, splash, duration) + -- Special handling for the character names (and if sent by a player, colorize based on character). + if sender == "Key" or artifact.players[sender] and artifact.players[sender].character == "key" then + sender = minetest.colorize("#284", sender) + elseif sender == "Vix" or artifact.players[sender] and artifact.players[sender].character == "vix" then + sender = minetest.colorize("#f5dd66", sender) + end for name, m in pairs(artifact.players) do local box = {} local w = minetest.get_player_window_information(name).size.x @@ -146,4 +152,9 @@ if artifact.debug then end }) + minetest.register_chatcommand("color", { + func = function(name, args) + ns.push_chat_message(minetest.colorize(args, "This is a colored message"), "Server") + end + }) end diff --git a/mods/artifact_hud/textures/artifact_icon_whack.png b/mods/artifact_hud/textures/artifact_icon_whack.png new file mode 100644 index 0000000..538e88d Binary files /dev/null and b/mods/artifact_hud/textures/artifact_icon_whack.png differ diff --git a/mods/artifact_mechanisms/doors.lua b/mods/artifact_mechanisms/doors.lua index a2394eb..3d4669a 100644 --- a/mods/artifact_mechanisms/doors.lua +++ b/mods/artifact_mechanisms/doors.lua @@ -165,6 +165,22 @@ minetest.register_entity(":artifact:door", { collisionbox = box } end, + on_hover = function(e, m) + if e.type == "wood" and e._locked then + m._whack_hud = m.object:hud_add { + type = "image_waypoint", + world_pos = e.object:get_pos():offset(0, 0.5, 0), + scale = {x=3,y=3}, + text = "artifact_icon_whack.png" + } + end + end, + on_unhover = function(e, m) + if m._whack_hud then + m.object:hud_remove(m._whack_hud) + m._whack_hud = nil + end + end, on_whack = function(e) if e.type == "wood" then local pos = e.object:get_pos():round() diff --git a/mods/artifact_mechanisms/fields.lua b/mods/artifact_mechanisms/fields.lua deleted file mode 100644 index e69de29..0000000 diff --git a/mods/artifact_mechanisms/forcefields.lua b/mods/artifact_mechanisms/forcefields.lua new file mode 100644 index 0000000..439563d --- /dev/null +++ b/mods/artifact_mechanisms/forcefields.lua @@ -0,0 +1,346 @@ + + +artifact.register_node("forcefield", { + drawtype = "glasslike_framed", + use_texture_alpha = "blend", + light_source = 6, + tiles = {"artifact_forcefield_border.png", "artifact_forcefield_inner.png"}, + visual_scale = 0.75, + diggable = false +}) + +local vm_data = {} +local vm_p2_data = {} +local c_air = minetest.get_content_id("air") +local c_forcefield = minetest.get_content_id("forcefield") +function artifact.place_forcefield(pos, def) + if def.type == "cube" then + if def.offset then pos = pos:add(def.offset) end + local vm = minetest.get_voxel_manip(pos:offset(-def.radius,-def.radius,-def.radius), pos:offset(def.radius,def.radius,def.radius)) + local va = VoxelArea(vm:get_emerged_area()) + vm:get_data(vm_data) + vm:get_param2_data(vm_p2_data) + for x = pos.x -def.radius, pos.x +def.radius, def.radius *2 do + for y = pos.y -def.radius, pos.y +def.radius do + for z = pos.z -def.radius, pos.z +def.radius do + local idx = va:index(x, y, z) + if vm_data[idx] == c_air then + vm_data[idx] = c_forcefield + vm_p2_data[idx] = 1 + elseif vm_data[idx] == c_forcefield then + vm_p2_data[idx] = vm_p2_data[idx] +1 + end + end + end + end + for y = pos.y -def.radius, pos.y +def.radius, def.radius *2 do + for x = pos.x -def.radius, pos.x +def.radius do + for z = pos.z -def.radius, pos.z +def.radius do + local idx = va:index(x, y, z) + if vm_data[idx] == c_air then + vm_data[idx] = c_forcefield + vm_p2_data[idx] = 1 + elseif vm_data[idx] == c_forcefield then + vm_p2_data[idx] = vm_p2_data[idx] +1 + end + end + end + end + for z = pos.z -def.radius, pos.z +def.radius, def.radius *2 do + for y = pos.y -def.radius, pos.y +def.radius do + for x = pos.x -def.radius, pos.x +def.radius do + local idx = va:index(x, y, z) + if vm_data[idx] == c_air then + vm_data[idx] = c_forcefield + vm_p2_data[idx] = 1 + elseif vm_data[idx] == c_forcefield then + vm_p2_data[idx] = vm_p2_data[idx] +1 + end + end + end + end + vm:set_data(vm_data) + vm:set_param2_data(vm_p2_data) + vm:write_to_map() + elseif def.type == "plane" then + local vm = minetest.get_voxel_manip(pos:offset(-def.radius,-def.radius,-def.radius), pos:offset(def.radius,def.radius,def.radius)) + local va = VoxelArea(vm:get_emerged_area()) + vm:get_data(vm_data) + vm:get_param2_data(vm_p2_data) + + local x + local y + local z + if def.axis == "x" then + local x = pos.x + for y = pos.y -def.radius, pos.y +def.radius do + for z = pos.z -def.radius, pos.z +def.radius do + local idx = va:index(x +def.offset.x, y +def.offset.y, z +def.offset.z) + if vm_data[idx] == c_air then + vm_data[idx] = c_forcefield + vm_p2_data[idx] = 1 + elseif vm_data[idx] == c_forcefield and vm_p2_data[idx] > 0 then + vm_p2_data[idx] = vm_p2_data[idx] +1 + end + end + end + elseif def.axis == "y" then + local y = pos.y + for x = pos.x -def.radius, pos.x +def.radius do + for z = pos.z -def.radius, pos.z +def.radius do + local idx = va:index(x +def.offset.x, y +def.offset.y, z +def.offset.z) + if vm_data[idx] == c_air then + vm_data[idx] = c_forcefield + vm_p2_data[idx] = 1 + elseif vm_data[idx] == c_forcefield and vm_p2_data[idx] > 0 then + vm_p2_data[idx] = vm_p2_data[idx] +1 + end + end + end + elseif def.axis == "z" then + local z = pos.z + for y = pos.y -def.radius, pos.y +def.radius do + for x = pos.x -def.radius, pos.x +def.radius do + local idx = va:index(x +def.offset.x, y +def.offset.y, z +def.offset.z) + if vm_data[idx] == c_air then + vm_data[idx] = c_forcefield + vm_p2_data[idx] = 1 + elseif vm_data[idx] == c_forcefield and vm_p2_data[idx] > 0 then + vm_p2_data[idx] = vm_p2_data[idx] +1 + end + end + end + end + + vm:set_data(vm_data) + vm:set_param2_data(vm_p2_data) + vm:write_to_map() + end +end + +function artifact.remove_forcefield(pos, def) + if def.type == "cube" then + if def.offset then pos = pos:add(def.offset) end + local vm = minetest.get_voxel_manip(pos:offset(-def.radius,-def.radius,-def.radius), pos:offset(def.radius,def.radius,def.radius)) + local va = VoxelArea(vm:get_emerged_area()) + vm:get_data(vm_data) + vm:get_param2_data(vm_p2_data) + for x = pos.x -def.radius, pos.x +def.radius, def.radius *2 do + for y = pos.y -def.radius, pos.y +def.radius do + for z = pos.z -def.radius, pos.z +def.radius do + local idx = va:index(x, y, z) + if vm_data[idx] == c_forcefield then + if vm_p2_data[idx] <= 1 then + vm_data[idx] = c_air + vm_p2_data[idx] = 0 + else + vm_p2_data[idx] = vm_p2_data[idx] -1 + end + end + end + end + end + for y = pos.y -def.radius, pos.y +def.radius, def.radius *2 do + for x = pos.x -def.radius, pos.x +def.radius do + for z = pos.z -def.radius, pos.z +def.radius do + local idx = va:index(x, y, z) + if vm_data[idx] == c_forcefield then + if vm_p2_data[idx] <= 1 then + vm_data[idx] = c_air + vm_p2_data[idx] = 0 + else + vm_p2_data[idx] = vm_p2_data[idx] -1 + end + end + end + end + end + for z = pos.z -def.radius, pos.z +def.radius, def.radius *2 do + for y = pos.y -def.radius, pos.y +def.radius do + for x = pos.x -def.radius, pos.x +def.radius do + local idx = va:index(x, y, z) + if vm_data[idx] == c_forcefield then + if vm_p2_data[idx] <= 1 then + vm_data[idx] = c_air + vm_p2_data[idx] = 0 + else + vm_p2_data[idx] = vm_p2_data[idx] -1 + end + end + end + end + end + vm:set_data(vm_data) + vm:set_param2_data(vm_p2_data) + vm:write_to_map() + elseif def.type == "plane" then + local vm = minetest.get_voxel_manip(pos:offset(-def.radius,-def.radius,-def.radius), pos:offset(def.radius,def.radius,def.radius)) + local va = VoxelArea(vm:get_emerged_area()) + vm:get_data(vm_data) + vm:get_param2_data(vm_p2_data) + + local x + local y + local z + if def.axis == "x" then + local x = pos.x + for y = pos.y -def.radius, pos.y +def.radius do + for z = pos.z -def.radius, pos.z +def.radius do + local idx = va:index(x +def.offset.x, y +def.offset.y, z +def.offset.z) + if vm_data[idx] == c_forcefield then + if vm_p2_data[idx] <= 1 then + vm_data[idx] = c_air + vm_p2_data[idx] = 0 + else + vm_p2_data[idx] = vm_p2_data[idx] -1 + end + end + end + end + elseif def.axis == "y" then + local y = pos.y + for x = pos.x -def.radius, pos.x +def.radius do + for z = pos.z -def.radius, pos.z +def.radius do + local idx = va:index(x +def.offset.x, y +def.offset.y, z +def.offset.z) + if vm_data[idx] == c_forcefield then + if vm_p2_data[idx] <= 1 then + vm_data[idx] = c_air + vm_p2_data[idx] = 0 + else + vm_p2_data[idx] = vm_p2_data[idx] -1 + end + end + end + end + elseif def.axis == "z" then + local z = pos.z + for y = pos.y -def.radius, pos.y +def.radius do + for x = pos.x -def.radius, pos.x +def.radius do + local idx = va:index(x +def.offset.x, y +def.offset.y, z +def.offset.z) + if vm_data[idx] == c_forcefield then + if vm_p2_data[idx] <= 1 then + vm_data[idx] = c_air + vm_p2_data[idx] = 0 + else + vm_p2_data[idx] = vm_p2_data[idx] -1 + end + end + end + end + end + + vm:set_data(vm_data) + vm:set_param2_data(vm_p2_data) + vm:write_to_map() + end +end + + +local function onload(pos) + local m = minetest.get_meta(pos) + if not m:contains("initialized") then + local conf = minetest.deserialize(m:get("config") or "return nil") or {type = "plane", radius = 5, axis = "x", offset = vector.new(3,0,0)} + m:set_string("_config", minetest.serialize(conf)) + m:set_string("config", minetest.serialize(conf)) + artifact.place_forcefield(pos, conf) + end +end + +artifact.register_node("forcefield_generator", { + drawtype = "mesh", + mesh = "artifact_forcefield_generator.gltf", + tiles = {"artifact_forcefield_generator.png"}, + paramtype = "light", + light_source = 10, + paramtype2 = "facedir", + groups = {whackable = 1}, + collision_box = { + type = "fixed", + fixed = { + -1, -0.5, -0.5, + 1, 0.5, 0.5 + } + }, + selection_box = { + type = "fixed", + fixed = { + -1, -0.5, -0.5, + 1, 0.5, 0.5 + } + }, + on_construct = onload, + on_load = onload, + on_rightclick = artifact.debug and function(pos) + local m = minetest.get_meta(pos) + artifact.remove_forcefield(pos, minetest.deserialize(m:get("_config") or "return nil") or {type = "plane", radius = 5, axis = "x", offset = vector.new(3,0,0)}) + local conf = minetest.deserialize(m:get("config") or "return nil") or {type = "plane", radius = 5, axis = "x", offset = 3} + m:set_string("_config", minetest.serialize(conf)) + artifact.place_forcefield(pos, conf) + end or nil, + on_destruct = function(pos) + local m = minetest.get_meta(pos) + local conf = minetest.deserialize(m:get("config") or "return nil") or {type = "cube", radius = 5} + artifact.remove_forcefield(pos, conf) + local node = minetest.get_node(pos) + node.name = "forcefield_generator_off" + minetest.after(0, function() + minetest.set_node(pos, node) + end) + minetest.add_particlespawner { + pos = pos, + vel = vector.zero(), + acc = vector.new(0, -9.81, 0), + drag = vector.new(3, 0, 3), + radius = 0.1, + attract = { + kind = "point", + origin = pos, + strength = -50 + }, + texture = { + name = "artifact_light_gold.png", + alpha_tween = {1, 0} + }, + size_tween = { + { + min = 3, + max = 6 + }, + { + min = 1, + max = 2 + } + }, + time = 0.3, + amount = 100, + } + end +}) + +artifact.register_node("forcefield_generator_off", { + drawtype = "mesh", + mesh = "artifact_forcefield_generator.gltf", + tiles = {"artifact_forcefield_generator_off.png"}, + paramtype = "light", + light_source = 6, + paramtype2 = "facedir", + collision_box = { + type = "fixed", + fixed = { + -1, -0.5, -0.5, + 1, 0.5, 0.5 + } + }, + selection_box = { + type = "fixed", + fixed = { + -1, -0.5, -0.5, + 1, 0.5, 0.5 + } + }, + on_impact = artifact.debug and function(pos) + local node = minetest.get_node(pos) + node.name = "forcefield_generator" + minetest.set_node(pos, node) + end or nil, +}) diff --git a/mods/artifact_mechanisms/init.lua b/mods/artifact_mechanisms/init.lua index c5fc8f7..265620a 100644 --- a/mods/artifact_mechanisms/init.lua +++ b/mods/artifact_mechanisms/init.lua @@ -35,10 +35,12 @@ include "doors.lua" include "colors.lua" include "large_doors.lua" include "chest.lua" +include "forcefields.lua" function artifact.load_schematic(dst, path, rot) - minetest.place_schematic(dst, path..".mts", rot or "0") + -- There's not a very good way to export without the forcefields' param2, but we can _import_ without them. + minetest.place_schematic(dst, path..".mts", rot or "0", {["artifact:forcefield"] = "air"}) local f = io.open(path..".json") local meta = minetest.parse_json(f:read("a")) f:close() diff --git a/mods/artifact_mechanisms/models/artifact_forcefield_generator.gltf b/mods/artifact_mechanisms/models/artifact_forcefield_generator.gltf new file mode 100644 index 0000000..1f7fd5b --- /dev/null +++ b/mods/artifact_mechanisms/models/artifact_forcefield_generator.gltf @@ -0,0 +1 @@ +{"asset":{"version":"2.0","generator":"Blockbench 4.12.5 glTF exporter"},"scenes":[{"nodes":[7],"name":"blockbench_export"}],"scene":0,"nodes":[{"translation":[0,-5,0],"name":"cube","mesh":0},{"translation":[5,-5,0],"name":"cube","mesh":1},{"translation":[-5,-5,0],"name":"cube","mesh":2},{"translation":[-1.875,-5,0],"name":"cube","mesh":3},{"translation":[1.875,-5,0],"name":"cube","mesh":4},{"translation":[7.5,-5,0],"name":"cube","mesh":5},{"translation":[-8.75,-5,0],"name":"cube","mesh":6},{"children":[0,1,2,3,4,5,6]}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":288,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":576,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":768,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":840,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1128,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1416,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":1608,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":1680,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1968,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2256,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":2448,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":2520,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2808,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3096,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":3288,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":3360,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3648,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3936,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":4128,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":4200,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":4488,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":4776,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":4968,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":5040,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":5328,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":5616,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":5808,"byteLength":72,"target":34963}],"buffers":[{"byteLength":5880,"uri":"data:application/octet-stream;base64,AADcQAAAAkEAAHBAAADcQAAAAkEAAHDAAADcQAAAAAAAAHBAAADcQAAAAAAAAHDAAADcwAAAAkEAAHDAAADcwAAAAkEAAHBAAADcwAAAAAAAAHDAAADcwAAAAAAAAHBAAADcwAAAAkEAAHDAAADcQAAAAkEAAHDAAADcwAAAAkEAAHBAAADcQAAAAkEAAHBAAADcwAAAAAAAAHBAAADcQAAAAAAAAHBAAADcwAAAAAAAAHDAAADcQAAAAAAAAHDAAADcwAAAAkEAAHBAAADcQAAAAkEAAHBAAADcwAAAAAAAAHBAAADcQAAAAAAAAHBAAADcQAAAAkEAAHDAAADcwAAAAkEAAHDAAADcQAAAAAAAAHDAAADcwAAAAAAAAHDAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AADwPgAA8D0AABA/AADwPQAA8D4AAGA+AAAQPwAAYD4AAAA+AADwPgAAYD4AAPA+AAAAPgAAEj8AAGA+AAASPwAA6D4AAMA9AACQPgAAwD0AAOg+AAAAAAAAkD4AAAAAAADoPgAAwD0AAJA+AADAPQAA6D4AAEA+AACQPgAAQD4AADA+AACAPgAAsD4AAIA+AAAwPgAAtD4AALA+AAC0PgAAAAAAAIA+AAAwPgAAgD4AAAAAAAC0PgAAMD4AALQ+AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAAgPwAAFkEAAKBAAAAgPwAAFkEAAKDAAAAgPwAAAAAAAKBAAAAgPwAAAAAAAKDAAAAgvwAAFkEAAKDAAAAgvwAAFkEAAKBAAAAgvwAAAAAAAKDAAAAgvwAAAAAAAKBAAAAgvwAAFkEAAKDAAAAgPwAAFkEAAKDAAAAgvwAAFkEAAKBAAAAgPwAAFkEAAKBAAAAgvwAAAAAAAKBAAAAgPwAAAAAAAKBAAAAgvwAAAAAAAKDAAAAgPwAAAAAAAKDAAAAgvwAAFkEAAKBAAAAgPwAAFkEAAKBAAAAgvwAAAAAAAKBAAAAgPwAAAAAAAKBAAAAgPwAAFkEAAKDAAAAgvwAAFkEAAKDAAAAgPwAAAAAAAKDAAAAgvwAAAAAAAKDAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACwPgAAQD4AAPA+AABAPgAAsD4AAJw+AADwPgAAnD4AALA+AACcPgAA8D4AAJw+AACwPgAA2D4AAPA+AADYPgAAiD4AACo/AACAPgAAKj8AAIg+AAAKPwAAgD4AAAo/AACQPgAACj8AAIg+AAAKPwAAkD4AACo/AACIPgAAKj8AAMg+AAAKPwAA0D4AAAo/AADIPgAAKD8AANA+AAAoPwAAwD4AAAo/AADIPgAACj8AAMA+AAAoPwAAyD4AACg/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAAgPwAAFkEAAKBAAAAgPwAAFkEAAKDAAAAgPwAAAAAAAKBAAAAgPwAAAAAAAKDAAAAgvwAAFkEAAKDAAAAgvwAAFkEAAKBAAAAgvwAAAAAAAKDAAAAgvwAAAAAAAKBAAAAgvwAAFkEAAKDAAAAgPwAAFkEAAKDAAAAgvwAAFkEAAKBAAAAgPwAAFkEAAKBAAAAgvwAAAAAAAKBAAAAgPwAAAAAAAKBAAAAgvwAAAAAAAKDAAAAgPwAAAAAAAKDAAAAgvwAAFkEAAKBAAAAgPwAAFkEAAKBAAAAgvwAAAAAAAKBAAAAgPwAAAAAAAKBAAAAgPwAAFkEAAKDAAAAgvwAAFkEAAKDAAAAgPwAAAAAAAKDAAAAgvwAAAAAAAKDAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAtD4AAAA+AAC0PgAAAAAAAPA+AAAAPgAA8D4AAAA+AAC0PgAAgD4AALQ+AAAAPgAA8D4AAIA+AADwPgAAmD4AACo/AACQPgAAKj8AAJg+AAAKPwAAkD4AAAo/AACgPgAACj8AAJg+AAAKPwAAoD4AACo/AACYPgAAKj8AANg+AAAKPwAA4D4AAAo/AADYPgAAKD8AAOA+AAAoPwAA0D4AAAo/AADYPgAACj8AANA+AAAoPwAA2D4AACg/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAAgPwAAFkEAAKBAAAAgPwAAFkEAAKDAAAAgPwAAAAAAAKBAAAAgPwAAAAAAAKDAAAAgvwAAFkEAAKDAAAAgvwAAFkEAAKBAAAAgvwAAAAAAAKDAAAAgvwAAAAAAAKBAAAAgvwAAFkEAAKDAAAAgPwAAFkEAAKDAAAAgvwAAFkEAAKBAAAAgPwAAFkEAAKBAAAAgvwAAAAAAAKBAAAAgPwAAAAAAAKBAAAAgvwAAAAAAAKDAAAAgPwAAAAAAAKDAAAAgvwAAFkEAAKBAAAAgPwAAFkEAAKBAAAAgvwAAAAAAAKBAAAAgPwAAAAAAAKBAAAAgPwAAFkEAAKDAAAAgvwAAFkEAAKDAAAAgPwAAAAAAAKDAAAAgvwAAAAAAAKDAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACAPgAA2D4AAMA+AADYPgAAgD4AAAo/AADAPgAACj8AAMA+AADYPgAAAD8AANg+AADAPgAACj8AAAA/AAAKPwAAqD4AACo/AACgPgAAKj8AAKg+AAAKPwAAoD4AAAo/AACwPgAACj8AAKg+AAAKPwAAsD4AACo/AACoPgAAKj8AAOg+AAAKPwAA8D4AAAo/AADoPgAAKD8AAPA+AAAoPwAA4D4AAAo/AADoPgAACj8AAOA+AAAoPwAA6D4AACg/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAAgPwAAFkEAAKBAAAAgPwAAFkEAAKDAAAAgPwAAAAAAAKBAAAAgPwAAAAAAAKDAAAAgvwAAFkEAAKDAAAAgvwAAFkEAAKBAAAAgvwAAAAAAAKDAAAAgvwAAAAAAAKBAAAAgvwAAFkEAAKDAAAAgPwAAFkEAAKDAAAAgvwAAFkEAAKBAAAAgPwAAFkEAAKBAAAAgvwAAAAAAAKBAAAAgPwAAAAAAAKBAAAAgvwAAAAAAAKDAAAAgPwAAAAAAAKDAAAAgvwAAFkEAAKBAAAAgPwAAFkEAAKBAAAAgvwAAAAAAAKBAAAAgPwAAAAAAAKBAAAAgPwAAFkEAAKDAAAAgvwAAFkEAAKDAAAAgPwAAAAAAAKDAAAAgvwAAAAAAAKDAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AADoPgAAAAAAABQ/AAAAAAAA6D4AAPA9AAAUPwAA8D0AAAAAAADwPgAAAD4AAPA+AAAAAAAAFj8AAAA+AAAWPwAAuD4AACo/AACwPgAAKj8AALg+AAAKPwAAsD4AAAo/AADAPgAACj8AALg+AAAKPwAAwD4AACo/AAC4PgAAKj8AAPg+AAAKPwAAAD8AAAo/AAD4PgAAKD8AAAA/AAAoPwAA8D4AAAo/AAD4PgAACj8AAPA+AAAoPwAA+D4AACg/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAADwPwAAIEEAALRAAADwPwAAIEEAALTAAADwPwAAAAAAALRAAADwPwAAAAAAALTAAAAgvwAAIEEAALTAAAAgvwAAIEEAALRAAAAgvwAAAAAAALTAAAAgvwAAAAAAALRAAAAgvwAAIEEAALTAAADwPwAAIEEAALTAAAAgvwAAIEEAALRAAADwPwAAIEEAALRAAAAgvwAAAAAAALRAAADwPwAAAAAAALRAAAAgvwAAAAAAALTAAADwPwAAAAAAALTAAAAgvwAAIEEAALRAAADwPwAAIEEAALRAAAAgvwAAAAAAALRAAADwPwAAAAAAALRAAADwPwAAIEEAALTAAAAgvwAAIEEAALTAAADwPwAAAAAAALTAAAAgvwAAAAAAALTAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAABA+AAAAAAAAAAAAAAA+AAAQPgAAAD4AAAAAAAAAPgAAED4AAAA+AAAAAAAAgD4AABA+AACAPgAAgD4AABw/AABgPgAAHD8AAIA+AADwPgAAYD4AAPA+AAAAPwAAYD4AAPA+AABgPgAAAD8AALg+AADwPgAAuD4AAAg/AABgPgAAED8AAGA+AAAIPwAAsD4AABA/AACwPgAAAD8AAAA/AAAIPwAAAD8AAAA/AAAgPwAACD8AACA/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAADwPwAAIEEAALRAAADwPwAAIEEAALTAAADwPwAAAAAAALRAAADwPwAAAAAAALTAAAAgvwAAIEEAALTAAAAgvwAAIEEAALRAAAAgvwAAAAAAALTAAAAgvwAAAAAAALRAAAAgvwAAIEEAALTAAADwPwAAIEEAALTAAAAgvwAAIEEAALRAAADwPwAAIEEAALRAAAAgvwAAAAAAALRAAADwPwAAAAAAALRAAAAgvwAAAAAAALTAAADwPwAAAAAAALTAAAAgvwAAIEEAALRAAADwPwAAIEEAALRAAAAgvwAAAAAAALRAAADwPwAAAAAAALRAAADwPwAAIEEAALTAAAAgvwAAIEEAALTAAADwPwAAAAAAALTAAAAgvwAAAAAAALTAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAQPgAAAAAAAJA+AAAAAAAAED4AAAA+AACQPgAAAD4AABA+AAAAPgAAkD4AAAA+AAAQPgAAgD4AAJA+AACAPgAACD8AALg+AAAAPwAAuD4AAAg/AABgPgAAAD8AAGA+AAAIPwAAuD4AAAA/AAC4PgAACD8AAAA/AAAAPwAAAD8AAAg/AADwPgAAED8AAPA+AAAIPwAAGD8AABA/AAAYPwAACD8AALA+AAAQPwAAsD4AAAg/AADwPgAAED8AAPA+AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUA"}],"accessors":[{"bufferView":0,"componentType":5126,"count":24,"max":[6.875,8.125,3.75],"min":[-6.875,0,-3.75],"type":"VEC3"},{"bufferView":1,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":2,"componentType":5126,"count":24,"max":[0.5625,0.5703125],"min":[0,0],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":4,"componentType":5126,"count":24,"max":[0.625,9.375,5],"min":[-0.625,0,-5],"type":"VEC3"},{"bufferView":5,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":6,"componentType":5126,"count":24,"max":[0.46875,0.6640625],"min":[0.25,0.1875],"type":"VEC2"},{"bufferView":7,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":8,"componentType":5126,"count":24,"max":[0.625,9.375,5],"min":[-0.625,0,-5],"type":"VEC3"},{"bufferView":9,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":10,"componentType":5126,"count":24,"max":[0.4375,0.6640625],"min":[0,0.3515625],"type":"VEC2"},{"bufferView":11,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":12,"componentType":5126,"count":24,"max":[0.625,9.375,5],"min":[-0.625,0,-5],"type":"VEC3"},{"bufferView":13,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":14,"componentType":5126,"count":24,"max":[0.5,0.6640625],"min":[0.25,0.421875],"type":"VEC2"},{"bufferView":15,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":16,"componentType":5126,"count":24,"max":[0.625,9.375,5],"min":[-0.625,0,-5],"type":"VEC3"},{"bufferView":17,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":18,"componentType":5126,"count":24,"max":[0.578125,0.6640625],"min":[0,0],"type":"VEC2"},{"bufferView":19,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":20,"componentType":5126,"count":24,"max":[1.875,10,5.625],"min":[-0.625,0,-5.625],"type":"VEC3"},{"bufferView":21,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":22,"componentType":5126,"count":24,"max":[0.5625,0.625],"min":[0,0],"type":"VEC2"},{"bufferView":23,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":24,"componentType":5126,"count":24,"max":[1.875,10,5.625],"min":[-0.625,0,-5.625],"type":"VEC3"},{"bufferView":25,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":26,"componentType":5126,"count":24,"max":[0.5625,0.59375],"min":[0.140625,0],"type":"VEC2"},{"bufferView":27,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":0}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true}],"textures":[{"sampler":0,"source":0,"name":"artifact_forcefield_generator"}],"samplers":[{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071}],"images":[{"mimeType":"image/png","name":"artifact_forcefield_generator.png","uri":"artifact_forcefield_generator.png"}],"meshes":[{"primitives":[{"mode":4,"attributes":{"POSITION":0,"NORMAL":1,"TEXCOORD_0":2},"indices":3,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":4,"NORMAL":5,"TEXCOORD_0":6},"indices":7,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":8,"NORMAL":9,"TEXCOORD_0":10},"indices":11,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":12,"NORMAL":13,"TEXCOORD_0":14},"indices":15,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":16,"NORMAL":17,"TEXCOORD_0":18},"indices":19,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":20,"NORMAL":21,"TEXCOORD_0":22},"indices":23,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":24,"NORMAL":25,"TEXCOORD_0":26},"indices":27,"material":0}]}]} \ No newline at end of file diff --git a/mods/artifact_mechanisms/textures/artifact_forcefield_border.png b/mods/artifact_mechanisms/textures/artifact_forcefield_border.png new file mode 100644 index 0000000..af509bf Binary files /dev/null and b/mods/artifact_mechanisms/textures/artifact_forcefield_border.png differ diff --git a/mods/artifact_mechanisms/textures/artifact_forcefield_generator.png b/mods/artifact_mechanisms/textures/artifact_forcefield_generator.png new file mode 100644 index 0000000..e3ed44d Binary files /dev/null and b/mods/artifact_mechanisms/textures/artifact_forcefield_generator.png differ diff --git a/mods/artifact_mechanisms/textures/artifact_forcefield_generator_off.png b/mods/artifact_mechanisms/textures/artifact_forcefield_generator_off.png new file mode 100644 index 0000000..72fd106 Binary files /dev/null and b/mods/artifact_mechanisms/textures/artifact_forcefield_generator_off.png differ diff --git a/mods/artifact_mechanisms/textures/artifact_forcefield_inner.png b/mods/artifact_mechanisms/textures/artifact_forcefield_inner.png new file mode 100644 index 0000000..49957b3 Binary files /dev/null and b/mods/artifact_mechanisms/textures/artifact_forcefield_inner.png differ diff --git a/mods/artifact_player/init.lua b/mods/artifact_player/init.lua index fd3ee3b..ae1c93e 100644 --- a/mods/artifact_player/init.lua +++ b/mods/artifact_player/init.lua @@ -129,7 +129,7 @@ Player = setmetatable({ -- MARK: Pointing callbacks local pointed_found = nil - m.pointed_node = nil + local pointed_node_found = nil for x in minetest.raycast(m.pos, m.pos +(dir *5)) do -- We should ignore all objects when placing a grabbed node. if x and x.type == "object" and not m._grabbed_item then @@ -171,6 +171,24 @@ Player = setmetatable({ end end elseif x and x.type == "node" then + pointed_node_found = true + x.node_under = minetest.get_node(x.under) + + local was_whackable = m.pointed_node and minetest.registered_nodes[m.pointed_node.node_under.name].groups.whackable + local whackable = m.character == "key" and minetest.registered_nodes[x.node_under.name].groups.whackable + if whackable and not was_whackable then + m.whack_hud = m.object:hud_add { + type = "image_waypoint", + world_pos = x.under, + scale = {x=3,y=3}, + text = "artifact_icon_whack.png" + } + elseif whackable and x.under ~= (m.pointed_node and m.pointed_node.under) then + m.object:hud_change(m.whack_hud, "world_pos", x.under) + elseif not whackable and m.whack_hud then + m.object:hud_remove(m.whack_hud) + m.whack_hud = nil + end m.pointed_node = x if m.pointed_obj then if m.pointed_obj.on_unhover then @@ -197,6 +215,14 @@ Player = setmetatable({ end m.pointed_obj = nil end + if not pointed_node_found then + m.pointed_node = nil + if m.whack_hud then + m.object:hud_remove(m.whack_hud) + m.whack_hud = nil + end + end + local ctl = m.object:get_player_control() -- MARK: Animations @@ -314,6 +340,8 @@ Player = setmetatable({ -- MARK: Radial menu handling + --[[ Disabled for the present due to a dearth of usecases... + -- This should only work once we have Vix, since we can't use it without her. if state >= artifact.story.states.main and ctl.place and not m.ctl.place and wi:get_name():find "artifact:input" and (not m.pointed_obj or not m.pointed_obj.on_interact or m.pointed_obj._no_interact) then artifact.show_radial_menu(m, { @@ -389,6 +417,8 @@ Player = setmetatable({ end end + --]] + -- MARK: Health regen if m.next_regen and time -m.next_regen >= 0 then diff --git a/mods/artifact_story/init.lua b/mods/artifact_story/init.lua index 87bd44f..8806708 100644 --- a/mods/artifact_story/init.lua +++ b/mods/artifact_story/init.lua @@ -25,6 +25,35 @@ function ns.enter_init_state() ns.play_intro_cutscene() end +local vix_scene +minetest.register_entity(":artifact:vix_scene", { + initial_properties = { + visual = "mesh", + mesh = "artifact_scene_vix.gltf", + textures = {"artifact_vix.png"} + }, + on_activate = function(e) + if state > ns.states.pre_vix then + e.object:remove() + end + e.object:set_armor_groups{immortal = 1} + e.object:set_animation({x=0,y=2}, 0.5, 0.1, true) + vix_scene = e + end, + on_deactivate = function(e) + vix_scene = nil + end, + on_step = function(e) + if e._can_check then + for _, m in pairs(artifact.players) do + if m.pos:distance(e.object:get_pos()) < 15 and m.dir:distance(m.pos:direction(e.object:get_pos())) < 0.2 then + artifact.push_chat_message("Hmm...", "Key", "artifact_key_splash_low.png") + e._can_check = false + end + end + end + end +}) function ns.enter_pre_vix_state() for _, m in pairs(artifact.players) do @@ -36,20 +65,49 @@ function ns.enter_pre_vix_state() m.object:set_pos(artifact.origin:offset(0, -73.5, -4)) m:set_spawnpoint(artifact.origin:offset(0, -73.5, -4)) end - minetest.after(5, function() + minetest.add_entity(artifact.origin:offset(-16.5, -72.5, -17), "artifact:vix_scene") + local help = minetest.after(15, function() for _, m in pairs(artifact.players) do artifact.show_help_message(m, "Certain nodes can be broken by punching them with the blackrod.", "info") end end) + db:set_string("checkpoint:pre_vix", "begin") + artifact.on_whacked = function(type, target) + local checkpoint = db:get("checkpoint:pre_vix") + if checkpoint == "begin" then -- We're still in the start closet. + if type == "object" then + help:cancel() + vix_scene._can_check = true + end + db:set_string("checkpoint:pre_vix", "in_room") + elseif checkpoint == "in_room" then -- We're actually in the room. + if target.node_under.name:find "forcefield_generator" then + local num = db:get_int("checkpoint:pre_vix_fields_broken") +1 + db:set_int("checkpoint:pre_vix_fields_broken", num) + if num == 1 then -- Key breaks his first generator. + minetest.after(1, function() + artifact.push_chat_message("Hehe.", "Key", "artifact_key_splash_low.png") + end) + elseif num == 5 then -- All generators are down. + vix_scene._can_check = nil + end + end + end + end +end + +function ns.enter_main_state() + vix_scene.object:remove() end function ns.enter_state(to) state = to - minetest.log("State changed to "..to..".") if state == ns.states.init then ns.enter_init_state() elseif state == ns.states.pre_vix then ns.enter_pre_vix_state() + elseif state == ns.states.main then + ns.enter_main_state() end db:set_int("state", state) end diff --git a/mods/artifact_story/models/artifact_scene_vix.gltf b/mods/artifact_story/models/artifact_scene_vix.gltf new file mode 100644 index 0000000..3d6c178 --- /dev/null +++ b/mods/artifact_story/models/artifact_scene_vix.gltf @@ -0,0 +1 @@ +{"asset":{"version":"2.0","generator":"Blockbench 4.12.5 glTF exporter"},"scenes":[{"nodes":[24],"name":"blockbench_export"}],"scene":0,"nodes":[{"name":"Head","mesh":0},{"name":"Hat Layer","mesh":1},{"translation":[0,7.5,0],"name":"Head","children":[0,1]},{"translation":[0,-15,0],"name":"Body","mesh":2},{"translation":[0,-15,0],"name":"Body Layer","mesh":3},{"translation":[0,7.5,0],"name":"Body","children":[3,4]},{"translation":[-3.125,-13.75,0],"name":"Right Arm","mesh":4},{"translation":[-3.125,-13.75,0],"name":"Right Arm Layer","mesh":5},{"translation":[3.125,6.25,0],"name":"RightArm","children":[6,7]},{"translation":[3.125,-13.75,0],"name":"Left Arm","mesh":6},{"translation":[3.125,-13.75,0],"name":"Left Arm Layer","mesh":7},{"translation":[-3.125,6.25,0],"name":"LeftArm","children":[9,10]},{"translation":[0,7.5,0],"name":"Torso","children":[2,5,8,11]},{"translation":[-1.1874999999999991,-7.5,0],"name":"Right Leg","mesh":8},{"translation":[-1.1874999999999991,-7.5,0],"name":"Right Leg Layer","mesh":9},{"translation":[-1.25,-0.625,0.9375],"name":"Right Leg","mesh":10},{"translation":[0.06250000000000089,-6.875,-0.9375],"name":"RightLegFoot","children":[15]},{"translation":[1.1874999999999991,7.5,0],"name":"RightLeg","children":[13,14,16]},{"translation":[1.1874999999999991,-7.5,0],"name":"Left Leg","mesh":11},{"translation":[1.1874999999999991,-7.5,0],"name":"Left Leg Layer","mesh":12},{"translation":[1.25,-0.625,0.9375],"name":"Left Leg","mesh":13},{"translation":[-0.06250000000000089,-6.875,-0.9375],"name":"LeftLegFoot","children":[20]},{"translation":[-1.1874999999999991,7.5,0],"name":"LeftLeg","children":[18,19,21]},{"rotation":[0,-1,0,6.123233995736766e-17],"name":"root","children":[12,17,22]},{"children":[23]}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":288,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":576,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":768,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":840,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1128,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1416,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":1608,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":1680,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1968,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2256,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":2448,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":2520,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":2808,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3096,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":3288,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":3360,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3648,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3936,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":4128,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":4200,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":4488,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":4776,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":4968,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":5040,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":5328,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":5616,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":5808,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":5880,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":6168,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":6456,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":6648,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":6720,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":7008,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":7296,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":7488,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":7560,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":7848,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":8136,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":8328,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":8400,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":8688,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":8976,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":9168,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":9240,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":9528,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":9816,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":10008,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":10080,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":10368,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":10656,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":10848,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":10920,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":11208,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":11496,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":11688,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":11760,"byteLength":8},{"buffer":0,"byteOffset":11768,"byteLength":32},{"buffer":0,"byteOffset":11800,"byteLength":8},{"buffer":0,"byteOffset":11808,"byteLength":24},{"buffer":0,"byteOffset":11832,"byteLength":8},{"buffer":0,"byteOffset":11840,"byteLength":32},{"buffer":0,"byteOffset":11872,"byteLength":8},{"buffer":0,"byteOffset":11880,"byteLength":24},{"buffer":0,"byteOffset":11904,"byteLength":156},{"buffer":0,"byteOffset":12060,"byteLength":624},{"buffer":0,"byteOffset":12684,"byteLength":8},{"buffer":0,"byteOffset":12692,"byteLength":24},{"buffer":0,"byteOffset":12716,"byteLength":156},{"buffer":0,"byteOffset":12872,"byteLength":624},{"buffer":0,"byteOffset":13496,"byteLength":156},{"buffer":0,"byteOffset":13652,"byteLength":468},{"buffer":0,"byteOffset":14120,"byteLength":156},{"buffer":0,"byteOffset":14276,"byteLength":624},{"buffer":0,"byteOffset":14900,"byteLength":156},{"buffer":0,"byteOffset":15056,"byteLength":468},{"buffer":0,"byteOffset":15524,"byteLength":156},{"buffer":0,"byteOffset":15680,"byteLength":624},{"buffer":0,"byteOffset":16304,"byteLength":156},{"buffer":0,"byteOffset":16460,"byteLength":468},{"buffer":0,"byteOffset":16928,"byteLength":8},{"buffer":0,"byteOffset":16936,"byteLength":32},{"buffer":0,"byteOffset":16968,"byteLength":8},{"buffer":0,"byteOffset":16976,"byteLength":32}],"buffers":[{"byteLength":17008,"uri":"data:application/octet-stream;base64,AAAgQAAAoEAAACBAAAAgQAAAoEAAACDAAAAgQAAAAAAAACBAAAAgQAAAAAAAACDAAAAgwAAAoEAAACDAAAAgwAAAoEAAACBAAAAgwAAAAAAAACDAAAAgwAAAAAAAACBAAAAgwAAAoEAAACDAAAAgQAAAoEAAACDAAAAgwAAAoEAAACBAAAAgQAAAoEAAACBAAAAgwAAAAAAAACBAAAAgQAAAAAAAACBAAAAgwAAAAAAAACDAAAAgQAAAAAAAACDAAAAgwAAAoEAAACBAAAAgQAAAoEAAACBAAAAgwAAAAAAAACBAAAAgQAAAAAAAACBAAAAgQAAAoEAAACDAAAAgwAAAoEAAACDAAAAgQAAAAAAAACDAAAAgwAAAAAAAACDAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACAOQBAAD4AgP89AEAAPgAAgDkAwH8+AID/PQDAfz4AIIA+AEAAPgDgvz4AQAA+ACCAPgDAfz4A4L8+AMB/PgDAfz4AgP89AEAAPgCA/z0AwH8+AACAOQBAAD4AAIA5AOC/PgAAgDkAIIA+AACAOQDgvz4AgP89ACCAPgCA/z0AIMA+AEAAPgDg/z4AQAA+ACDAPgDAfz4A4P8+AMB/PgBAAD4AQAA+AMB/PgBAAD4AQAA+AMB/PgDAfz4AwH8+AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAA0QAAAqkAAADRAAAA0QAAAqkAAADTAAAA0QAAAoL4AADRAAAA0QAAAoL4AADTAAAA0wAAAqkAAADTAAAA0wAAAqkAAADRAAAA0wAAAoL4AADTAAAA0wAAAoL4AADRAAAA0wAAAqkAAADTAAAA0QAAAqkAAADTAAAA0wAAAqkAAADRAAAA0QAAAqkAAADRAAAA0wAAAoL4AADRAAAA0QAAAoL4AADRAAAA0wAAAoL4AADTAAAA0QAAAoL4AADTAAAA0wAAAqkAAADRAAAA0QAAAqkAAADRAAAA0wAAAoL4AADRAAAA0QAAAoL4AADRAAAA0QAAAqkAAADTAAAA0wAAAqkAAADTAAAA0QAAAoL4AADTAAAA0wAAAoL4AADTAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/ABAAPwBAAD4A8B8/AEAAPgAQAD8AwH8+APAfPwDAfz4AEEA/AEAAPgDwXz8AQAA+ABBAPwDAfz4A8F8/AMB/PgDwPz8AgP89ABAgPwCA/z0A8D8/AACAOQAQID8AAIA5APBfPwAAgDkAEEA/AACAOQDwXz8AgP89ABBAPwCA/z0AEGA/AEAAPgDwfz8AQAA+ABBgPwDAfz4A8H8/AMB/PgAQID8AQAA+APA/PwBAAD4AECA/AMB/PgDwPz8AwH8+AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAAgQAAAcEEAAHA/AAAgQAAAcEEAAHC/AAAgQAAA8EAAAHA/AAAgQAAA8EAAAHC/AAAgwAAAcEEAAHC/AAAgwAAAcEEAAHA/AAAgwAAA8EAAAHC/AAAgwAAA8EAAAHA/AAAgwAAAcEEAAHC/AAAgQAAAcEEAAHC/AAAgwAAAcEEAAHA/AAAgQAAAcEEAAHA/AAAgwAAA8EAAAHA/AAAgQAAA8EAAAHA/AAAgwAAA8EAAAHC/AAAgQAAA8EAAAHC/AAAgwAAAcEEAAHA/AAAgQAAAcEEAAHA/AAAgwAAA8EAAAHA/AAAgQAAA8EAAAHA/AAAgQAAAcEEAAHC/AAAgwAAAcEEAAHC/AAAgQAAA8EAAAHC/AAAgwAAA8EAAAHC/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACIPgAAoD4AAKA+AACgPgAAiD4AAAA/AACgPgAAAD8AAOA+AACgPgAA+D4AAKA+AADgPgAAAD8AAPg+AAAAPwAA4D4AAKA+AACgPgAAoD4AAOA+AACIPgAAoD4AAIg+AAAQPwAAiD4AAOA+AACIPgAAED8AAKA+AADgPgAAoD4AAAA/AACgPgAAID8AAKA+AAAAPwAAAD8AACA/AAAAPwAAoD4AAKA+AADgPgAAoD4AAKA+AAAAPwAA4D4AAAA/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAAqQACAckEAAIw/AAAqQACAckEAAIy/AAAqQAAA60AAAIw/AAAqQAAA60AAAIy/AAAqwACAckEAAIy/AAAqwACAckEAAIw/AAAqwAAA60AAAIy/AAAqwAAA60AAAIw/AAAqwACAckEAAIy/AAAqQACAckEAAIy/AAAqwACAckEAAIw/AAAqQACAckEAAIw/AAAqwAAA60AAAIw/AAAqQAAA60AAAIw/AAAqwAAA60AAAIy/AAAqQAAA60AAAIy/AAAqwACAckEAAIw/AAAqQACAckEAAIw/AAAqwAAA60AAAIw/AAAqQAAA60AAAIw/AAAqQACAckEAAIy/AAAqwACAckEAAIy/AAAqQAAA60AAAIy/AAAqwAAA60AAAIy/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACIPgAAED8AAKA+AAAQPwAAiD4AAEA/AACgPgAAQD8AAOA+AAAQPwAA+D4AABA/AADgPgAAQD8AAPg+AABAPwAA4D4AABA/AACgPgAAED8AAOA+AAAEPwAAoD4AAAQ/AAAQPwAABD8AAOA+AAAEPwAAED8AABA/AADgPgAAED8AAAA/AAAQPwAAID8AABA/AAAAPwAAQD8AACA/AABAPwAAoD4AABA/AADgPgAAED8AAKA+AABAPwAA4D4AAEA/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAACMQAAAcEEAAHA/AACMQAAAcEEAAHC/AACMQAAA8EAAAHA/AACMQAAA8EAAAHC/AAAgQAAAcEEAAHC/AAAgQAAAcEEAAHA/AAAgQAAA8EAAAHC/AAAgQAAA8EAAAHA/AAAgQAAAcEEAAHC/AACMQAAAcEEAAHC/AAAgQAAAcEEAAHA/AACMQAAAcEEAAHA/AAAgQAAA8EAAAHA/AACMQAAA8EAAAHA/AAAgQAAA8EAAAHC/AACMQAAA8EAAAHC/AAAgQAAAcEEAAHA/AACMQAAAcEEAAHA/AAAgQAAA8EAAAHA/AACMQAAA8EAAAHA/AACMQAAAcEEAAHC/AAAgQAAAcEEAAHC/AACMQAAA8EAAAHC/AAAgQAAA8EAAAHC/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/ABAkPwAgoD4A8C8/ACCgPgAQJD8A4P8+APAvPwDg/z4AEDw/ACCgPgDwRz8AIKA+ABA8PwDg/z4A8Ec/AOD/PgDwOz8A4J8+ABAwPwDgnz4A8Ds/ACCIPgAQMD8AIIg+APBHPwAgiD4AEDw/ACCIPgDwRz8A4J8+ABA8PwDgnz4AEEg/ACCgPgDwUz8AIKA+ABBIPwDg/z4A8FM/AOD/PgAQMD8AIKA+APA7PwAgoD4AEDA/AOD/PgDwOz8A4P8+AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAACRQACAckEAAIw/AACRQACAckEAAIy/AACRQAAA60AAAIw/AACRQAAA60AAAIy/AAAWQACAckEAAIy/AAAWQACAckEAAIw/AAAWQAAA60AAAIy/AAAWQAAA60AAAIw/AAAWQACAckEAAIy/AACRQACAckEAAIy/AAAWQACAckEAAIw/AACRQACAckEAAIw/AAAWQAAA60AAAIw/AACRQAAA60AAAIw/AAAWQAAA60AAAIy/AACRQAAA60AAAIy/AAAWQACAckEAAIw/AACRQACAckEAAIw/AAAWQAAA60AAAIw/AACRQAAA60AAAIw/AACRQACAckEAAIy/AAAWQACAckEAAIy/AACRQAAA60AAAIy/AAAWQAAA60AAAIy/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAkPwAAED8AADA/AAAQPwAAJD8AAEA/AAAwPwAAQD8AAEA/AAAQPwAATD8AABA/AABAPwAAQD8AAEw/AABAPwAAPD8AABA/AAAwPwAAED8AADw/AAAEPwAAMD8AAAQ/AABIPwAABD8AADw/AAAEPwAASD8AABA/AAA8PwAAED8AAEw/AAAQPwAAWD8AABA/AABMPwAAQD8AAFg/AABAPwAAMD8AABA/AAA8PwAAED8AADA/AABAPwAAPD8AAEA/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAAgwAAAcEEAAHA/AAAgwAAAcEEAAHC/AAAgwAAA8EAAAHA/AAAgwAAA8EAAAHC/AACMwAAAcEEAAHC/AACMwAAAcEEAAHA/AACMwAAA8EAAAHC/AACMwAAA8EAAAHA/AACMwAAAcEEAAHC/AAAgwAAAcEEAAHC/AACMwAAAcEEAAHA/AAAgwAAAcEEAAHA/AACMwAAA8EAAAHA/AAAgwAAA8EAAAHA/AACMwAAA8EAAAHC/AAAgwAAA8EAAAHC/AACMwAAAcEEAAHA/AAAgwAAAcEEAAHA/AACMwAAA8EAAAHA/AAAgwAAA8EAAAHA/AAAgwAAAcEEAAHC/AACMwAAAcEEAAHC/AAAgwAAA8EAAAHC/AACMwAAA8EAAAHC/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/ABAEPwAQUD8A8A8/ABBQPwAQBD8A8H8/APAPPwDwfz8AEBw/ABBQPwDwJz8AEFA/ABAcPwDwfz8A8Cc/APB/PwDwGz8A8E8/ABAQPwDwTz8A8Bs/ABBEPwAQED8AEEQ/APAnPwAQRD8AEBw/ABBEPwDwJz8A8E8/ABAcPwDwTz8AECg/ABBQPwDwMz8AEFA/ABAoPwDwfz8A8DM/APB/PwAQED8AEFA/APAbPwAQUD8AEBA/APB/PwDwGz8A8H8/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAAWwACAckEAAIw/AAAWwACAckEAAIy/AAAWwAAA60AAAIw/AAAWwAAA60AAAIy/AACRwACAckEAAIy/AACRwACAckEAAIw/AACRwAAA60AAAIy/AACRwAAA60AAAIw/AACRwACAckEAAIy/AAAWwACAckEAAIy/AACRwACAckEAAIw/AAAWwACAckEAAIw/AACRwAAA60AAAIw/AAAWwAAA60AAAIw/AACRwAAA60AAAIy/AAAWwAAA60AAAIy/AACRwACAckEAAIw/AAAWwACAckEAAIw/AACRwAAA60AAAIw/AAAWwAAA60AAAIw/AAAWwACAckEAAIy/AACRwACAckEAAIy/AAAWwAAA60AAAIy/AACRwAAA60AAAIy/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AABAPwAAUD8AAEw/AABQPwAAQD8AAIA/AABMPwAAgD8AAFw/AABQPwAAaD8AAFA/AABcPwAAgD8AAGg/AACAPwAAXD8AAFA/AABQPwAAUD8AAFw/AABEPwAAUD8AAEQ/AABoPwAARD8AAFw/AABEPwAAaD8AAFA/AABcPwAAUD8AAGw/AABQPwAAeD8AAFA/AABsPwAAgD8AAHg/AACAPwAAUD8AAFA/AABcPwAAUD8AAFA/AACAPwAAXD8AAIA/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAAcQAAA8EAAAHA/AAAcQAAA8EAAAHC/AAAcQAAAAAAAAHA/AAAcQAAAAAAAAHC/AACAvQAA8EAAAHC/AACAvQAA8EAAAHA/AACAvQAAAAAAAHC/AACAvQAAAAAAAHA/AACAvQAA8EAAAHC/AAAcQAAA8EAAAHC/AACAvQAA8EAAAHA/AAAcQAAA8EAAAHA/AACAvQAAAAAAAHA/AAAcQAAAAAAAAHA/AACAvQAAAAAAAHC/AAAcQAAAAAAAAHC/AACAvQAA8EAAAHA/AAAcQAAA8EAAAHA/AACAvQAAAAAAAHA/AAAcQAAAAAAAAHA/AAAcQAAA8EAAAHC/AACAvQAA8EAAAHC/AAAcQAAAAAAAAHC/AACAvQAAAAAAAHC/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACAPAAAoD4AAIA9AACgPgAAgDwAAAA/AACAPQAAAD8AAAA+AACgPgAAMD4AAKA+AAAAPgAAAD8AADA+AAAAPwAAAD4AAKA+AACAPQAAoD4AAAA+AACIPgAAgD0AAIg+AABAPgAAiD4AAAA+AACIPgAAQD4AAKA+AAAAPgAAoD4AAEA+AACgPgAAgD4AAKA+AABAPgAAAD8AAIA+AAAAPwAAgD0AAKA+AAAAPgAAoD4AAIA9AAAAPwAAAD4AAAA/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAAmQAAA9UAAAIw/AAAmQAAA9UAAAIy/AAAmQAAAIL4AAIw/AAAmQAAAIL4AAIy/AABgvgAA9UAAAIy/AABgvgAA9UAAAIw/AABgvgAAIL4AAIy/AABgvgAAIL4AAIw/AABgvgAA9UAAAIy/AAAmQAAA9UAAAIy/AABgvgAA9UAAAIw/AAAmQAAA9UAAAIw/AABgvgAAIL4AAIw/AAAmQAAAIL4AAIw/AABgvgAAIL4AAIy/AAAmQAAAIL4AAIy/AABgvgAA9UAAAIw/AAAmQAAA9UAAAIw/AABgvgAAIL4AAIw/AAAmQAAAIL4AAIw/AAAmQAAA9UAAAIy/AABgvgAA9UAAAIy/AAAmQAAAIL4AAIy/AABgvgAAIL4AAIy/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACCPAAQED8AAH89ABAQPwAAgjwA8D8/AAB/PQDwPz8AQAA+ABAQPwDALz4AEBA/AEAAPgDwPz8AwC8+APA/PwCA/z0A8A8/AICAPQDwDz8AgP89ABAEPwCAgD0AEAQ/AMA/PgAQBD8AQAA+ABAEPwDAPz4A8A8/AEAAPgDwDz8AQDA+ABAQPwDAbz4AEBA/AEAwPgDwPz8AwG8+APA/PwCAgD0AEBA/AID/PQAQED8AgIA9APA/PwCA/z0A8D8/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAAAcQAAAoD8AAHC/AAAcQAAAoD8AADTAAAAcQAAAAAAAAHC/AAAcQAAAAAAAADTAAACAvQAAoD8AADTAAACAvQAAoD8AAHC/AACAvQAAAAAAADTAAACAvQAAAAAAAHC/AACAvQAAoD8AADTAAAAcQAAAoD8AADTAAACAvQAAoD8AAHC/AAAcQAAAoD8AAHC/AACAvQAAAAAAAHC/AAAcQAAAAAAAAHC/AACAvQAAAAAAADTAAAAcQAAAAAAAADTAAACAvQAAoD8AAHC/AAAcQAAAoD8AAHC/AACAvQAAAAAAAHC/AAAcQAAAAAAAAHC/AAAcQAAAoD8AADTAAACAvQAAoD8AADTAAAAcQAAAAAAAADTAAACAvQAAAAAAADTAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/ABBIPwAQAD8A8FM/ABAAPwAQSD8A8Ac/APBTPwDwBz8AEGQ/ABAAPwDwbz8AEAA/ABBkPwDwBz8A8G8/APAHPwDwYz8A4P8+ABBUPwDg/z4A8GM/ACDoPgAQVD8AIOg+APBzPwAg6D4AEGQ/ACDoPgDwcz8A4P8+ABBkPwDg/z4AEHA/ABAAPwDwfz8AEAA/ABBwPwDwBz8A8H8/APAHPwAQVD8AEAA/APBjPwAQAD8AEFQ/APAHPwDwYz8A8Ac/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAACAPQAA8EAAAHA/AACAPQAA8EAAAHC/AACAPQAAAAAAAHA/AACAPQAAAAAAAHC/AAAcwAAA8EAAAHC/AAAcwAAA8EAAAHA/AAAcwAAAAAAAAHC/AAAcwAAAAAAAAHA/AAAcwAAA8EAAAHC/AACAPQAA8EAAAHC/AAAcwAAA8EAAAHA/AACAPQAA8EAAAHA/AAAcwAAAAAAAAHA/AACAPQAAAAAAAHA/AAAcwAAAAAAAAHC/AACAPQAAAAAAAHC/AAAcwAAA8EAAAHA/AACAPQAA8EAAAHA/AAAcwAAAAAAAAHA/AACAPQAAAAAAAHA/AACAPQAA8EAAAHC/AAAcwAAA8EAAAHC/AACAPQAAAAAAAHC/AAAcwAAAAAAAAHC/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACIPgAAUD8AAKA+AABQPwAAiD4AAIA/AACgPgAAgD8AAMA+AABQPwAA2D4AAFA/AADAPgAAgD8AANg+AACAPwAAwD4AAFA/AACgPgAAUD8AAMA+AABEPwAAoD4AAEQ/AADgPgAARD8AAMA+AABEPwAA4D4AAFA/AADAPgAAUD8AAOA+AABQPwAAAD8AAFA/AADgPgAAgD8AAAA/AACAPwAAoD4AAFA/AADAPgAAUD8AAKA+AACAPwAAwD4AAIA/AAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUAAABgPgAA9UAAAIw/AABgPgAA9UAAAIy/AABgPgAAIL4AAIw/AABgPgAAIL4AAIy/AAAmwAAA9UAAAIy/AAAmwAAA9UAAAIw/AAAmwAAAIL4AAIy/AAAmwAAAIL4AAIw/AAAmwAAA9UAAAIy/AABgPgAA9UAAAIy/AAAmwAAA9UAAAIw/AABgPgAA9UAAAIw/AAAmwAAAIL4AAIw/AABgPgAAIL4AAIw/AAAmwAAAIL4AAIy/AABgPgAAIL4AAIy/AAAmwAAA9UAAAIw/AABgPgAA9UAAAIw/AAAmwAAAIL4AAIw/AABgPgAAIL4AAIw/AABgPgAA9UAAAIy/AAAmwAAA9UAAAIy/AABgPgAAIL4AAIy/AAAmwAAAIL4AAIy/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACCPAAQUD8AAH89ABBQPwAAgjwA8H8/AAB/PQDwfz8AQAA+ABBQPwDALz4AEFA/AEAAPgDwfz8AwC8+APB/PwCA/z0A8E8/AICAPQDwTz8AgP89ABBEPwCAgD0AEEQ/AMA/PgAQRD8AQAA+ABBEPwDAPz4A8E8/AEAAPgDwTz8AQDA+ABBQPwDAbz4AEFA/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"}],"accessors":[{"bufferView":0,"componentType":5126,"count":24,"max":[2.5,5,2.5],"min":[-2.5,0,-2.5],"type":"VEC3"},{"bufferView":1,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":2,"componentType":5126,"count":24,"max":[0.499755859375,0.249755859375],"min":[0.000244140625,0.000244140625],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":4,"componentType":5126,"count":24,"max":[2.8125,5.3125,2.8125],"min":[-2.8125,-0.3125,-2.8125],"type":"VEC3"},{"bufferView":5,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":6,"componentType":5126,"count":24,"max":[0.999755859375,0.249755859375],"min":[0.500244140625,0.000244140625],"type":"VEC2"},{"bufferView":7,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":8,"componentType":5126,"count":24,"max":[2.5,15,0.9375],"min":[-2.5,7.5,-0.9375],"type":"VEC3"},{"bufferView":9,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":10,"componentType":5126,"count":24,"max":[0.625,0.5],"min":[0.265625,0.265625],"type":"VEC2"},{"bufferView":11,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":12,"componentType":5126,"count":24,"max":[2.65625,15.15625,1.09375],"min":[-2.65625,7.34375,-1.09375],"type":"VEC3"},{"bufferView":13,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":14,"componentType":5126,"count":24,"max":[0.625,0.75],"min":[0.265625,0.515625],"type":"VEC2"},{"bufferView":15,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":16,"componentType":5126,"count":24,"max":[4.375,15,0.9375],"min":[2.5,7.5,-0.9375],"type":"VEC3"},{"bufferView":17,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":18,"componentType":5126,"count":24,"max":[0.827880859375,0.499755859375],"min":[0.640869140625,0.265869140625],"type":"VEC2"},{"bufferView":19,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":20,"componentType":5126,"count":24,"max":[4.53125,15.15625,1.09375],"min":[2.34375,7.34375,-1.09375],"type":"VEC3"},{"bufferView":21,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":22,"componentType":5126,"count":24,"max":[0.84375,0.75],"min":[0.640625,0.515625],"type":"VEC2"},{"bufferView":23,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":24,"componentType":5126,"count":24,"max":[-2.5,15,0.9375],"min":[-4.375,7.5,-0.9375],"type":"VEC3"},{"bufferView":25,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":26,"componentType":5126,"count":24,"max":[0.702880859375,0.999755859375],"min":[0.515869140625,0.765869140625],"type":"VEC2"},{"bufferView":27,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":28,"componentType":5126,"count":24,"max":[-2.34375,15.15625,1.09375],"min":[-4.53125,7.34375,-1.09375],"type":"VEC3"},{"bufferView":29,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":30,"componentType":5126,"count":24,"max":[0.96875,1],"min":[0.75,0.765625],"type":"VEC2"},{"bufferView":31,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":32,"componentType":5126,"count":24,"max":[2.4375,7.5,0.9375],"min":[-0.0625,0,-0.9375],"type":"VEC3"},{"bufferView":33,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":34,"componentType":5126,"count":24,"max":[0.25,0.5],"min":[0.015625,0.265625],"type":"VEC2"},{"bufferView":35,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":36,"componentType":5126,"count":24,"max":[2.59375,7.65625,1.09375],"min":[-0.21875,-0.15625,-1.09375],"type":"VEC3"},{"bufferView":37,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":38,"componentType":5126,"count":24,"max":[0.234130859375,0.749755859375],"min":[0.015869140625,0.515869140625],"type":"VEC2"},{"bufferView":39,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":40,"componentType":5126,"count":24,"max":[2.4375,1.25,-0.9375],"min":[-0.0625,0,-2.8125],"type":"VEC3"},{"bufferView":41,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":42,"componentType":5126,"count":24,"max":[0.999755859375,0.531005859375],"min":[0.781494140625,0.453369140625],"type":"VEC2"},{"bufferView":43,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":44,"componentType":5126,"count":24,"max":[0.0625,7.5,0.9375],"min":[-2.4375,0,-0.9375],"type":"VEC3"},{"bufferView":45,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":46,"componentType":5126,"count":24,"max":[0.5,1],"min":[0.265625,0.765625],"type":"VEC2"},{"bufferView":47,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":48,"componentType":5126,"count":24,"max":[0.21875,7.65625,1.09375],"min":[-2.59375,-0.15625,-1.09375],"type":"VEC3"},{"bufferView":49,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":50,"componentType":5126,"count":24,"max":[0.234130859375,0.999755859375],"min":[0.015869140625,0.765869140625],"type":"VEC2"},{"bufferView":51,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":52,"componentType":5126,"count":24,"max":[0.0625,1.25,-0.9375],"min":[-2.4375,0,-2.8125],"type":"VEC3"},{"bufferView":53,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":54,"componentType":5126,"count":24,"max":[0.953125,0.421875],"min":[0.828125,0.3125],"type":"VEC2"},{"bufferView":55,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":56,"componentType":5126,"count":2,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":57,"componentType":5126,"count":2,"max":[4.234296196628321e-17,-0.7223639488220215,0.6915130615234375,4.423203734456241e-17],"min":[4.234296196628321e-17,-0.7223639488220215,0.6915130615234375,4.423203734456241e-17],"type":"VEC4"},{"bufferView":58,"componentType":5126,"count":2,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":59,"componentType":5126,"count":2,"max":[0,0.625,10],"min":[0,0.625,10],"type":"VEC3"},{"bufferView":60,"componentType":5126,"count":2,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":61,"componentType":5126,"count":2,"max":[-0.06540312618017197,0,0,0.9978589415550232],"min":[-0.06540312618017197,0,0,0.9978589415550232],"type":"VEC4"},{"bufferView":62,"componentType":5126,"count":2,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":63,"componentType":5126,"count":2,"max":[0,7.5,0],"min":[0,7.5,0],"type":"VEC3"},{"bufferView":64,"componentType":5126,"count":39,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":65,"componentType":5126,"count":39,"max":[0.008726535364985466,0,0,1],"min":[0,0,0,0.9999619126319885],"type":"VEC4"},{"bufferView":66,"componentType":5126,"count":2,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":67,"componentType":5126,"count":2,"max":[0,7.5,0],"min":[0,7.5,0],"type":"VEC3"},{"bufferView":68,"componentType":5126,"count":39,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":69,"componentType":5126,"count":39,"max":[0,0,0,1],"min":[-0.008726535364985466,0,0,0.9999619126319885],"type":"VEC4"},{"bufferView":70,"componentType":5126,"count":39,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":71,"componentType":5126,"count":39,"max":[0,7.5217061042785645,0],"min":[0,7.5,-0.12310096621513367],"type":"VEC3"},{"bufferView":72,"componentType":5126,"count":39,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":73,"componentType":5126,"count":39,"max":[0,0,0.19509032368659973,0.9807852506637573],"min":[-0.017117062583565712,-0.0034047956578433514,0.1950606107711792,0.9806358814239502],"type":"VEC4"},{"bufferView":74,"componentType":5126,"count":39,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":75,"componentType":5126,"count":39,"max":[3.125,6.260852813720703,0],"min":[3.125,6.25,-0.061550483107566833],"type":"VEC3"},{"bufferView":76,"componentType":5126,"count":39,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":77,"componentType":5126,"count":39,"max":[0,0.0022779961582273245,-0.13050630688667297,0.9914448857307434],"min":[-0.017303097993135452,0,-0.13052618503570557,0.9912938475608826],"type":"VEC4"},{"bufferView":78,"componentType":5126,"count":39,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":79,"componentType":5126,"count":39,"max":[-3.125,6.2717061042785645,0],"min":[-3.125,6.25,-0.12310096621513367],"type":"VEC3"},{"bufferView":80,"componentType":5126,"count":2,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":81,"componentType":5126,"count":2,"max":[0,0,0.04361938685178757,0.9990482330322266],"min":[0,0,0.04361938685178757,0.9990482330322266],"type":"VEC4"},{"bufferView":82,"componentType":5126,"count":2,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":83,"componentType":5126,"count":2,"max":[0,0,-0.02181488461792469,0.9997619986534119],"min":[0,0,-0.02181488461792469,0.9997619986534119],"type":"VEC4"}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":0}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true}],"textures":[{"sampler":0,"source":0,"name":"artifact_vix.png"}],"samplers":[{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071}],"images":[{"mimeType":"image/png","name":"artifact_vix.png","uri":"artifact_vix.png"}],"meshes":[{"primitives":[{"mode":4,"attributes":{"POSITION":0,"NORMAL":1,"TEXCOORD_0":2},"indices":3,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":4,"NORMAL":5,"TEXCOORD_0":6},"indices":7,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":8,"NORMAL":9,"TEXCOORD_0":10},"indices":11,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":12,"NORMAL":13,"TEXCOORD_0":14},"indices":15,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":16,"NORMAL":17,"TEXCOORD_0":18},"indices":19,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":20,"NORMAL":21,"TEXCOORD_0":22},"indices":23,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":24,"NORMAL":25,"TEXCOORD_0":26},"indices":27,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":28,"NORMAL":29,"TEXCOORD_0":30},"indices":31,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":32,"NORMAL":33,"TEXCOORD_0":34},"indices":35,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":36,"NORMAL":37,"TEXCOORD_0":38},"indices":39,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":40,"NORMAL":41,"TEXCOORD_0":42},"indices":43,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":44,"NORMAL":45,"TEXCOORD_0":46},"indices":47,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":48,"NORMAL":49,"TEXCOORD_0":50},"indices":51,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":52,"NORMAL":53,"TEXCOORD_0":54},"indices":55,"material":0}]}],"animations":[{"name":"animation","samplers":[{"input":56,"output":57,"interpolation":"LINEAR"},{"input":58,"output":59,"interpolation":"LINEAR"},{"input":60,"output":61,"interpolation":"LINEAR"},{"input":62,"output":63,"interpolation":"LINEAR"},{"input":64,"output":65,"interpolation":"LINEAR"},{"input":66,"output":67,"interpolation":"LINEAR"},{"input":68,"output":69,"interpolation":"LINEAR"},{"input":70,"output":71,"interpolation":"LINEAR"},{"input":72,"output":73,"interpolation":"LINEAR"},{"input":74,"output":75,"interpolation":"LINEAR"},{"input":76,"output":77,"interpolation":"LINEAR"},{"input":78,"output":79,"interpolation":"LINEAR"},{"input":80,"output":81,"interpolation":"LINEAR"},{"input":82,"output":83,"interpolation":"LINEAR"}],"channels":[{"sampler":0,"target":{"node":23,"path":"rotation"}},{"sampler":1,"target":{"node":23,"path":"translation"}},{"sampler":2,"target":{"node":12,"path":"rotation"}},{"sampler":3,"target":{"node":12,"path":"translation"}},{"sampler":4,"target":{"node":2,"path":"rotation"}},{"sampler":5,"target":{"node":2,"path":"translation"}},{"sampler":6,"target":{"node":5,"path":"rotation"}},{"sampler":7,"target":{"node":5,"path":"translation"}},{"sampler":8,"target":{"node":8,"path":"rotation"}},{"sampler":9,"target":{"node":8,"path":"translation"}},{"sampler":10,"target":{"node":11,"path":"rotation"}},{"sampler":11,"target":{"node":11,"path":"translation"}},{"sampler":12,"target":{"node":17,"path":"rotation"}},{"sampler":13,"target":{"node":22,"path":"rotation"}}]}]} \ No newline at end of file diff --git a/mods/artifact_world/init.lua b/mods/artifact_world/init.lua index 9cff307..12fb90c 100644 --- a/mods/artifact_world/init.lua +++ b/mods/artifact_world/init.lua @@ -257,7 +257,7 @@ artifact.register_node("vines", { type = "fixed", fixed = { -0.5, -0.5, 0.5, - 0.5, 0.5, 0.45 + 0.5, 0.5, 0.35 } }, paramtype = "light", @@ -279,7 +279,7 @@ artifact.register_node("vines_dry", { type = "fixed", fixed = { -0.5, -0.5, 0.5, - 0.5, 0.5, 0.45 + 0.5, 0.5, 0.35 } }, paramtype = "light", @@ -354,7 +354,16 @@ local function register_lamp(color, brightness) 2/16, 4/16, 2/16 } } - } + }, + selection_box = { + type = "fixed", + fixed = { + { + -2/16,0,-2/16, + 2/16, 4/16, 2/16 + } + } + }, }) artifact.register_node("lamp_"..color.."_wall", { drawtype = "mesh", @@ -376,6 +385,19 @@ local function register_lamp(color, brightness) 1/16, 6/16, 8/16 }, } + }, + selection_box = { + type = "fixed", + fixed = { + { + -2/16,-1/16,-1/16, + 2/16, 3/16, 3/16 + }, + { + -1/16,4/16,-1/16, + 1/16, 6/16, 8/16 + }, + } } }) artifact.register_node("lamp_"..color.."_hanging", { @@ -393,13 +415,23 @@ local function register_lamp(color, brightness) 2/16, 4/16, 2/16 } } + }, + selection_box = { + type = "fixed", + fixed = { + { + -2/16,0,-2/16, + 2/16, 4/16, 2/16 + } + } } }) end register_lamp("red", 6) -register_lamp("gold", 8) +register_lamp("green", 8) register_lamp("blue", 10) +register_lamp("gold", 12) artifact.register_node("light", { @@ -420,7 +452,7 @@ if artifact.debug then minetest.register_decoration { deco_type = "simple", - decoration = "lamp_blue", + decoration = "lamp_gold", place_on = "stone", fill_ratio = 0.02, } diff --git a/mods/artifact_world/models/artifact_torch_standing.mtl b/mods/artifact_world/models/artifact_torch_standing.mtl deleted file mode 100644 index 189f033..0000000 --- a/mods/artifact_world/models/artifact_torch_standing.mtl +++ /dev/null @@ -1,4 +0,0 @@ -# Made in Blockbench 4.12.5 -newmtl m_e3e69eb0-b6c9-b9c2-690f-4d510df185b2 -map_Kd artifact_torch.png -newmtl none \ No newline at end of file diff --git a/mods/artifact_world/schems/map.json b/mods/artifact_world/schems/map.json index 999816f..4818480 100644 --- a/mods/artifact_world/schems/map.json +++ b/mods/artifact_world/schems/map.json @@ -1 +1 @@ -{"(45, 21, 52)":{"fields":null,"inventory":null}} \ No newline at end of file +{"(24, 24, 41)":{"fields":{"_config":"return {type=\"cube\",offset={z=1,x=4,y=0},radius=3,axis=\"x\"}","config":"return {radius=3,axis=\"x\",offset={z=1,x=4,y=0},type=\"cube\"}"},"inventory":null},"(24, 24, 43)":{"fields":{"_config":"return {type=\"cube\",offset={z=-1,x=4,y=0},radius=3,axis=\"x\"}","config":"return {radius=3,axis=\"x\",offset={z=-1,x=4,y=0},type=\"cube\"}"},"inventory":null},"(39, 33, 33)":{"fields":null,"inventory":null},"(39, 34, 52)":{"fields":{"inverted":"true"},"inventory":null},"(41, 33, 34)":{"fields":{"_config":"return {type=\"plane\",offset={z=12,x=-6,y=0},radius=15,axis=\"x\"}","config":"return {radius=15,axis=\"x\",offset={z=12,x=-6,y=0},type=\"plane\"}"},"inventory":null},"(43, 33, 33)":{"fields":{"inverted":"true"},"inventory":null},"(43, 34, 52)":{"fields":null,"inventory":null},"(44, 24, 33)":{"fields":{"open":"false"},"inventory":null},"(44, 24, 38)":{"fields":{"_config":"return {type=\"plane\",radius=15,offset={z=0,x=-8,y=0},axis=\"x\"}","config":"return {offset={z=0,x=-8,y=0},axis=\"x\",radius=15,type=\"plane\"}"},"inventory":null},"(44, 24, 47)":{"fields":{"_config":"return {type=\"plane\",radius=15,offset={z=0,x=-7,y=0},axis=\"x\"}","config":"return {offset={z=0,x=-7,y=0},axis=\"x\",radius=15,type=\"plane\"}"},"inventory":null},"(44, 24, 52)":{"fields":{"locked":"true","open":"false"},"inventory":null},"(62, 24, 42)":{"fields":null,"inventory":null},"(62, 24, 43)":{"fields":{"inverted":"true"},"inventory":null},"(62, 34, 42)":{"fields":null,"inventory":null},"(62, 34, 43)":{"fields":{"inverted":"true"},"inventory":null}} \ No newline at end of file diff --git a/mods/artifact_world/schems/map.mts b/mods/artifact_world/schems/map.mts index 0201422..7f25169 100644 Binary files a/mods/artifact_world/schems/map.mts and b/mods/artifact_world/schems/map.mts differ