/ /code /code.swankyquant /code.swankyquant.algorithm /code.swankyquant.color_distance /code.swankyquant.color_distance_weight /code.swankyquant.swanky_quant /code.swankyquant.swanky_quant_remap /draw/entities /entities.systems /entities.systems.bang /entities.systems.donut /entities.systems.horde /entities.systems.invader /entities.systems.item /entities.systems.level /entities.systems.menu /entities.systems.missile /entities.systems.npc /entities.systems.player /entities.systems.score /entities.systems.space /entities.systems.stars /entities.systems.tile /entities.systems.yarn/entities.tiles /entities.tiles.npc /entities.tiles.sprite /entities.tiles.start /graphics /hardware /levels/lua /lua.glslang /lua.glslang.lint_gles2 /lua.glslang.parse_chunks /lua.glslang.pp /lua.glslang.replace_include /lua.glslang.yank_shader_versions/lua.wetgenes /lua.wetgenes.bullet /lua.wetgenes.bullet.body /lua.wetgenes.bullet.body.cgroup /lua.wetgenes.bullet.body.change_shape /lua.wetgenes.bullet.body.cmask /lua.wetgenes.bullet.body.force /lua.wetgenes.bullet.body.gravity /lua.wetgenes.bullet.body.impulse /lua.wetgenes.bullet.body.overlaps /lua.wetgenes.bullet.body.support/lua.wetgenes.bullet.world /lua.wetgenes.bullet.world.body /lua.wetgenes.bullet.world.body.active /lua.wetgenes.bullet.world.body.angular_factor /lua.wetgenes.bullet.world.body.angular_velocity /lua.wetgenes.bullet.world.body.ccd /lua.wetgenes.bullet.world.body.custom_material_callback /lua.wetgenes.bullet.world.body.damping /lua.wetgenes.bullet.world.body.destroy /lua.wetgenes.bullet.world.body.factor /lua.wetgenes.bullet.world.body.friction /lua.wetgenes.bullet.world.body.restitution /lua.wetgenes.bullet.world.body.sleep /lua.wetgenes.bullet.world.body.transform /lua.wetgenes.bullet.world.body.velocity /lua.wetgenes.bullet.world.contacts /lua.wetgenes.bullet.world.destroy /lua.wetgenes.bullet.world.get /lua.wetgenes.bullet.world.gravity/lua.wetgenes.bullet.world.mesh /lua.wetgenes.bullet.world.mesh.destroy /lua.wetgenes.bullet.world.ray_test /lua.wetgenes.bullet.world.set/lua.wetgenes.bullet.world.shape /lua.wetgenes.bullet.world.shape.destroy /lua.wetgenes.bullet.world.shape.margin /lua.wetgenes.bullet.world.status /lua.wetgenes.bullet.world.step/lua.wetgenes.chipmunk /lua.wetgenes.chipmunk.arbiter /lua.wetgenes.chipmunk.arbiter.ignore /lua.wetgenes.chipmunk.arbiter.points /lua.wetgenes.chipmunk.arbiter.surface_velocity/lua.wetgenes.chipmunk.body /lua.wetgenes.chipmunk.body.angle /lua.wetgenes.chipmunk.body.angular_velocity /lua.wetgenes.chipmunk.body.apply_force /lua.wetgenes.chipmunk.body.apply_impulse /lua.wetgenes.chipmunk.body.center_of_gravity /lua.wetgenes.chipmunk.body.force /lua.wetgenes.chipmunk.body.mass /lua.wetgenes.chipmunk.body.moment /lua.wetgenes.chipmunk.body.position /lua.wetgenes.chipmunk.body.position_func /lua.wetgenes.chipmunk.body.shape /lua.wetgenes.chipmunk.body.torque /lua.wetgenes.chipmunk.body.type /lua.wetgenes.chipmunk.body.velocity /lua.wetgenes.chipmunk.body.velocity_func/lua.wetgenes.chipmunk.constraint /lua.wetgenes.chipmunk.constraint.collide_bodies /lua.wetgenes.chipmunk.constraint.error_bias /lua.wetgenes.chipmunk.constraint.impulse /lua.wetgenes.chipmunk.constraint.max_bias /lua.wetgenes.chipmunk.constraint.max_force/lua.wetgenes.chipmunk.shape /lua.wetgenes.chipmunk.shape.bounding_box /lua.wetgenes.chipmunk.shape.collision_type /lua.wetgenes.chipmunk.shape.elasticity /lua.wetgenes.chipmunk.shape.filter /lua.wetgenes.chipmunk.shape.friction /lua.wetgenes.chipmunk.shape.query_point /lua.wetgenes.chipmunk.shape.query_segment /lua.wetgenes.chipmunk.shape.radius /lua.wetgenes.chipmunk.shape.sensor /lua.wetgenes.chipmunk.shape.surface_velocity/lua.wetgenes.chipmunk.space /lua.wetgenes.chipmunk.space.add /lua.wetgenes.chipmunk.space.add_handler /lua.wetgenes.chipmunk.space.body /lua.wetgenes.chipmunk.space.collision_bias /lua.wetgenes.chipmunk.space.collision_persistence /lua.wetgenes.chipmunk.space.collision_slop /lua.wetgenes.chipmunk.space.constraint /lua.wetgenes.chipmunk.space.contains /lua.wetgenes.chipmunk.space.current_time_step /lua.wetgenes.chipmunk.space.damping /lua.wetgenes.chipmunk.space.gravity /lua.wetgenes.chipmunk.space.idle_speed_threshold /lua.wetgenes.chipmunk.space.iterations /lua.wetgenes.chipmunk.space.locked /lua.wetgenes.chipmunk.space.query_bounding_box /lua.wetgenes.chipmunk.space.query_point /lua.wetgenes.chipmunk.space.query_point_nearest /lua.wetgenes.chipmunk.space.query_segment /lua.wetgenes.chipmunk.space.query_segment_first /lua.wetgenes.chipmunk.space.query_shape /lua.wetgenes.chipmunk.space.reindex /lua.wetgenes.chipmunk.space.remove /lua.wetgenes.chipmunk.space.sleep_time_threshold /lua.wetgenes.chipmunk.space.step /lua.wetgenes.chipmunk.space.type/lua.wetgenes.csv /lua.wetgenes.csv.build /lua.wetgenes.csv.doesc /lua.wetgenes.csv.doquote /lua.wetgenes.csv.map /lua.wetgenes.csv.parse /lua.wetgenes.csv.unesc /lua.wetgenes.csv.unquote /lua.wetgenes.deepcompare /lua.wetgenes.deepcopy /lua.wetgenes.export/lua.wetgenes.gamecake /lua.wetgenes.gamecake.framebuffers /lua.wetgenes.gamecake.framebuffers.create /lua.wetgenes.gamecake.framebuffers.dirty/lua.wetgenes.gamecake.framebuffers.fbo /lua.wetgenes.gamecake.framebuffers.fbo.bind_depth /lua.wetgenes.gamecake.framebuffers.fbo.bind_depth_snapshot /lua.wetgenes.gamecake.framebuffers.fbo.bind_frame /lua.wetgenes.gamecake.framebuffers.fbo.bind_texture /lua.wetgenes.gamecake.framebuffers.fbo.bind_texture_snapshot /lua.wetgenes.gamecake.framebuffers.fbo.check /lua.wetgenes.gamecake.framebuffers.fbo.clean /lua.wetgenes.gamecake.framebuffers.fbo.download /lua.wetgenes.gamecake.framebuffers.fbo.free_depth /lua.wetgenes.gamecake.framebuffers.fbo.free_frame /lua.wetgenes.gamecake.framebuffers.fbo.free_snapshot /lua.wetgenes.gamecake.framebuffers.fbo.free_texture /lua.wetgenes.gamecake.framebuffers.fbo.mipmap /lua.wetgenes.gamecake.framebuffers.fbo.mipmap_depth /lua.wetgenes.gamecake.framebuffers.fbo.mipmap_texture /lua.wetgenes.gamecake.framebuffers.fbo.pingpong /lua.wetgenes.gamecake.framebuffers.fbo.render_start /lua.wetgenes.gamecake.framebuffers.fbo.render_stop /lua.wetgenes.gamecake.framebuffers.fbo.resize /lua.wetgenes.gamecake.framebuffers.fbo.snapshot /lua.wetgenes.gamecake.framebuffers.start /lua.wetgenes.gamecake.framebuffers.stop/lua.wetgenes.gamecake.fun /lua.wetgenes.gamecake.fun.chatdown /lua.wetgenes.gamecake.fun.chatdown.chat /lua.wetgenes.gamecake.fun.chatdown.chat.get_tag /lua.wetgenes.gamecake.fun.chatdown.chat.replace_tags /lua.wetgenes.gamecake.fun.chatdown.chat.set_tag /lua.wetgenes.gamecake.fun.chatdown.chat.set_tags /lua.wetgenes.gamecake.fun.chatdown.chat.set_topic/lua.wetgenes.gamecake.fun.chatdown.chats /lua.wetgenes.gamecake.fun.chatdown.chats.changes /lua.wetgenes.gamecake.fun.chatdown.chats.get_subject /lua.wetgenes.gamecake.fun.chatdown.chats.get_tag /lua.wetgenes.gamecake.fun.chatdown.chats.replace_tags /lua.wetgenes.gamecake.fun.chatdown.chats.set_subject /lua.wetgenes.gamecake.fun.chatdown.chats.set_tag /lua.wetgenes.gamecake.fun.chatdown.dotnames /lua.wetgenes.gamecake.fun.chatdown.parse /lua.wetgenes.gamecake.fun.chatdown.setup /lua.wetgenes.gamecake.fun.chatdown.setup_chat /lua.wetgenes.gamecake.fun.chatdown.text/lua.wetgenes.gamecake.fun.yarn /lua.wetgenes.gamecake.fun.yarn.cells/lua.wetgenes.gamecake.fun.yarn.items /lua.wetgenes.gamecake.fun.yarn.items.cells /lua.wetgenes.gamecake.fun.yarn.items.create /lua.wetgenes.gamecake.fun.yarn.items.create_pages /lua.wetgenes.gamecake.fun.yarn.items.destroy /lua.wetgenes.gamecake.fun.yarn.items.find /lua.wetgenes.gamecake.fun.yarn.items.get_big /lua.wetgenes.gamecake.fun.yarn.items.insert /lua.wetgenes.gamecake.fun.yarn.items.iterate_dotnames /lua.wetgenes.gamecake.fun.yarn.items.iterate_parents /lua.wetgenes.gamecake.fun.yarn.items.metatable /lua.wetgenes.gamecake.fun.yarn.items.prefabs /lua.wetgenes.gamecake.fun.yarn.items.remove /lua.wetgenes.gamecake.fun.yarn.items.rules /lua.wetgenes.gamecake.fun.yarn.pages/lua.wetgenes.gamecake.fun.yarn.prefabs /lua.wetgenes.gamecake.fun.yarn.prefabs.set/lua.wetgenes.gamecake.fun.yarn.rules /lua.wetgenes.gamecake.fun.yarn.rules.apply /lua.wetgenes.gamecake.fun.yarn.rules.can /lua.wetgenes.gamecake.fun.yarn.rules.set/lua.wetgenes.gamecake.oven /lua.wetgenes.gamecake.oven.bake/lua.wetgenes.gamecake.toaster /lua.wetgenes.gamecake.toaster.bake /lua.wetgenes.gamecake.toaster.newticks/lua.wetgenes.gamecake.widgets /lua.wetgenes.gamecake.widgets.button /lua.wetgenes.gamecake.widgets.button.setup /lua.wetgenes.gamecake.widgets.button.update/lua.wetgenes.gamecake.widgets.center /lua.wetgenes.gamecake.widgets.center.layout /lua.wetgenes.gamecake.widgets.center.setup/lua.wetgenes.gamecake.widgets.checkbox /lua.wetgenes.gamecake.widgets.checkbox.class_hooks /lua.wetgenes.gamecake.widgets.checkbox.setup /lua.wetgenes.gamecake.widgets.checkbox.update/lua.wetgenes.gamecake.widgets.data /lua.wetgenes.gamecake.widgets.data.add_class_hook /lua.wetgenes.gamecake.widgets.data.call_hook /lua.wetgenes.gamecake.widgets.data.call_hook_later /lua.wetgenes.gamecake.widgets.data.data_dec /lua.wetgenes.gamecake.widgets.data.data_get_pos /lua.wetgenes.gamecake.widgets.data.data_get_size /lua.wetgenes.gamecake.widgets.data.data_inc /lua.wetgenes.gamecake.widgets.data.data_set /lua.wetgenes.gamecake.widgets.data.data_snap /lua.wetgenes.gamecake.widgets.data.data_tonumber /lua.wetgenes.gamecake.widgets.data.data_tonumber_from_list /lua.wetgenes.gamecake.widgets.data.data_tostring /lua.wetgenes.gamecake.widgets.data.data_tostring_from_list /lua.wetgenes.gamecake.widgets.data.data_value /lua.wetgenes.gamecake.widgets.data.del_class_hook /lua.wetgenes.gamecake.widgets.data.new_data/lua.wetgenes.gamecake.widgets.datas /lua.wetgenes.gamecake.widgets.datas.del /lua.wetgenes.gamecake.widgets.datas.get /lua.wetgenes.gamecake.widgets.datas.get_number /lua.wetgenes.gamecake.widgets.datas.get_string /lua.wetgenes.gamecake.widgets.datas.get_value /lua.wetgenes.gamecake.widgets.datas.new /lua.wetgenes.gamecake.widgets.datas.new_datas /lua.wetgenes.gamecake.widgets.datas.set /lua.wetgenes.gamecake.widgets.datas.set_infos /lua.wetgenes.gamecake.widgets.datas.set_string /lua.wetgenes.gamecake.widgets.datas.set_value/lua.wetgenes.gamecake.widgets.defs /lua.wetgenes.gamecake.widgets.defs.add /lua.wetgenes.gamecake.widgets.defs.add_border /lua.wetgenes.gamecake.widgets.defs.copy /lua.wetgenes.gamecake.widgets.defs.create /lua.wetgenes.gamecake.widgets.defs.reset /lua.wetgenes.gamecake.widgets.defs.set/lua.wetgenes.gamecake.widgets.dialogs /lua.wetgenes.gamecake.widgets.dialogs.hide_overlay /lua.wetgenes.gamecake.widgets.dialogs.setup /lua.wetgenes.gamecake.widgets.dialogs.show /lua.wetgenes.gamecake.widgets.dialogs.show_overlay/lua.wetgenes.gamecake.widgets.drag /lua.wetgenes.gamecake.widgets.drag.drag /lua.wetgenes.gamecake.widgets.drag.setup /lua.wetgenes.gamecake.widgets.drag.update/lua.wetgenes.gamecake.widgets.paragraph /lua.wetgenes.gamecake.widgets.paragraph.setup /lua.wetgenes.gamecake.widgets.setup/lua.wetgenes.gamecake.zone /lua.wetgenes.gamecake.zone.scene /lua.wetgenes.gamecake.zone.scene.add /lua.wetgenes.gamecake.zone.scene.call /lua.wetgenes.gamecake.zone.scene.caste /lua.wetgenes.gamecake.zone.scene.create_values /lua.wetgenes.gamecake.zone.scene.find_uid /lua.wetgenes.gamecake.zone.scene.forget_uid /lua.wetgenes.gamecake.zone.scene.generate_uid /lua.wetgenes.gamecake.zone.scene.remember_uid /lua.wetgenes.gamecake.zone.scene.remove /lua.wetgenes.gamecake.zone.scene.reset /lua.wetgenes.gamecake.zone.scene.sortby_update /lua.wetgenes.gamecake.zone.scene.status/lua.wetgenes.gamecake.zone.scene.systems /lua.wetgenes.gamecake.zone.scene.systems.call /lua.wetgenes.gamecake.zone.scene.systems.cocall /lua.wetgenes.gamecake.zone.scene.systems.insert /lua.wetgenes.gamecake.zone.scene.systems.remove /lua.wetgenes.gamecake.zone.scene.uids/lua.wetgenes.gamecake.zone.scene.values /lua.wetgenes.gamecake.zone.scene.values.get /lua.wetgenes.gamecake.zone.scene.values.manifest /lua.wetgenes.gamecake.zone.scene.values.new /lua.wetgenes.gamecake.zone.scene.values.pull /lua.wetgenes.gamecake.zone.scene.values.push /lua.wetgenes.gamecake.zone.scene.values.set /lua.wetgenes.gamecake.zone.scene.values.tween /lua.wetgenes.gamecake.zone.scene.values.twrap /lua.wetgenes.gamecake.zone.scene.values.unpush/lua.wetgenes.gamecake.zone.system /lua.wetgenes.gamecake.zone.system.items/lua.wetgenes.grd /lua.wetgenes.grd.adjust_contrast /lua.wetgenes.grd.adjust_hsv /lua.wetgenes.grd.adjust_rgb /lua.wetgenes.grd.attr_redux /lua.wetgenes.grd.blit /lua.wetgenes.grd.clear /lua.wetgenes.grd.clip /lua.wetgenes.grd.convert /lua.wetgenes.grd.copy_data /lua.wetgenes.grd.copy_data_layer /lua.wetgenes.grd.create /lua.wetgenes.grd.create_convert /lua.wetgenes.grd.create_normal /lua.wetgenes.grd.destroy /lua.wetgenes.grd.duplicate /lua.wetgenes.grd.fillmask /lua.wetgenes.grd.flipx /lua.wetgenes.grd.flipy /lua.wetgenes.grd.info /lua.wetgenes.grd.load /lua.wetgenes.grd.load_data /lua.wetgenes.grd.load_file /lua.wetgenes.grd.paint /lua.wetgenes.grd.palette /lua.wetgenes.grd.pixels /lua.wetgenes.grd.quant /lua.wetgenes.grd.remap /lua.wetgenes.grd.reset /lua.wetgenes.grd.resize /lua.wetgenes.grd.save /lua.wetgenes.grd.scale /lua.wetgenes.grd.shrink /lua.wetgenes.grd.slide /lua.wetgenes.grd.sort_cmap /lua.wetgenes.grd.stream /lua.wetgenes.grd.xor /lua.wetgenes.grdcanvas/lua.wetgenes.grdhistory /lua.wetgenes.grdhistory.history /lua.wetgenes.grdlayers /lua.wetgenes.grdpaint/lua.wetgenes.grdsvg /lua.wetgenes.grdsvg.string/lua.wetgenes.json /lua.wetgenes.json.decode /lua.wetgenes.json.encode/lua.wetgenes.json_diff /lua.wetgenes.json_diff.apply /lua.wetgenes.json_diff.array_common /lua.wetgenes.json_diff.array_match /lua.wetgenes.json_diff.array_trim /lua.wetgenes.json_diff.diff /lua.wetgenes.json_diff.dupe /lua.wetgenes.json_diff.equal /lua.wetgenes.json_diff.similar /lua.wetgenes.json_diff.undo/lua.wetgenes.json_pack /lua.wetgenes.json_pack.from_data /lua.wetgenes.json_pack.into_data /lua.wetgenes.lookup/lua.wetgenes.midi /lua.wetgenes.midi.clients /lua.wetgenes.midi.create /lua.wetgenes.midi.destroy /lua.wetgenes.midi.event_to_string /lua.wetgenes.midi.get /lua.wetgenes.midi.peek /lua.wetgenes.midi.port_create /lua.wetgenes.midi.port_destroy /lua.wetgenes.midi.pull /lua.wetgenes.midi.push /lua.wetgenes.midi.set /lua.wetgenes.midi.string_to_clientport /lua.wetgenes.midi.subscribe /lua.wetgenes.midi.unsubscribe/lua.wetgenes.package /lua.wetgenes.package.reload/lua.wetgenes.path /lua.wetgenes.path.currentdir /lua.wetgenes.path.dir /lua.wetgenes.path.ext /lua.wetgenes.path.folder /lua.wetgenes.path.join /lua.wetgenes.path.name /lua.wetgenes.path.normalize /lua.wetgenes.path.parent /lua.wetgenes.path.parse /lua.wetgenes.path.relative /lua.wetgenes.path.resolve /lua.wetgenes.path.root /lua.wetgenes.path.setup /lua.wetgenes.path.split/lua.wetgenes.plate /lua.wetgenes.plate.replace_lookup /lua.wetgenes.plate.replace_lookup_istable /lua.wetgenes.plate.table_lookup /lua.wetgenes.rnd64k /lua.wetgenes.safecall /lua.wetgenes.safewrap /lua.wetgenes.set_env /lua.wetgenes.snippets/lua.wetgenes.spew /lua.wetgenes.spew.connect /lua.wetgenes.spew.test/lua.wetgenes.tardis /lua.wetgenes.tardis.array /lua.wetgenes.tardis.array.__add /lua.wetgenes.tardis.array.__div /lua.wetgenes.tardis.array.__eq /lua.wetgenes.tardis.array.__mul /lua.wetgenes.tardis.array.__sub /lua.wetgenes.tardis.array.__tostring /lua.wetgenes.tardis.array.__unm /lua.wetgenes.tardis.array.abs /lua.wetgenes.tardis.array.acos /lua.wetgenes.tardis.array.add /lua.wetgenes.tardis.array.asin /lua.wetgenes.tardis.array.atan /lua.wetgenes.tardis.array.ceil /lua.wetgenes.tardis.array.compare /lua.wetgenes.tardis.array.cos /lua.wetgenes.tardis.array.exp /lua.wetgenes.tardis.array.floor /lua.wetgenes.tardis.array.fract /lua.wetgenes.tardis.array.log /lua.wetgenes.tardis.array.max /lua.wetgenes.tardis.array.min /lua.wetgenes.tardis.array.mix /lua.wetgenes.tardis.array.new /lua.wetgenes.tardis.array.pow /lua.wetgenes.tardis.array.product /lua.wetgenes.tardis.array.quantize /lua.wetgenes.tardis.array.round /lua.wetgenes.tardis.array.scalar /lua.wetgenes.tardis.array.set /lua.wetgenes.tardis.array.sin /lua.wetgenes.tardis.array.sub /lua.wetgenes.tardis.array.tan /lua.wetgenes.tardis.array.trunc /lua.wetgenes.tardis.array.unpack /lua.wetgenes.tardis.array.zero /lua.wetgenes.tardis.class/lua.wetgenes.tardis.line /lua.wetgenes.tardis.line.new/lua.wetgenes.tardis.m2 /lua.wetgenes.tardis.m2.adjugate /lua.wetgenes.tardis.m2.cofactor /lua.wetgenes.tardis.m2.determinant /lua.wetgenes.tardis.m2.identity /lua.wetgenes.tardis.m2.inverse /lua.wetgenes.tardis.m2.minor_xy /lua.wetgenes.tardis.m2.new /lua.wetgenes.tardis.m2.scale /lua.wetgenes.tardis.m2.transpose/lua.wetgenes.tardis.m3 /lua.wetgenes.tardis.m3.adjugate /lua.wetgenes.tardis.m3.cofactor /lua.wetgenes.tardis.m3.determinant /lua.wetgenes.tardis.m3.identity /lua.wetgenes.tardis.m3.inverse /lua.wetgenes.tardis.m3.m4 /lua.wetgenes.tardis.m3.minor_xy /lua.wetgenes.tardis.m3.new /lua.wetgenes.tardis.m3.scale /lua.wetgenes.tardis.m3.transpose /lua.wetgenes.tardis.m3.v3/lua.wetgenes.tardis.m4 /lua.wetgenes.tardis.m4.add /lua.wetgenes.tardis.m4.adjugate /lua.wetgenes.tardis.m4.arotate /lua.wetgenes.tardis.m4.cofactor /lua.wetgenes.tardis.m4.determinant /lua.wetgenes.tardis.m4.get_rotation_q4 /lua.wetgenes.tardis.m4.get_scale_v3 /lua.wetgenes.tardis.m4.get_translation_v3 /lua.wetgenes.tardis.m4.identity /lua.wetgenes.tardis.m4.inverse /lua.wetgenes.tardis.m4.m3 /lua.wetgenes.tardis.m4.minor_xy /lua.wetgenes.tardis.m4.mix /lua.wetgenes.tardis.m4.new /lua.wetgenes.tardis.m4.prearotate /lua.wetgenes.tardis.m4.preqrotate /lua.wetgenes.tardis.m4.prerotate /lua.wetgenes.tardis.m4.prerrotate /lua.wetgenes.tardis.m4.prescale /lua.wetgenes.tardis.m4.pretranslate /lua.wetgenes.tardis.m4.pretranslate_v3 /lua.wetgenes.tardis.m4.qrotate /lua.wetgenes.tardis.m4.rotate /lua.wetgenes.tardis.m4.rrotate /lua.wetgenes.tardis.m4.scale /lua.wetgenes.tardis.m4.scale_v3 /lua.wetgenes.tardis.m4.setrot /lua.wetgenes.tardis.m4.setrrot /lua.wetgenes.tardis.m4.sub /lua.wetgenes.tardis.m4.translate /lua.wetgenes.tardis.m4.translate_v3 /lua.wetgenes.tardis.m4.transpose /lua.wetgenes.tardis.m4.v3 /lua.wetgenes.tardis.m4_stack/lua.wetgenes.tardis.plane /lua.wetgenes.tardis.plane.new/lua.wetgenes.tardis.q4 /lua.wetgenes.tardis.q4.get_yaw_pitch_roll /lua.wetgenes.tardis.q4.get_yaw_pitch_roll_in_radians /lua.wetgenes.tardis.q4.identity /lua.wetgenes.tardis.q4.mix /lua.wetgenes.tardis.q4.new /lua.wetgenes.tardis.q4.prerotate /lua.wetgenes.tardis.q4.prerrotate /lua.wetgenes.tardis.q4.reverse /lua.wetgenes.tardis.q4.rotate /lua.wetgenes.tardis.q4.rrotate /lua.wetgenes.tardis.q4.set /lua.wetgenes.tardis.q4.set_yaw_pitch_roll /lua.wetgenes.tardis.q4.set_yaw_pitch_roll_in_radians /lua.wetgenes.tardis.q4.setrot /lua.wetgenes.tardis.q4.setrrot /lua.wetgenes.tardis.smoothstep /lua.wetgenes.tardis.step /lua.wetgenes.tardis.type/lua.wetgenes.tardis.v1 /lua.wetgenes.tardis.v1.add /lua.wetgenes.tardis.v1.cross /lua.wetgenes.tardis.v1.distance /lua.wetgenes.tardis.v1.dot /lua.wetgenes.tardis.v1.identity /lua.wetgenes.tardis.v1.len /lua.wetgenes.tardis.v1.lenlen /lua.wetgenes.tardis.v1.mul /lua.wetgenes.tardis.v1.normalize /lua.wetgenes.tardis.v1.oo /lua.wetgenes.tardis.v1.scale /lua.wetgenes.tardis.v1.sub/lua.wetgenes.tardis.v2 /lua.wetgenes.tardis.v2.add /lua.wetgenes.tardis.v2.cross /lua.wetgenes.tardis.v2.distance /lua.wetgenes.tardis.v2.dot /lua.wetgenes.tardis.v2.identity /lua.wetgenes.tardis.v2.len /lua.wetgenes.tardis.v2.lenlen /lua.wetgenes.tardis.v2.mul /lua.wetgenes.tardis.v2.new /lua.wetgenes.tardis.v2.normalize /lua.wetgenes.tardis.v2.oo /lua.wetgenes.tardis.v2.scale /lua.wetgenes.tardis.v2.sub/lua.wetgenes.tardis.v3 /lua.wetgenes.tardis.v3.add /lua.wetgenes.tardis.v3.angle /lua.wetgenes.tardis.v3.cross /lua.wetgenes.tardis.v3.distance /lua.wetgenes.tardis.v3.dot /lua.wetgenes.tardis.v3.identity /lua.wetgenes.tardis.v3.len /lua.wetgenes.tardis.v3.lenlen /lua.wetgenes.tardis.v3.mul /lua.wetgenes.tardis.v3.new /lua.wetgenes.tardis.v3.normalize /lua.wetgenes.tardis.v3.oo /lua.wetgenes.tardis.v3.scale /lua.wetgenes.tardis.v3.sub/lua.wetgenes.tardis.v4 /lua.wetgenes.tardis.v4.add /lua.wetgenes.tardis.v4.distance /lua.wetgenes.tardis.v4.dot /lua.wetgenes.tardis.v4.identity /lua.wetgenes.tardis.v4.len /lua.wetgenes.tardis.v4.lenlen /lua.wetgenes.tardis.v4.mul /lua.wetgenes.tardis.v4.new /lua.wetgenes.tardis.v4.normalize /lua.wetgenes.tardis.v4.oo /lua.wetgenes.tardis.v4.scale /lua.wetgenes.tardis.v4.sub /lua.wetgenes.tardis.v4.to_v3/lua.wetgenes.tasks /lua.wetgenes.tasks.add_global_thread /lua.wetgenes.tasks.add_id /lua.wetgenes.tasks.add_memo /lua.wetgenes.tasks.add_task /lua.wetgenes.tasks.add_thread /lua.wetgenes.tasks.claim_global /lua.wetgenes.tasks.client /lua.wetgenes.tasks.client_code /lua.wetgenes.tasks.cocall /lua.wetgenes.tasks.create /lua.wetgenes.tasks.create_colinda /lua.wetgenes.tasks.del_global_thread /lua.wetgenes.tasks.del_id /lua.wetgenes.tasks.del_memo /lua.wetgenes.tasks.del_task /lua.wetgenes.tasks.del_thread /lua.wetgenes.tasks.delete /lua.wetgenes.tasks.do_memo /lua.wetgenes.tasks.eject_global /lua.wetgenes.tasks.fetch_name /lua.wetgenes.tasks.global_code /lua.wetgenes.tasks.http /lua.wetgenes.tasks.http_code /lua.wetgenes.tasks.receive /lua.wetgenes.tasks.run_task /lua.wetgenes.tasks.send /lua.wetgenes.tasks.sqlite /lua.wetgenes.tasks.sqlite_code /lua.wetgenes.tasks.thread_code /lua.wetgenes.tasks.update/lua.wetgenes.tasks_msgp /lua.wetgenes.tasks_msgp.addr_to_ip_port /lua.wetgenes.tasks_msgp.addr_to_list /lua.wetgenes.tasks_msgp.clean_name /lua.wetgenes.tasks_msgp.ip6_to_addr /lua.wetgenes.tasks_msgp.ipsniff /lua.wetgenes.tasks_msgp.list_to_addr /lua.wetgenes.tasks_msgp.msgp_code /lua.wetgenes.tasks_msgp.pack/lua.wetgenes.tsv /lua.wetgenes.tsv.close /lua.wetgenes.tsv.create /lua.wetgenes.tsv.flush /lua.wetgenes.tsv.load/lua.wetgenes.txt /lua.wetgenes.txt.diff /lua.wetgenes.txt.diff.find /lua.wetgenes.txt.diff.match /lua.wetgenes.txt.diff.split /lua.wetgenes.txt.diff.trim /lua.wetgenes.txt.edit /lua.wetgenes.txt.lex /lua.wetgenes.txt.lex_js /lua.wetgenes.txt.lex_lua /lua.wetgenes.txt.undo/lua.wetgenes.txt.utf /lua.wetgenes.txt.utf.char /lua.wetgenes.txt.utf.charpattern /lua.wetgenes.txt.utf.chars /lua.wetgenes.txt.utf.length /lua.wetgenes.txt.utf.map_latin0_to_unicode /lua.wetgenes.txt.utf.map_unicode_to_latin0 /lua.wetgenes.txt.utf.size /lua.wetgenes.txt.utf.string/lua.wetgenes.txt.words /lua.wetgenes.txt.words.load /lua.wetgenes.txt.words.transform /prefabs /rules /setup /setup_menu /update

lua.wetgenes.json_diff

(C) 2024 Kriss Blank and released under the MIT license, see http://opensource.org/licenses/MIT for full license text.

I assume we are not competing in the lua json_diff library world so just call it json_diff

local json_diff=require("wetgenes.json_diff")

When we talk of json objects or json values we mean that the values must be valid json. So no storing of functions/etc or mixxing of tables and objects. Infinite recursion where data links back into itself is also not possible in json so not allowed/expected here.

We assume we have data that could be validly serialised as json but this is not enforced. If you want to be 100% safe then convert your data to json text and back again before handing it to these functions.

If a table has a length of more than 0 then it is considered a json array otherwise it is a json object. An empty table is considered an empty object there is no lua equivalent to an empty json array.

Lua is not good with holes in its arrays, so that is also not suported.

We do try and diff arrays of objects, but, since arrays may shift up and down it would be better if you had object maps of id to data and arrays of ids that references these maps rather than arrays of objects.

Json arrays must be normal lua tables, so first index is 1 not 0 this may cause problems if your data is made of objects that have been accidently converted into arrays. Probably wont have happened but best to be aware of possible sharp edges.

lua.wetgenes.json_diff.apply

apply a diff , please dupe a before handing it to this function as we will be altering it.

lua.wetgenes.json_diff.array_common

Given two arrays of json data, return the length , starta , startb of the longest common subsequence in table indexes or nil if not similar.

lua.wetgenes.json_diff.array_match

Given two arrays of json data, return two synced arrays of arrays where as much json data as possible match in each sub batch.

each of these arrays can be concatonated to create the original array.

When stepping thoigh bothe arrays, matches are shown by the sub array having equality and differences will be insertions or deletions depending on which of the two has the empty array.

EG these two lists

[a,b,c,d,e,f]
[a,b,e,f]

would become

[ [a,b] , [c,d] , [e,f] ]
[ [a,b] , [] , [e,f] ]

The two [a,b] arrays will be equal to each other when tested with a simple == compare as they are references to the same table.

lua.wetgenes.json_diff.array_trim

Given two arrays of json data, return the length at the start and at the end that are the same. This tends to be a good first step when comparing two chunks of text.

lua.wetgenes.json_diff.equal

Compare two json values and return true if they are equal, this may decend into a tree of tables and objects so can be an expensive test.

lua.wetgenes.json_diff.similar

Compare two json values and return true if they are similar arrays or objects, this may descend into a tree of tables and objects so can be an expensive test.

An array or object is similar if it contains at least one value that is the same in both.

Will return false if not given two objects or two arrays.

lua.wetgenes.json_diff.undo

undo a diff which must have been created with the both flag set in order to have undo data available.