<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://delta-v.kodera.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dogwood808</id>
	<title>ΔV: Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://delta-v.kodera.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dogwood808"/>
	<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php/Special:Contributions/Dogwood808"/>
	<updated>2026-04-24T12:31:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Auxiliary_Power_Unit&amp;diff=28167</id>
		<title>Auxiliary Power Unit</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Auxiliary_Power_Unit&amp;diff=28167"/>
		<updated>2023-08-29T03:59:57Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Either an additional electrical generator (MPDG) or an electrical energy storage system (SMES)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Ideally would sort by APU Type, then price, but no clue how to override the default sort order&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Equipment|list|Auxiliary Power System&lt;br /&gt;
|caption=Auxiliary Power Systems&lt;br /&gt;
|Name|APU Type&lt;br /&gt;
&amp;lt;!-- MPDG --&amp;gt;&lt;br /&gt;
|Power Consumption|Thermal Consumption|Power (nominal)&lt;br /&gt;
&amp;lt;!-- SMES --&amp;gt;&lt;br /&gt;
|Energy capacity|Charge Power Draw|Discharge Power (peak)&lt;br /&gt;
|Mass|Price}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Equipment]]&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Powerplant&amp;diff=28166</id>
		<title>Powerplant</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Powerplant&amp;diff=28166"/>
		<updated>2023-08-29T03:59:33Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Equipment|list|Powerplant&lt;br /&gt;
|caption=Available powerplants&lt;br /&gt;
|Name&lt;br /&gt;
&amp;lt;!-- Need to add Power (nominal) to Module:Equipment --&amp;gt;&lt;br /&gt;
|Power (nominal)&lt;br /&gt;
|Propellant Consumption&lt;br /&gt;
|Mass|Price}}&lt;br /&gt;
&lt;br /&gt;
Additional electrical power can be obtained by installing an [[Auxiliary Power Unit]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Equipment]]&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Reactor_Core&amp;diff=28165</id>
		<title>Reactor Core</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Reactor_Core&amp;diff=28165"/>
		<updated>2023-08-29T03:58:55Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Provides thermal power used by thrusters, the powerplant, auxiliary generators, and some other equipment&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Equipment|list|Reactor Core&lt;br /&gt;
|caption=Reactor Cores&lt;br /&gt;
|Name|Manufacturer&lt;br /&gt;
|Operating Temperature | Failure Point | Thermal Power&lt;br /&gt;
|Mass|Price}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Equipment]]&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Category:Equipment&amp;diff=28164</id>
		<title>Category:Equipment</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Category:Equipment&amp;diff=28164"/>
		<updated>2023-08-29T03:57:36Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category contains the various Equipment you can install on your ships.&lt;br /&gt;
&lt;br /&gt;
=== [[Hardpoint]]s ===&lt;br /&gt;
&lt;br /&gt;
External equipment is mounted onto [[hardpoint]]s. The following equipment are all attached to external hardpoints &lt;br /&gt;
&lt;br /&gt;
* [[Mass Driver]]s&lt;br /&gt;
* [[Energy Weapons]]&lt;br /&gt;
* [[Drones]]&lt;br /&gt;
* Detachable equipment such as [[Cargo Container]]s, the [[B8 Claim Beacon]], the [[NT Mining Companion]], and the [[External Impact Absorber]]&lt;br /&gt;
&lt;br /&gt;
Different types of hardpoints -- high-stress, low-stress, drone hardpoints, and docking bays -- can accommodate different equipment.&lt;br /&gt;
&lt;br /&gt;
=== Internal Storage ===&lt;br /&gt;
&lt;br /&gt;
Ships have storage in the form of&lt;br /&gt;
&lt;br /&gt;
* [[Kinetic Ammunition]] used by [[Mass Driver]]s&lt;br /&gt;
* [[Nanodrone Components]] used by [[Drones]]&lt;br /&gt;
* [[Propellant Tanks]] for the [[Reaction Control System]], [[Main Propulsion]], and [[Powerplant]]&lt;br /&gt;
* [[Cargo Bay]] that stores unprocessed ore and cargo, and may contain a mineral processing unit to process ore into processed minerals.&lt;br /&gt;
&lt;br /&gt;
=== Thrusters ===&lt;br /&gt;
&lt;br /&gt;
Thrusters consume propellant and use heat and electrical power to accelerate the ship.&lt;br /&gt;
&lt;br /&gt;
* [[Reaction Control System]]s provide fine maneuvering and rotational control&lt;br /&gt;
* [[Main Propulsion]] &lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
The power system consists of the following&lt;br /&gt;
&lt;br /&gt;
* [[Reactor Core]] that provides thermal power used by thrusters, the powerplant, auxiliary generators, and some other equipment&lt;br /&gt;
* [[Powerplant]] that consumes thermal power to produce electrical power&lt;br /&gt;
* [[Ultracapacitor Array]] that store excess electrical energy to be used during peak demand&lt;br /&gt;
* [[Auxiliary Power Unit]] either an additional electrical generator or an electrical energy storage system&lt;br /&gt;
&lt;br /&gt;
=== Electronics ===&lt;br /&gt;
&lt;br /&gt;
A ships electronics consist of&lt;br /&gt;
&lt;br /&gt;
* [[Autopilot]] that maintains a stable velocity and orientation of the ship&lt;br /&gt;
* [[Head-Up Display]] to display to the pilot the status of the ship, its systems, and external sensors&lt;br /&gt;
* [[Reconnaissance Craft]] that provides an external view of the ship&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Ultracapacitor_Array&amp;diff=28163</id>
		<title>Ultracapacitor Array</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Ultracapacitor_Array&amp;diff=28163"/>
		<updated>2023-08-29T03:55:57Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A ship&#039;s ultracapacitor array stores excess generated power to provide power during peak usage.&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Equipment|list|Ultracapacitor Array&lt;br /&gt;
|caption=Available ultracapacitor arrays&lt;br /&gt;
|Name|Energy capacity|Peak power|Mass|Price}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Equipment]]&lt;br /&gt;
&lt;br /&gt;
More electrical storage can be obtained by installing an [[Auxiliary Power Unit]].&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Powerplant&amp;diff=28162</id>
		<title>Powerplant</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Powerplant&amp;diff=28162"/>
		<updated>2023-08-29T03:55:03Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Equipment|list|Powerplant&lt;br /&gt;
|caption=Available powerplants&lt;br /&gt;
|Name&lt;br /&gt;
&amp;lt;!-- Need to add Power (nominal) to Module:Equipment --&amp;gt;&lt;br /&gt;
|Power (nominal)&lt;br /&gt;
|Propellant Consumption&lt;br /&gt;
|Mass|Price}}&lt;br /&gt;
&lt;br /&gt;
Additional electrical power can be obtained by installing an [[Auxiliary Power Unit]].&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Reactor_Core&amp;diff=28161</id>
		<title>Reactor Core</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Reactor_Core&amp;diff=28161"/>
		<updated>2023-08-29T03:39:28Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: Created page with &amp;quot;Provides thermal power used by thrusters, the powerplant, auxiliary generators, and some other equipment  {{#invoke:Equipment|list|Reactor Core |caption=Reactor Cores |Name|Manufacturer |Operating Temperature | Failure Point | Thermal Power |Mass|Price}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Provides thermal power used by thrusters, the powerplant, auxiliary generators, and some other equipment&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Equipment|list|Reactor Core&lt;br /&gt;
|caption=Reactor Cores&lt;br /&gt;
|Name|Manufacturer&lt;br /&gt;
|Operating Temperature | Failure Point | Thermal Power&lt;br /&gt;
|Mass|Price}}&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Module:Equipment&amp;diff=28160</id>
		<title>Module:Equipment</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Module:Equipment&amp;diff=28160"/>
		<updated>2023-08-29T03:38:38Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
local d = require(&#039;Module:Data&#039;)&lt;br /&gt;
local dv = require(&#039;Module:Data/View&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
p.view = {}&lt;br /&gt;
&lt;br /&gt;
p.view[&#039;Name&#039;] = dv.text{&#039;name&#039;}&lt;br /&gt;
p.view[&#039;Title&#039;] = dv.title{function(item) return item.title or item.name end, heading=&#039;Name&#039;, text=&#039;name&#039;}&lt;br /&gt;
p.view[&#039;Price&#039;] = dv.number{&#039;price&#039;, unit=&#039;E$&#039;}&lt;br /&gt;
p.view[&#039;Mass&#039;] = dv.number{&#039;mass&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Manufacturer&#039;] = dv.text{&#039;manufacturer&#039;}&lt;br /&gt;
p.view[&#039;Other&#039;] = dv.text{&#039;other&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Hardpoints&lt;br /&gt;
p.view[&#039;High-Stress&#039;] = dv.flag{&#039;highStress&#039;}&lt;br /&gt;
p.view[&#039;Low-Stress&#039;] = dv.flag{&#039;lowStress&#039;}&lt;br /&gt;
p.view[&#039;Docking bay&#039;] = dv.flag{&#039;dockingBay&#039;}&lt;br /&gt;
p.view[&#039;Drone hardpoint&#039;] = dv.flag{&#039;droneHardpoint&#039;}&lt;br /&gt;
&lt;br /&gt;
p.view[&#039;Effective range&#039;] = dv.number{&#039;effectiveRange&#039;, unit=&#039;m&#039;}&lt;br /&gt;
p.view[&#039;Power draw&#039;] = dv.number{&#039;powerDraw&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Drones&lt;br /&gt;
p.view[&#039;Drones per second&#039;] = dv.number{&#039;droneLaunchCapability&#039;}&lt;br /&gt;
p.view[&#039;Drone wet mass&#039;] = dv.number{&#039;droneWetMass&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Drone thrust&#039;] = dv.number{&#039;droneThrust&#039;, unit=&#039;kN&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Projectile magazines, nanodrone components, and propellant tanks&lt;br /&gt;
p.view[&#039;Storage&#039;] = dv.number{&#039;storage&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Delivery&#039;] = dv.number{&#039;delivery&#039;, unit=&#039;kg/s&#039;}&lt;br /&gt;
p.view[&#039;Exclusive to&#039;] = dv.list{&#039;exclusiveTo&#039;, itemView=dv.title{nil}}&lt;br /&gt;
&lt;br /&gt;
-- Ultracapacitors&lt;br /&gt;
p.view[&#039;Energy capacity&#039;] = dv.number{&#039;energyCapacity&#039;, unit=&#039;MJ&#039;}&lt;br /&gt;
p.view[&#039;Peak power&#039;] = dv.number{&#039;peakPower&#039;, unit=&#039;GW&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Autopilots&lt;br /&gt;
p.view[&#039;AAT&#039;] = dv.flag{&#039;aat&#039;, heading=&#039;[[Autopilot#AAT|AAT]]&#039;}&lt;br /&gt;
p.view[&#039;ARL&#039;] = dv.flag{&#039;arl&#039;, heading=&#039;[[Autopilot#ARL|ARL]]&#039;}&lt;br /&gt;
p.view[&#039;RTC&#039;] = dv.flag{&#039;rtc&#039;, heading=&#039;[[Autopilot#RTC|RTC]]&#039;}&lt;br /&gt;
p.view[&#039;FBW&#039;] = dv.flag{&#039;fbw&#039;, heading=&#039;[[Autopilot#FBW|FBW]]&#039;}&lt;br /&gt;
p.view[&#039;Autopilot capabilities&#039;] = dv.list{&#039;autopilotCapabilities&#039;, heading=&#039;Capabilities&#039;, itemView=dv.text{nil}}&lt;br /&gt;
&lt;br /&gt;
-- Gimbals/Vectored&lt;br /&gt;
p.view[&#039;Vectored Thrust Angle&#039;] = dv.number{&#039;vectoredThrustAngle&#039;, unit=&#039;deg&#039;}&lt;br /&gt;
p.view[&#039;Gimbal Angle&#039;] = dv.number{&#039;gimbalAngle&#039;, unit=&#039;deg&#039;}&lt;br /&gt;
p.view[&#039;Gimbal Speed&#039;] = dv.number{&#039;gimbalSpeed&#039;, unit=&#039;deg/s&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Main Propulsion and RCS&lt;br /&gt;
p.view[&#039;Thrust&#039;] = dv.number{&#039;thrust&#039;, unit=&#039;kN&#039;}&lt;br /&gt;
p.view[&#039;Exhaust Velocity&#039;] = dv.number{&#039;exhaustVelocity&#039;, unit=&#039;km/s&#039;}&lt;br /&gt;
p.view[&#039;Propellant Consumption&#039;] = dv.number{&#039;propellantConsumption&#039;, unit=&#039;kg/s&#039;}&lt;br /&gt;
p.view[&#039;Power Consumption&#039;] = dv.number{&#039;powerConsumption&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Thermal Consumption&#039;] = dv.number{&#039;thermalConsumption&#039;, unit=&#039;GW&#039;}&lt;br /&gt;
p.view[&#039;Response Time&#039;] = dv.number{&#039;responseTime&#039;, unit=&#039;s&#039;}&lt;br /&gt;
p.view[&#039;Operation Mode&#039;] = dv.text{&#039;operationMode&#039;}&lt;br /&gt;
p.view[&#039;Propellant&#039;] = dv.text{&#039;propellant&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Auxiliary Power System (&amp;amp; Turbines)&lt;br /&gt;
p.view[&#039;Power (nominal)&#039;] = dv.number{&#039;power&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Charge Power Draw&#039;] = dv.number{&#039;chargePower&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Discharge Power (peak)&#039;] = dv.number{&#039;dischargePower&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;APU Type&#039;] = dv.number{&#039;apsType&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Category&#039;] = dv.list{&#039;categories&#039;, itemView=dv.title{nil}}&lt;br /&gt;
&lt;br /&gt;
-- Reactor Cores&lt;br /&gt;
p.view[&#039;Operating Temperature&#039;] = dv.number{&#039;operatingTemperature&#039;, unit=&#039;K&#039;}&lt;br /&gt;
p.view[&#039;Failure Point&#039;] = dv.number{&#039;failureTemperature&#039;, unit=&#039;K&#039;}&lt;br /&gt;
p.view[&#039;Thermal Power&#039;] = dv.number{&#039;thermalPower&#039;, unit=&#039;GW&#039;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for k,v in pairs(p.view) do&lt;br /&gt;
    v.heading = v.heading or k&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.defaultColumns = {&lt;br /&gt;
    &#039;Name&#039;, &#039;Price&#039;, &#039;Mass&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.positionalArgs = function(f)&lt;br /&gt;
    local posArgs = {}&lt;br /&gt;
    for i,posArg in ipairs(f.args) do&lt;br /&gt;
        -- positional arguments don&#039;t get trimmed&lt;br /&gt;
        table.insert(posArgs, mw.text.trim(posArg))&lt;br /&gt;
    end&lt;br /&gt;
    return posArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.list = function(f)&lt;br /&gt;
    local posArgs = p.positionalArgs (f)&lt;br /&gt;
    local slot = table.remove(posArgs, 1)&lt;br /&gt;
    local columns = posArgs&lt;br /&gt;
    if table.getn(columns) == 0 then&lt;br /&gt;
        columns = p.defaultColumns&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local data = mw.loadData(&#039;Module:Equipment/Data&#039;)&lt;br /&gt;
    data = data[slot]&lt;br /&gt;
&lt;br /&gt;
    data = d.sort(data, {&lt;br /&gt;
        d.on(d.path{&#039;price&#039;}, d.asc),&lt;br /&gt;
        d.on(d.path{&#039;name&#039;}, d.asc),&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    local options = {&lt;br /&gt;
        caption = f.args[&#039;caption&#039;]&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return dv.displayTable(data, p.view, columns, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Auxiliary_Power_Unit&amp;diff=28159</id>
		<title>Auxiliary Power Unit</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Auxiliary_Power_Unit&amp;diff=28159"/>
		<updated>2023-08-29T03:32:20Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Either an additional electrical generator (MPDG) or an electrical energy storage system (SMES)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Ideally would sort by APU Type, then price, but no clue how to override the default sort order&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Equipment|list|Auxiliary Power System&lt;br /&gt;
|caption=Auxiliary Power Systems&lt;br /&gt;
|Name|APU Type&lt;br /&gt;
&amp;lt;!-- MPDG --&amp;gt;&lt;br /&gt;
|Power Consumption|Thermal Consumption|Power (nominal)&lt;br /&gt;
&amp;lt;!-- SMES --&amp;gt;&lt;br /&gt;
|Energy capacity|Charge Power Draw|Discharge Power (peak)&lt;br /&gt;
|Mass|Price}}&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Module:Equipment&amp;diff=28158</id>
		<title>Module:Equipment</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Module:Equipment&amp;diff=28158"/>
		<updated>2023-08-29T03:24:05Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
local d = require(&#039;Module:Data&#039;)&lt;br /&gt;
local dv = require(&#039;Module:Data/View&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
p.view = {}&lt;br /&gt;
&lt;br /&gt;
p.view[&#039;Name&#039;] = dv.text{&#039;name&#039;}&lt;br /&gt;
p.view[&#039;Title&#039;] = dv.title{function(item) return item.title or item.name end, heading=&#039;Name&#039;, text=&#039;name&#039;}&lt;br /&gt;
p.view[&#039;Price&#039;] = dv.number{&#039;price&#039;, unit=&#039;E$&#039;}&lt;br /&gt;
p.view[&#039;Mass&#039;] = dv.number{&#039;mass&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Manufacturer&#039;] = dv.text{&#039;manufacturer&#039;}&lt;br /&gt;
p.view[&#039;Other&#039;] = dv.text{&#039;other&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Hardpoints&lt;br /&gt;
p.view[&#039;High-Stress&#039;] = dv.flag{&#039;highStress&#039;}&lt;br /&gt;
p.view[&#039;Low-Stress&#039;] = dv.flag{&#039;lowStress&#039;}&lt;br /&gt;
p.view[&#039;Docking bay&#039;] = dv.flag{&#039;dockingBay&#039;}&lt;br /&gt;
p.view[&#039;Drone hardpoint&#039;] = dv.flag{&#039;droneHardpoint&#039;}&lt;br /&gt;
&lt;br /&gt;
p.view[&#039;Effective range&#039;] = dv.number{&#039;effectiveRange&#039;, unit=&#039;m&#039;}&lt;br /&gt;
p.view[&#039;Power draw&#039;] = dv.number{&#039;powerDraw&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Drones&lt;br /&gt;
p.view[&#039;Drones per second&#039;] = dv.number{&#039;droneLaunchCapability&#039;}&lt;br /&gt;
p.view[&#039;Drone wet mass&#039;] = dv.number{&#039;droneWetMass&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Drone thrust&#039;] = dv.number{&#039;droneThrust&#039;, unit=&#039;kN&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Projectile magazines, nanodrone components, and propellant tanks&lt;br /&gt;
p.view[&#039;Storage&#039;] = dv.number{&#039;storage&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Delivery&#039;] = dv.number{&#039;delivery&#039;, unit=&#039;kg/s&#039;}&lt;br /&gt;
p.view[&#039;Exclusive to&#039;] = dv.list{&#039;exclusiveTo&#039;, itemView=dv.title{nil}}&lt;br /&gt;
&lt;br /&gt;
-- Ultracapacitors&lt;br /&gt;
p.view[&#039;Energy capacity&#039;] = dv.number{&#039;energyCapacity&#039;, unit=&#039;MJ&#039;}&lt;br /&gt;
p.view[&#039;Peak power&#039;] = dv.number{&#039;peakPower&#039;, unit=&#039;GW&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Autopilots&lt;br /&gt;
p.view[&#039;AAT&#039;] = dv.flag{&#039;aat&#039;, heading=&#039;[[Autopilot#AAT|AAT]]&#039;}&lt;br /&gt;
p.view[&#039;ARL&#039;] = dv.flag{&#039;arl&#039;, heading=&#039;[[Autopilot#ARL|ARL]]&#039;}&lt;br /&gt;
p.view[&#039;RTC&#039;] = dv.flag{&#039;rtc&#039;, heading=&#039;[[Autopilot#RTC|RTC]]&#039;}&lt;br /&gt;
p.view[&#039;FBW&#039;] = dv.flag{&#039;fbw&#039;, heading=&#039;[[Autopilot#FBW|FBW]]&#039;}&lt;br /&gt;
p.view[&#039;Autopilot capabilities&#039;] = dv.list{&#039;autopilotCapabilities&#039;, heading=&#039;Capabilities&#039;, itemView=dv.text{nil}}&lt;br /&gt;
&lt;br /&gt;
-- Gimbals/Vectored&lt;br /&gt;
p.view[&#039;Vectored Thrust Angle&#039;] = dv.number{&#039;vectoredThrustAngle&#039;, unit=&#039;deg&#039;}&lt;br /&gt;
p.view[&#039;Gimbal Angle&#039;] = dv.number{&#039;gimbalAngle&#039;, unit=&#039;deg&#039;}&lt;br /&gt;
p.view[&#039;Gimbal Speed&#039;] = dv.number{&#039;gimbalSpeed&#039;, unit=&#039;deg/s&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Main Propulsion and RCS&lt;br /&gt;
p.view[&#039;Thrust&#039;] = dv.number{&#039;thrust&#039;, unit=&#039;kN&#039;}&lt;br /&gt;
p.view[&#039;Exhaust Velocity&#039;] = dv.number{&#039;exhaustVelocity&#039;, unit=&#039;km/s&#039;}&lt;br /&gt;
p.view[&#039;Propellant Consumption&#039;] = dv.number{&#039;propellantConsumption&#039;, unit=&#039;kg/s&#039;}&lt;br /&gt;
p.view[&#039;Power Consumption&#039;] = dv.number{&#039;powerConsumption&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Thermal Consumption&#039;] = dv.number{&#039;thermalConsumption&#039;, unit=&#039;GW&#039;}&lt;br /&gt;
p.view[&#039;Response Time&#039;] = dv.number{&#039;responseTime&#039;, unit=&#039;s&#039;}&lt;br /&gt;
p.view[&#039;Operation Mode&#039;] = dv.text{&#039;operationMode&#039;}&lt;br /&gt;
p.view[&#039;Propellant&#039;] = dv.text{&#039;propellant&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Auxiliary Power System&lt;br /&gt;
p.view[&#039;Power (nominal)&#039;] = dv.number{&#039;power&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Charge Power Draw&#039;] = dv.number{&#039;chargePower&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Discharge Power (peak)&#039;] = dv.number{&#039;dischargePower&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;APU Type&#039;] = dv.number{&#039;apsType&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Category&#039;] = dv.list{&#039;categories&#039;, itemView=dv.title{nil}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for k,v in pairs(p.view) do&lt;br /&gt;
    v.heading = v.heading or k&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.defaultColumns = {&lt;br /&gt;
    &#039;Name&#039;, &#039;Price&#039;, &#039;Mass&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.positionalArgs = function(f)&lt;br /&gt;
    local posArgs = {}&lt;br /&gt;
    for i,posArg in ipairs(f.args) do&lt;br /&gt;
        -- positional arguments don&#039;t get trimmed&lt;br /&gt;
        table.insert(posArgs, mw.text.trim(posArg))&lt;br /&gt;
    end&lt;br /&gt;
    return posArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.list = function(f)&lt;br /&gt;
    local posArgs = p.positionalArgs (f)&lt;br /&gt;
    local slot = table.remove(posArgs, 1)&lt;br /&gt;
    local columns = posArgs&lt;br /&gt;
    if table.getn(columns) == 0 then&lt;br /&gt;
        columns = p.defaultColumns&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local data = mw.loadData(&#039;Module:Equipment/Data&#039;)&lt;br /&gt;
    data = data[slot]&lt;br /&gt;
&lt;br /&gt;
    data = d.sort(data, {&lt;br /&gt;
        d.on(d.path{&#039;price&#039;}, d.asc),&lt;br /&gt;
        d.on(d.path{&#039;name&#039;}, d.asc),&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    local options = {&lt;br /&gt;
        caption = f.args[&#039;caption&#039;]&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return dv.displayTable(data, p.view, columns, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Module:Equipment&amp;diff=28157</id>
		<title>Module:Equipment</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Module:Equipment&amp;diff=28157"/>
		<updated>2023-08-29T03:21:00Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
local d = require(&#039;Module:Data&#039;)&lt;br /&gt;
local dv = require(&#039;Module:Data/View&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
p.view = {}&lt;br /&gt;
&lt;br /&gt;
p.view[&#039;Name&#039;] = dv.text{&#039;name&#039;}&lt;br /&gt;
p.view[&#039;Title&#039;] = dv.title{function(item) return item.title or item.name end, heading=&#039;Name&#039;, text=&#039;name&#039;}&lt;br /&gt;
p.view[&#039;Price&#039;] = dv.number{&#039;price&#039;, unit=&#039;E$&#039;}&lt;br /&gt;
p.view[&#039;Mass&#039;] = dv.number{&#039;mass&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Manufacturer&#039;] = dv.text{&#039;manufacturer&#039;}&lt;br /&gt;
p.view[&#039;Other&#039;] = dv.text{&#039;other&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Hardpoints&lt;br /&gt;
p.view[&#039;High-Stress&#039;] = dv.flag{&#039;highStress&#039;}&lt;br /&gt;
p.view[&#039;Low-Stress&#039;] = dv.flag{&#039;lowStress&#039;}&lt;br /&gt;
p.view[&#039;Docking bay&#039;] = dv.flag{&#039;dockingBay&#039;}&lt;br /&gt;
p.view[&#039;Drone hardpoint&#039;] = dv.flag{&#039;droneHardpoint&#039;}&lt;br /&gt;
&lt;br /&gt;
p.view[&#039;Effective range&#039;] = dv.number{&#039;effectiveRange&#039;, unit=&#039;m&#039;}&lt;br /&gt;
p.view[&#039;Power draw&#039;] = dv.number{&#039;powerDraw&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Drones&lt;br /&gt;
p.view[&#039;Drones per second&#039;] = dv.number{&#039;droneLaunchCapability&#039;}&lt;br /&gt;
p.view[&#039;Drone wet mass&#039;] = dv.number{&#039;droneWetMass&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Drone thrust&#039;] = dv.number{&#039;droneThrust&#039;, unit=&#039;kN&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Projectile magazines, nanodrone components, and propellant tanks&lt;br /&gt;
p.view[&#039;Storage&#039;] = dv.number{&#039;storage&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Delivery&#039;] = dv.number{&#039;delivery&#039;, unit=&#039;kg/s&#039;}&lt;br /&gt;
p.view[&#039;Exclusive to&#039;] = dv.list{&#039;exclusiveTo&#039;, itemView=dv.title{nil}}&lt;br /&gt;
&lt;br /&gt;
-- Ultracapacitors&lt;br /&gt;
p.view[&#039;Energy capacity&#039;] = dv.number{&#039;energyCapacity&#039;, unit=&#039;MJ&#039;}&lt;br /&gt;
p.view[&#039;Peak power&#039;] = dv.number{&#039;peakPower&#039;, unit=&#039;GW&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Autopilots&lt;br /&gt;
p.view[&#039;AAT&#039;] = dv.flag{&#039;aat&#039;, heading=&#039;[[Autopilot#AAT|AAT]]&#039;}&lt;br /&gt;
p.view[&#039;ARL&#039;] = dv.flag{&#039;arl&#039;, heading=&#039;[[Autopilot#ARL|ARL]]&#039;}&lt;br /&gt;
p.view[&#039;RTC&#039;] = dv.flag{&#039;rtc&#039;, heading=&#039;[[Autopilot#RTC|RTC]]&#039;}&lt;br /&gt;
p.view[&#039;FBW&#039;] = dv.flag{&#039;fbw&#039;, heading=&#039;[[Autopilot#FBW|FBW]]&#039;}&lt;br /&gt;
p.view[&#039;Autopilot capabilities&#039;] = dv.list{&#039;autopilotCapabilities&#039;, heading=&#039;Capabilities&#039;, itemView=dv.text{nil}}&lt;br /&gt;
&lt;br /&gt;
-- Gimbals/Vectored&lt;br /&gt;
p.view[&#039;Vectored Thrust Angle&#039;] = dv.number{&#039;vectoredThrustAngle&#039;, unit=&#039;deg&#039;}&lt;br /&gt;
p.view[&#039;Gimbal Angle&#039;] = dv.number{&#039;gimbalAngle&#039;, unit=&#039;deg&#039;}&lt;br /&gt;
p.view[&#039;Gimbal Speed&#039;] = dv.number{&#039;gimbalSpeed&#039;, unit=&#039;deg/s&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Main Propulsion and RCS&lt;br /&gt;
p.view[&#039;Thrust&#039;] = dv.number{&#039;thrust&#039;, unit=&#039;kN&#039;}&lt;br /&gt;
p.view[&#039;Exhaust Velocity&#039;] = dv.number{&#039;exhaustVelocity&#039;, unit=&#039;km/s&#039;}&lt;br /&gt;
p.view[&#039;Propellant Consumption&#039;] = dv.number{&#039;propellantConsumption&#039;, unit=&#039;kg/s&#039;}&lt;br /&gt;
p.view[&#039;Power Consumption&#039;] = dv.number{&#039;powerConsumption&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Thermal Consumption&#039;] = dv.number{&#039;thermalConsumption&#039;, unit=&#039;GW&#039;}&lt;br /&gt;
p.view[&#039;Response Time&#039;] = dv.number{&#039;responseTime&#039;, unit=&#039;s&#039;}&lt;br /&gt;
p.view[&#039;Operation Mode&#039;] = dv.text{&#039;operationMode&#039;}&lt;br /&gt;
p.view[&#039;Propellant&#039;] = dv.text{&#039;propellant&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Auxiliary Power System&lt;br /&gt;
p.view[&#039;Power (nominal)&#039;] = dv.number{&#039;power&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Charge Power Draw&#039;] = dv.number{&#039;chargePower&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Discharge Power (peak)&#039;] = dv.number{&#039;dischargePower&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for k,v in pairs(p.view) do&lt;br /&gt;
    v.heading = v.heading or k&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.defaultColumns = {&lt;br /&gt;
    &#039;Name&#039;, &#039;Price&#039;, &#039;Mass&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.positionalArgs = function(f)&lt;br /&gt;
    local posArgs = {}&lt;br /&gt;
    for i,posArg in ipairs(f.args) do&lt;br /&gt;
        -- positional arguments don&#039;t get trimmed&lt;br /&gt;
        table.insert(posArgs, mw.text.trim(posArg))&lt;br /&gt;
    end&lt;br /&gt;
    return posArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.list = function(f)&lt;br /&gt;
    local posArgs = p.positionalArgs (f)&lt;br /&gt;
    local slot = table.remove(posArgs, 1)&lt;br /&gt;
    local columns = posArgs&lt;br /&gt;
    if table.getn(columns) == 0 then&lt;br /&gt;
        columns = p.defaultColumns&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local data = mw.loadData(&#039;Module:Equipment/Data&#039;)&lt;br /&gt;
    data = data[slot]&lt;br /&gt;
&lt;br /&gt;
    data = d.sort(data, {&lt;br /&gt;
        d.on(d.path{&#039;price&#039;}, d.asc),&lt;br /&gt;
        d.on(d.path{&#039;name&#039;}, d.asc),&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    local options = {&lt;br /&gt;
        caption = f.args[&#039;caption&#039;]&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return dv.displayTable(data, p.view, columns, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Module:Equipment&amp;diff=28156</id>
		<title>Module:Equipment</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Module:Equipment&amp;diff=28156"/>
		<updated>2023-08-29T03:17:35Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
local d = require(&#039;Module:Data&#039;)&lt;br /&gt;
local dv = require(&#039;Module:Data/View&#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
p.view = {}&lt;br /&gt;
&lt;br /&gt;
p.view[&#039;Name&#039;] = dv.text{&#039;name&#039;}&lt;br /&gt;
p.view[&#039;Title&#039;] = dv.title{function(item) return item.title or item.name end, heading=&#039;Name&#039;, text=&#039;name&#039;}&lt;br /&gt;
p.view[&#039;Price&#039;] = dv.number{&#039;price&#039;, unit=&#039;E$&#039;}&lt;br /&gt;
p.view[&#039;Mass&#039;] = dv.number{&#039;mass&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Manufacturer&#039;] = dv.text{&#039;manufacturer&#039;}&lt;br /&gt;
p.view[&#039;Other&#039;] = dv.text{&#039;other&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Hardpoints&lt;br /&gt;
p.view[&#039;High-Stress&#039;] = dv.flag{&#039;highStress&#039;}&lt;br /&gt;
p.view[&#039;Low-Stress&#039;] = dv.flag{&#039;lowStress&#039;}&lt;br /&gt;
p.view[&#039;Docking bay&#039;] = dv.flag{&#039;dockingBay&#039;}&lt;br /&gt;
p.view[&#039;Drone hardpoint&#039;] = dv.flag{&#039;droneHardpoint&#039;}&lt;br /&gt;
&lt;br /&gt;
p.view[&#039;Effective range&#039;] = dv.number{&#039;effectiveRange&#039;, unit=&#039;m&#039;}&lt;br /&gt;
p.view[&#039;Power draw&#039;] = dv.number{&#039;powerDraw&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Drones&lt;br /&gt;
p.view[&#039;Drones per second&#039;] = dv.number{&#039;droneLaunchCapability&#039;}&lt;br /&gt;
p.view[&#039;Drone wet mass&#039;] = dv.number{&#039;droneWetMass&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Drone thrust&#039;] = dv.number{&#039;droneThrust&#039;, unit=&#039;kN&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Projectile magazines, nanodrone components, and propellant tanks&lt;br /&gt;
p.view[&#039;Storage&#039;] = dv.number{&#039;storage&#039;, unit=&#039;kg&#039;}&lt;br /&gt;
p.view[&#039;Delivery&#039;] = dv.number{&#039;delivery&#039;, unit=&#039;kg/s&#039;}&lt;br /&gt;
p.view[&#039;Exclusive to&#039;] = dv.list{&#039;exclusiveTo&#039;, itemView=dv.title{nil}}&lt;br /&gt;
&lt;br /&gt;
-- Ultracapacitors&lt;br /&gt;
p.view[&#039;Energy capacity&#039;] = dv.number{&#039;energyCapacity&#039;, unit=&#039;MJ&#039;}&lt;br /&gt;
p.view[&#039;Peak power&#039;] = dv.number{&#039;peakPower&#039;, unit=&#039;GW&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Autopilots&lt;br /&gt;
p.view[&#039;AAT&#039;] = dv.flag{&#039;aat&#039;, heading=&#039;[[Autopilot#AAT|AAT]]&#039;}&lt;br /&gt;
p.view[&#039;ARL&#039;] = dv.flag{&#039;arl&#039;, heading=&#039;[[Autopilot#ARL|ARL]]&#039;}&lt;br /&gt;
p.view[&#039;RTC&#039;] = dv.flag{&#039;rtc&#039;, heading=&#039;[[Autopilot#RTC|RTC]]&#039;}&lt;br /&gt;
p.view[&#039;FBW&#039;] = dv.flag{&#039;fbw&#039;, heading=&#039;[[Autopilot#FBW|FBW]]&#039;}&lt;br /&gt;
p.view[&#039;Autopilot capabilities&#039;] = dv.list{&#039;autopilotCapabilities&#039;, heading=&#039;Capabilities&#039;, itemView=dv.text{nil}}&lt;br /&gt;
&lt;br /&gt;
-- Gimbals/Vectored&lt;br /&gt;
p.view[&#039;Vectored Thrust Angle&#039;] = dv.number{&#039;vectoredThrustAngle&#039;, unit=&#039;deg&#039;}&lt;br /&gt;
p.view[&#039;Gimbal Angle&#039;] = dv.number{&#039;gimbalAngle&#039;, unit=&#039;deg&#039;}&lt;br /&gt;
p.view[&#039;Gimbal Speed&#039;] = dv.number{&#039;gimbalSpeed&#039;, unit=&#039;deg/s&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Main Propulsion and RCS&lt;br /&gt;
p.view[&#039;Thrust&#039;] = dv.number{&#039;thrust&#039;, unit=&#039;kN&#039;}&lt;br /&gt;
p.view[&#039;Exhaust Velocity&#039;] = dv.number{&#039;exhaustVelocity&#039;, unit=&#039;km/s&#039;}&lt;br /&gt;
p.view[&#039;Propellant Consumption&#039;] = dv.number{&#039;propellantConsumption&#039;, unit=&#039;kg/s&#039;}&lt;br /&gt;
p.view[&#039;Power Consumption&#039;] = dv.number{&#039;powerConsumption&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
p.view[&#039;Thermal Consumption&#039;] = dv.number{&#039;thermalConsumption&#039;, unit=&#039;GW&#039;}&lt;br /&gt;
p.view[&#039;Response Time&#039;] = dv.number{&#039;responseTime&#039;, unit=&#039;s&#039;}&lt;br /&gt;
p.view[&#039;Operation Mode&#039;] = dv.text{&#039;operationMode&#039;}&lt;br /&gt;
p.view[&#039;Propellant&#039;] = dv.text{&#039;propellant&#039;}&lt;br /&gt;
&lt;br /&gt;
-- Auxiliary Power System&lt;br /&gt;
p.view[&#039;Power (nominal)&#039;] = dv.number{&#039;power&#039;, unit=&#039;MW&#039;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for k,v in pairs(p.view) do&lt;br /&gt;
    v.heading = v.heading or k&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.defaultColumns = {&lt;br /&gt;
    &#039;Name&#039;, &#039;Price&#039;, &#039;Mass&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.positionalArgs = function(f)&lt;br /&gt;
    local posArgs = {}&lt;br /&gt;
    for i,posArg in ipairs(f.args) do&lt;br /&gt;
        -- positional arguments don&#039;t get trimmed&lt;br /&gt;
        table.insert(posArgs, mw.text.trim(posArg))&lt;br /&gt;
    end&lt;br /&gt;
    return posArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.list = function(f)&lt;br /&gt;
    local posArgs = p.positionalArgs (f)&lt;br /&gt;
    local slot = table.remove(posArgs, 1)&lt;br /&gt;
    local columns = posArgs&lt;br /&gt;
    if table.getn(columns) == 0 then&lt;br /&gt;
        columns = p.defaultColumns&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local data = mw.loadData(&#039;Module:Equipment/Data&#039;)&lt;br /&gt;
    data = data[slot]&lt;br /&gt;
&lt;br /&gt;
    data = d.sort(data, {&lt;br /&gt;
        d.on(d.path{&#039;price&#039;}, d.asc),&lt;br /&gt;
        d.on(d.path{&#039;name&#039;}, d.asc),&lt;br /&gt;
    })&lt;br /&gt;
&lt;br /&gt;
    local options = {&lt;br /&gt;
        caption = f.args[&#039;caption&#039;]&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return dv.displayTable(data, p.view, columns, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Powerplant&amp;diff=28155</id>
		<title>Powerplant</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Powerplant&amp;diff=28155"/>
		<updated>2023-08-29T02:44:32Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: Created page with &amp;quot;{{#invoke:Equipment|list|Powerplant |caption=Available powerplants |Name &amp;lt;!-- Need to add Power (nominal) to Module:Equipment --&amp;gt; |Power (nominal) |Propellant Consumption |Mass|Price}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Equipment|list|Powerplant&lt;br /&gt;
|caption=Available powerplants&lt;br /&gt;
|Name&lt;br /&gt;
&amp;lt;!-- Need to add Power (nominal) to Module:Equipment --&amp;gt;&lt;br /&gt;
|Power (nominal)&lt;br /&gt;
|Propellant Consumption&lt;br /&gt;
|Mass|Price}}&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
	<entry>
		<id>https://delta-v.kodera.pl/index.php?title=Auxiliary_Power_Unit&amp;diff=28154</id>
		<title>Auxiliary Power Unit</title>
		<link rel="alternate" type="text/html" href="https://delta-v.kodera.pl/index.php?title=Auxiliary_Power_Unit&amp;diff=28154"/>
		<updated>2023-08-29T02:38:57Z</updated>

		<summary type="html">&lt;p&gt;Dogwood808: Created page with &amp;quot;Either an additional electrical generator (MPDG) or an electrical energy storage system (SMES)  &amp;lt;!-- crude attempt at hacking together a table below   no idea what fields to add to Module:Equipment for:   - Power (nominal)   - Charge power draw   - Discharge power (peak); &amp;quot;Peak power&amp;quot; doesn&amp;#039;t work  --&amp;gt;  {{#invoke:Equipment|list|Auxiliary Power System |caption=Available Auxiliary Power Systems |Name|Manufacturer &amp;lt;!-- MPDG --&amp;gt; |Power Consumption|Thermal Consumption|Power (...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Either an additional electrical generator (MPDG) or an electrical energy storage system (SMES)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- crude attempt at hacking together a table below&lt;br /&gt;
  no idea what fields to add to Module:Equipment for:&lt;br /&gt;
  - Power (nominal)&lt;br /&gt;
  - Charge power draw&lt;br /&gt;
  - Discharge power (peak); &amp;quot;Peak power&amp;quot; doesn&#039;t work&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Equipment|list|Auxiliary Power System&lt;br /&gt;
|caption=Available Auxiliary Power Systems&lt;br /&gt;
|Name|Manufacturer&lt;br /&gt;
&amp;lt;!-- MPDG --&amp;gt;&lt;br /&gt;
|Power Consumption|Thermal Consumption|Power (nominal)&lt;br /&gt;
&amp;lt;!-- SMES --&amp;gt;&lt;br /&gt;
|Energy capacity|Charge power draw|Discharge power (peak)&lt;br /&gt;
|Mass|Price}}&lt;/div&gt;</summary>
		<author><name>Dogwood808</name></author>
	</entry>
</feed>