Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/thoda-dev/du-default-autoconf. default autoconfig files from Dual Universe
Something went wrong. Try again.
4.8 kB · 1 line
JSON
at junie-init
1{"slots": {"-1": {"name": "unit", "type": {"methods": [], "events": []}}, "-3": {"name": "player", "type": {"methods": [], "events": []}}, "-2": {"name": "construct", "type": {"methods": [], "events": []}}, "-4": {"name": "system", "type": {"methods": [], "events": []}}, "0": {"name": "core", "type": {"methods": [], "events": []}}, "-5": {"name": "library", "type": {"methods": [], "events": []}}, "1": {"name": "slot2", "type": {"methods": [], "events": []}}, "2": {"name": "slot3", "type": {"methods": [], "events": []}}, "3": {"name": "slot4", "type": {"methods": [], "events": []}}, "4": {"name": "slot5", "type": {"methods": [], "events": []}}, "5": {"name": "slot6", "type": {"methods": [], "events": []}}, "6": {"name": "slot7", "type": {"methods": [], "events": []}}, "7": {"name": "slot8", "type": {"methods": [], "events": []}}, "8": {"name": "slot9", "type": {"methods": [], "events": []}}, "9": {"name": "slot10", "type": {"methods": [], "events": []}}}, "handlers": [{"key": "0", "filter": {"slotKey": "-1", "signature": "onStart()", "args": []}, "code": "-- category panel display helpers\n_autoconf = {}\n_autoconf.panels = {}\n_autoconf.panels_size = 0\n_autoconf.displayCategoryPanel = function(elements, size, title, type, widgetPerData)\n widgetPerData = widgetPerData or false -- default to one widget for all data\n if size > 0 then\n local panel = system.createWidgetPanel(title)\n local widget\n if not widgetPerData then\n widget = system.createWidget(panel, type)\n end\n for i = 1, size do\n if widgetPerData then\n widget = system.createWidget(panel, type)\n end\n system.addDataToWidget(elements[i].getWidgetDataId(), widget)\n end\n _autoconf.panels_size = _autoconf.panels_size + 1\n _autoconf.panels[_autoconf.panels_size] = panel\n end\nend\n_autoconf.hideCategoryPanels = function()\n for i=1,_autoconf.panels_size do\n system.destroyWidgetPanel(_autoconf.panels[i])\n end\nend\n-- Proxy array to access auto-plugged slots programmatically\n\ncontainer = {}\ncontainer_size = 0\n-- End of auto-generated code\nNav = Navigator.new(system, core, unit)\nplanetInfluenceThreshold = 0.6\nif antigrav ~= nil then\n antigrav.activate()\n antigrav.showWidget()\nend\n"}, {"key": "1", "filter": {"slotKey": "-4", "signature": "onFlush()", "args": []}, "code": "local verticalAutoLandingSpeed = 20 --export: Vertical auto landing speec in km/h\nlocal power = 3\nlocal worldUp = vec3(construct.getWorldOrientationUp())\nlocal worldForward = vec3(construct.getWorldOrientationForward())\nlocal worldRight = vec3(construct.getWorldOrientationRight())\nlocal worldVertical = vec3(core.getWorldVertical())\n\n-- are we in deep space or are we near a planet ?\nlocal planetInfluence = unit.getClosestPlanetInfluence()\nif planetInfluence > 0\nthen\n -- stabilize orientation along the gravity\n if (rollPID == nil) then\n rollPID = pid.new(0.2, 0, 10)\n pitchPID = pid.new(0.2, 0, 10)\n end\n\n local yawVelocity = vec3(construct.getWorldAngularVelocity()):dot(worldUp)\n local currentRoll = getRoll(worldVertical, worldForward, worldRight)\n local currentPitch = -math.asin(worldForward:dot(worldVertical)) * constants.rad2deg\n rollPID:inject(-currentRoll)\n pitchPID:inject(-currentPitch)\n local yawAcceleration = - power * yawVelocity\n angularAcceleration = rollPID:get() * worldForward + pitchPID:get() * worldRight + yawAcceleration * worldUp\nelse\n -- cancel rotation\n local worldAngularVelocity = vec3(construct.getWorldAngularVelocity())\n angularAcceleration = - power * worldAngularVelocity\nend\n\nif planetInfluence > planetInfluenceThreshold\nthen\n -- go down at verticalTargetSpeed when very close to a planet\n targetVelocity = (verticalAutoLandingSpeed / 3.6) * worldVertical\nelse\n -- immobilize ship when not\n targetVelocity = vec3()\nend\nNav:setEngineCommand('torque', vec3(), angularAcceleration)\nstabilization = power * (targetVelocity - vec3(construct.getWorldVelocity()))\nNav:setEngineCommand('vertical, brake, horizontal', stabilization -vec3(core.getWorldGravity()), vec3(), false)\n"}, {"key": "2", "filter": {"slotKey": "-4", "signature": "onUpdate()", "args": []}, "code": "local accelThreshold = 0.1\nlocal speedThreshold = 0.1\n\n-- auto stopping mechanism when immobile and close to planet\nlocal accel = vec3(construct.getWorldAcceleration()):len()\nlocal speed = vec3(construct.getWorldVelocity()):len()\nif accel < accelThreshold\n and speed < speedThreshold\n and unit.getClosestPlanetInfluence() > planetInfluenceThreshold\nthen\n unit.exit()\nend\n"}], "methods": [], "events": []}