Skip to content

Commit

Permalink
Merge pull request #9 from 1337joe/release-1.0
Browse files Browse the repository at this point in the history
Document new Engine hierarchy, cleanup
  • Loading branch information
1337joe authored Nov 20, 2022
2 parents 32e45ae + 8dda534 commit 3a9d160
Show file tree
Hide file tree
Showing 37 changed files with 1,588 additions and 481 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Tests

on:
push:
branches:
branches: [ main, pts ]
pull_request:
branches: [ main ]

Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright © 221 - 2021 Joe Rogers
Copyright © 2020 - 2022 Joe Rogers

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
Expand Down
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,8 +237,11 @@ Blocks of code to be extracted should be surrounded by comment blocks with the f
| Player | :heavy_check_mark: :heavy_minus_sign: | :soon: | :white_large_square: | :soon: :heavy_check_mark: | :heavy_minus_sign: |
| System | :heavy_check_mark: :heavy_check_mark: | :soon: | :soon: | :soon: :heavy_check_mark: | :heavy_minus_sign: |
| Element | :heavy_check_mark: :heavy_minus_sign: | :soon: | :soon: | :heavy_minus_sign: :heavy_minus_sign: | :heavy_minus_sign: |
| AdjustorUnit | :heavy_check_mark: :heavy_check_mark: | :soon: | :white_large_square: | :white_large_square: :heavy_check_mark: | :heavy_check_mark: |
| AirfoilUnit | :heavy_check_mark: :heavy_check_mark: | :soon: | :white_large_square: | :white_large_square: :heavy_check_mark: | :heavy_check_mark: |
| AntiGravityGeneratorUnit | :heavy_check_mark: :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :soon: :soon: | :heavy_check_mark: |
| BaseShieldGeneratorUnit | :heavy_check_mark: :white_large_square: | :white_large_square: | :white_large_square: | :white_large_square: :white_large_square: | :white_large_square: |
| BrakeUnit | :heavy_check_mark: :heavy_check_mark: | :soon: | :white_large_square: | :white_large_square: :heavy_check_mark: | :heavy_check_mark: |
| ContainerUnit | :heavy_check_mark: :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: :heavy_check_mark: | :soon: |
| ControlUnit | :heavy_check_mark: :white_large_square: | :soon: | :soon: | :soon: :heavy_check_mark: | :heavy_check_mark: |
| CoreUnit | :heavy_check_mark: :heavy_check_mark: | :soon: | :soon: | :soon: :heavy_check_mark: | :heavy_check_mark: |
Expand All @@ -247,7 +250,7 @@ Blocks of code to be extracted should be surrounded by comment blocks with the f
| DetectionZoneUnit | :heavy_check_mark: :heavy_minus_sign: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: :heavy_check_mark: | :heavy_check_mark: |
| DoorUnit | :heavy_check_mark: :heavy_minus_sign: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: :heavy_check_mark: | :soon: |
| EmitterUnit | :heavy_check_mark: :heavy_minus_sign: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: :heavy_check_mark: | :heavy_check_mark: |
| EngineUnit | :soon: :heavy_check_mark: | :soon: | :soon: | :soon: :soon: | :soon: |
| EngineUnit | :heavy_check_mark: :heavy_check_mark: | :soon: | :white_large_square: | :white_large_square: :heavy_check_mark: | :soon: |
| FireworksUnit | :heavy_check_mark: :heavy_minus_sign: | :soon: | :soon: | :soon: :heavy_check_mark: | :heavy_check_mark: |
| ForceFieldUnit | :heavy_check_mark: :heavy_minus_sign: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: :heavy_check_mark: | :heavy_check_mark: |
| GyroUnit | :heavy_check_mark: :heavy_check_mark: | :heavy_check_mark: | :soon: | :soon: :heavy_check_mark: | :heavy_check_mark: |
Expand All @@ -266,6 +269,7 @@ Blocks of code to be extracted should be surrounded by comment blocks with the f
| RenderScript | :heavy_check_mark: :heavy_minus_sign: | :soon: | :soon: | :soon: :heavy_check_mark: | :heavy_minus_sign: |
| ScreenUnit | :heavy_check_mark: :heavy_minus_sign: | :heavy_check_mark: | :heavy_check_mark:| :soon: :heavy_check_mark: | :heavy_check_mark: |
| ShieldGeneratorUnit | :heavy_check_mark: :heavy_check_mark: | :soon: | :soon: | :soon: :heavy_check_mark: | :soon: |
| SurfaceEngineUnit | :heavy_check_mark: :heavy_check_mark: | :soon: | :white_large_square: | :heavy_check_mark: :heavy_check_mark: | :soon: |
| TelemeterUnit | :heavy_check_mark: :heavy_minus_sign: | :soon: | :soon: | :soon: :heavy_check_mark: | :heavy_check_mark: |
| TransponderUnit | :heavy_check_mark: :heavy_minus_sign: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: :heavy_check_mark: | :heavy_check_mark: |
| WarpDriveUnit | :heavy_check_mark: :heavy_check_mark: | :heavy_check_mark: | :soon: | :heavy_check_mark: :soon: | :heavy_check_mark: |
Expand Down
6 changes: 6 additions & 0 deletions du-mocks-scm-0.rockspec
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,11 @@ dependencies = {
build = {
type = "builtin",
modules = {
["dumocks.AdjustorUnit"] = "src/dumocks/AdjustorUnit.lua",
["dumocks.AirfoilUnit"] = "src/dumocks/AirfoilUnit.lua",
["dumocks.AntiGravityGeneratorUnit"] = "src/dumocks/AntiGravityGeneratorUnit.lua",
["dumocks.BaseShieldGeneratorUnit"] = "src/dumocks/BaseShieldGeneratorUnit.lua",
["dumocks.BrakeUnit"] = "src/dumocks/BrakeUnit.lua",
["dumocks.Construct"] = "src/dumocks/Construct.lua",
["dumocks.ContainerUnit"] = "src/dumocks/ContainerUnit.lua",
["dumocks.ControlUnit"] = "src/dumocks/ControlUnit.lua",
Expand All @@ -35,9 +38,11 @@ build = {
["dumocks.ElementWithState"] = "src/dumocks/ElementWithState.lua",
["dumocks.ElementWithToggle"] = "src/dumocks/ElementWithToggle.lua",
["dumocks.EmitterUnit"] = "src/dumocks/EmitterUnit.lua",
["dumocks.Engine"] = "src/dumocks/Engine.lua",
["dumocks.EngineUnit"] = "src/dumocks/EngineUnit.lua",
["dumocks.FireworksUnit"] = "src/dumocks/FireworksUnit.lua",
["dumocks.ForceFieldUnit"] = "src/dumocks/ForceFieldUnit.lua",
["dumocks.FueledEngine"] = "src/dumocks/FueledEngine.lua",
["dumocks.GyroUnit"] = "src/dumocks/GyroUnit.lua",
["dumocks.IndustryUnit"] = "src/dumocks/IndustryUnit.lua",
["dumocks.LandingGearUnit"] = "src/dumocks/LandingGearUnit.lua",
Expand All @@ -56,6 +61,7 @@ build = {
["dumocks.RenderScript"] = "src/dumocks/RenderScript.lua",
["dumocks.ScreenUnit"] = "src/dumocks/ScreenUnit.lua",
["dumocks.ShieldGeneratorUnit"] = "src/dumocks/ShieldGeneratorUnit.lua",
["dumocks.SurfaceEngineUnit"] = "src/dumocks/SurfaceEngineUnit.lua",
["dumocks.System"] = "src/dumocks/System.lua",
["dumocks.TelemeterUnit"] = "src/dumocks/TelemeterUnit.lua",
["dumocks.TransponderUnit"] = "src/dumocks/TransponderUnit.lua",
Expand Down
159 changes: 159 additions & 0 deletions src/dumocks/AdjustorUnit.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
--- Adjustors are specific motors that expel gas to generate torque on your construct.
--
-- Element class: Adjustor
--
-- Extends: @{Element} > @{Engine}
-- @module AdjustorUnit
-- @alias M

local MockElement = require "dumocks.Element"
local MockEngine = require "dumocks.Engine"

local elementDefinitions = {}
elementDefinitions["adjustor xs"] = {mass = 25.0, maxHitPoints = 50.0, itemId = 2648523849, maxThrust = 2000.0}
elementDefinitions["adjustor s"] = {mass = 100.0, maxHitPoints = 50.0, itemId = 47474508, maxThrust = 8000.0}
elementDefinitions["adjustor m"] = {mass = 450.0, maxHitPoints = 50.0, itemId = 3790013467, maxThrust = 32000.0}
elementDefinitions["adjustor l"] = {mass = 1550.0, maxHitPoints = 298.0, itemId = 2818864930, maxThrust = 128000.0}
local DEFAULT_ELEMENT = "adjustor xs"

local M = MockEngine:new()
M.elementClass = "Adjustor"

function M:new(o, id, elementName)
local elementDefinition = MockElement.findElement(elementDefinitions, elementName, DEFAULT_ELEMENT)

o = o or MockEngine:new(o, id, elementDefinition)
setmetatable(o, self)
self.__index = self

o.maxThrustBase = elementDefinition.maxThrust
o.currentMaxThrust = o.maxThrustBase

o.plugIn = 0.0

return o
end

--- Start the adjustor at full power (works only when run inside a cockpit or under remote control).
function M:activate()
end

--- Stops the adjustor (works only when run inside a cockpit or under remote control).
function M:deactivate()
end

--- Checks if the adjustor is active.
-- @treturn 0/1 1 when the adjustor is on.
function M:isActive()
end

--- <b>Deprecated:</b> Returns the activation state of the engine.
--
-- This method is deprecated: isActive should be used instead
-- @see isActive
-- @treturn 0/1 1 when the engine is on, 0 otherwise.
function M:getState()
M.deprecated("getState", "isActive")
return M:isActive()
end

--- Toggle the state of the adjustor.
function M:toggle()
end

--- Set the exhaust thrust of the adjustor.
-- @tparam float thrust The adjustor thrust in newtons (limited by the maximum thrust).
function M:setThrust(thrust)
self.currentThrust = math.max(self.currentMaxThrust, thrust)
end

--- Returns the current exhaust thrust of the adjustor.
-- @treturn float The current exhaust thrust of the adjustor in newtons.
function M:getThrust()
return self.currentThrust
end

--- Returns the maximal exhaust thrust the adjustor can deliver.
-- @treturn float The maximum exhaust thrust of the adjustor in newtons.
function M:getMaxThrust()
return self.maxThrustBase
end

--- Returns the adjustor exhaust thrust direction in construct local coordinates.
-- @treturn vec3 The adjustor exhaust thrust direction vector in construct local coordinates.
function M:getThrustAxis()
end

--- Returns the adjustor torque axis in construct local coordinates.
-- @treturn vec3 The torque axis vector in construct local coordinates.
function M:getTorqueAxis()
end

--- Returns the adjustor exhaust thrust direction in world coordinates.
-- @treturn vec3 The adjustor exhaust thrust direction vector in world coordinates.
function M:getWorldThrustAxis()
end

--- Returns the adjustor torque axis in world coordinates.
-- @treturn vec3 The torque axis vector in world coordinates.
function M:getWorldTorqueAxis()
end

--- Set the value of a signal in the specified IN plug of the element.
--
-- Valid plug names are:
-- <ul>
-- <li>"in" for the in signal (seems to have no actual effect when modified this way).</li>
-- </ul>
--
-- @tparam string plug A valid plug name to set.
-- @tparam 0/1 state The plug signal state
function M:setSignalIn(plug, state)
if plug == "in" then
-- testing found no response to setSignalIn
end
end

--- Return the value of a signal in the specified IN plug of the element.
--
-- Valid plug names are:
-- <ul>
-- <li>"in" for the in signal.</li>
-- </ul>
--
-- @tparam string plug A valid plug name to query.
-- @treturn 0/1 The plug signal state
function M:getSignalIn(plug)
if plug == "in" then
return self.plugIn
end
return MockElement.getSignalIn(self)
end

--- Mock only, not in-game: Bundles the object into a closure so functions can be called with "." instead of ":".
-- @treturn table A table encompasing the api calls of object.
-- @see Element:mockGetClosure
function M:mockGetClosure()
local closure = MockEngine.mockGetClosure(self)
closure.activate = function() return self:activate() end
closure.deactivate = function() return self:deactivate() end
closure.isActive = function() return self:isActive() end
closure.toggle = function() return self:toggle() end
closure.setThrust = function(thrust) return self:setThrust(thrust) end
closure.getThrust = function() return self:getThrust() end
closure.getMaxThrust = function() return self:getMaxThrust() end
closure.getThrustAxis = function() return self:getThrustAxis() end
closure.getTorqueAxis = function() return self:getTorqueAxis() end
closure.getWorldThrustAxis = function() return self:getWorldThrustAxis() end
closure.getWorldTorqueAxis = function() return self:getWorldTorqueAxis() end

closure.setSignalIn = function(plug, state) return self:setSignalIn(plug, state) end
closure.getSignalIn = function(plug) return self:getSignalIn(plug) end

-- remove missing deprecated functions
closure.getMaxThrustEfficiency = nil
closure.getMinThrust = nil
return closure
end

return M
Loading

0 comments on commit 3a9d160

Please sign in to comment.