Module:Infobox/thing

local p = {}

-- Units local units = { cf = [=[ CF ]=], cfPerTick = [=[ CF/t ]=], emc = [=[ EMC ]=], emcPerSec = [=[ EMC/second ]=], eu = [=[ EU ]=], euAmps = [=[ EU-Amps ]=], euPerTick = [=[ EU/t ]=], euPerUse = [=[ EU/use ]=], euVolts = [=[ EU-Volts ]=], huPerTick = [=[ hU/t ]=], k = [=[ K ]=], kuPerTick = [=[ kU/t ]=], litres = [=[ L ]=], litresPerSec = [=[ L/s ]=], litresPerTick = [=[ L/t ]=], mb = [=[ mB ]=], mj = [=[ MJ ]=], mjPerTick = [=[ MJ/t ]=], metersPerSec = [=[ m/s ]=], nm = [=[ Nm ]=], degc = [=[ ºC ]=], degf = [=[ ºF ]=], perTick = [=[ per tick ]=], radPerSec = [=[ rad/s ]=], rf = [=[ RF ]=], rfPerTick = [=[ RF/t ]=], t = [=[ T ]=], tPerTick = [=[ T/t ]=], stacksPerSec = [=[ Stacks/s ]=], su = [=[ SU ]=], suPerTick = [=[ SU/t ]=], suPerUse = [=[ SU/use ]=], watts = [=[ W ]=], aePerUse = [=[ AE/use ]=] }

-- This variable holds the list of item types. local itemTypes = { armor = [=[ Armor ]=], block = [=[ Solid block ]=], sblock = [=[ Solid block ]=], oblock = [=[ Solid block ]=], tblock = [=[ Transparent block ]=], component = [=[ Component ]=], crop = [=[ Crop ]=], entity = [=[ Entity ]=], tentity = [=[ Tile entity ]=], food = [=[ Food ]=], item = [=[ Item ]=], machine = [=[ Machine ]=], mob = [=[ Monster ]=], hmob = [=[ Hostile monster ]=], nmob = [=[ Neutral monster ]=], fmob = [=[ Friendly monster ]=], seed = [=[ Seed ]=], tool = [=[ Tool ]=], wand = [=[ Wand ]=], weap = [=[ Weapon ]=], weapon = [=[ Weapon ]=], hull = [=[  ]=], module = [=[  ]=], upgrade = [=[  ]=], landmark = [=[ Landmark ]=], ritual = [=[ Ritual ]=], liquid = [=[ Fluid ]=], fluid = [=[ Fluid ]=], ["multiblock structure"] = [=[ Multiblock structure ]=], enchant = [=[ Enchantment ]=], mechanic = [=[ Mechanic ]=], dimension = [=[ Dimension ]=], flower = [=[ Flower ]=], command = [=[ Command ]=], aspect = [=[ Aspect ]=], bauble = [=[ Bauble ]=], book = [=[ Book ]=], cover = [=[ Cover ]=], cable = [=[ Cable ]=], pipe = [=[ Pipe ]=] }

p.docLead = [=[ This one is for items, blocks, and the like. ]=]

p.format = { {       name = [=[ Basic ]=], title = {arg="name", desc=[=[ The title that will be displayed at the top of the info box. ]=]},       {           ,        },        {               {[=[ Mod ]=], {arg="mod", desc=[=[ The mod the item belongs to. Always refer to the main page of the mod. Please do not use version numbers like "Flaxbeard's Steam Power 0.28.0"; just use the regular name instead. (Will detect page language and link to respective languages) ]=]}}, {[=[ Type ]=], {arg="type", type="switch", allowedValues=itemTypes, desc=[=[ The item type. ]=]}},           {[=[ Tooltip text ]=], {arg="lore", desc=[=[ Additional information that is displayed on the tooltip of the item in game. If the in-game tooltip has custom colors, they should be added to this parameter using the Color template. Colors that are typically used can be found on the Minecraft Wiki. ]=]}},           {[=[ Required modules ]=], {arg="module", desc=[=[ The module or modules that are required to be installed/enabled for the item to be present in the mod. Some examples of mods that add modules include, , and. ]=]}},           { [=[ Chemical composition ]=], {arg="chemcomp", desc=[=[ Chemical composition of the item. ]=]}}       }    },    {        name="Basic", title=[=[ Properties ]=], {           {[=[ Blast resistance ]=], {arg="blastresistance", desc=[=[ The blast resistance of the block. Include only the number. ]=]} },           {[=[ Hardness ]=], {arg="hardness", desc=[=[ The hardness of a block. ]=]}},           {[=[ Luminance ]=], {arg="luminance", desc=[=[ The luminance value provided by the block or fluid. Include only the number. ]=]}}       },        {            {[=[ Restores ]=], {arg="foodpoints", desc=[=[ The food points a food regenerates. Add this only to food. ]=]}},           {[=[ Saturation ]=], {arg="saturation", desc=[=[ The saturation the food regenerates. Add this only to food. ]=]}},          ,            {[=[ Effects ]=], {arg="effects", desc=[=[ List of effects the food/potion buffs you with. Use Effect. ]=]}},           {[=[  ]=], {arg="alcohol", desc=[=[ GregTech 6 alcohol value. ]=]}},           {[=[  ]=], {arg="caffeine", desc=[=[ GregTech 6 caffeine value. ]=]}},           {[=[  ]=], {arg="dehydration", desc=[=[ GregTech 6 dehydration value. ]=]}},           {[=[  ]=], {arg="sugar", desc=[=[ GregTech 6 sugar value. ]=]}},           {[=[  ]=], {arg="fat", desc=[=[ GregTech 6 fatvalue. ]=]}},           {[=[ Cookable ]=], {arg="cookable", desc=[=[ Whether the item is cookable (food). ]=]}},           {[=[ Health points ]=], {arg="hp", desc=[=[ The amount of health points (hp) that the entity has. ]=]}},           {[=[ Armor points ]=], {arg="ap", desc=[=[ The amount of armor points (ap) that the entity has. ]=]}}       },        {            {[=[ Armor rating ]=],{arg="armorrating",type="templateCall",template="Armor",desc=[=[ The armor rating of the armor. Add this only to armor. Include only the number, as it will interface automatically with Armor. ]=]}},           {[=[ Armor toughness ]=], {arg="toughness", desc=[=[ The toughness rating of the armor. Add this only to armor. ]=]}},           {[=[ Damage ]=],{arg="damage",desc=[=[ The weapon's damage (one heart is two damage, half a heart is one damage). Add this only to weapons ]=]}}, {[=[ Speed ]=],{arg="aspeed",desc=[=[ The weapon's attack speed (added in Minecraft 1.9). Add this only to weapons ]=]}}, {[=[ Durability ]=],{arg="durability",desc=[=[ The durability of the tool or armor. Add this only to tools and armor. ]=]}},           {[=[ Enchantability ]=], {arg="enchantability", desc=[=[ The enchantability, or how powerful enchantments will be, for this armor or tool. ]=]}},           {[=[ Mining level ]=],{arg="mininglevel",desc=[=[ The pick's mining level (wood, stone, iron etc...). ]=]}},           {[=[ Mining speed ]=],{arg="miningspeed",desc=[=[ The pick's mining speed. ]=]}}       },        {            {[=[ Stackable ]=],{arg="stackable", desc = [=[ Whether the block/item is stackable. ]=]}},           {[=[ Flammable ]=],{arg="flammable", desc = [=[ Whether the block/item is flammable (can be set on fire and burned). ]=]}}       },        {            {[=[ Storage ]=],{arg={"storageslots","storage"}, desc = [=[ The storage of the item - This parameter does NOT add "cells" or "stacks" after the parameter's text. ]=]}},           {[=[ Liquid storage ]=],{arg="lstorage", units=units.mb, desc = [=[ The maximum liquid storage of the item in mB. Include only the number. ]=]}}       },        {            {[=[ Heat (C) ]=],{arg="heatc", units=units.degc, desc = [=[ The maximum heat capacity of the item in C (Celsius). Include only the number. ]=]}},           {[=[ Heat (F) ]=],{arg="heatf", units=units.degf, desc = [=[ The maximum heat capacity of the item in F (Fahrenheit). Include only the number. ]=]}}       },        {            {[=[   ]=],{arg="tc3aspects", desc = [=[ The  added by  to this object. ]=]}},           {[=[   ]=],{arg="tc4aspects", desc = [=[ The  added by  to this object. ]=]}},           {[=[   ]=],{arg="tc5aspects", desc = [=[ The  added by  to this object. ]=]}},           {[=[   ]=],{arg="tc6aspects", desc = [=[ The  added by  to this object. ]=]}}       },    },    {        name="DecoCraft costs", title = [=[ DecoCraft costs ]=], {           {[=[ Clay ]=], {arg="decoclay", desc=[=[ The cost of normal clay requiried to create the item. For use with DecoCraft. ]=]}},           {[=[ Red ]=], {arg="decored", desc=[=[ The cost of red color required to create the item. For use with DecoCraft. ]=]}},           {[=[ Blue ]=], {arg="decoblue", desc=[=[ The cost of blue color required to create the item. For use with DecoCraft. ]=]}},           {[=[ Green ]=], {arg="decogreen", desc=[=[ The cost of green color required to create the item. For use with DecoCraft. ]=]}}       }    },    {        name="Upgrades", title = [=[ Upgrades ]=], {       },        {            {[=[ Previous tier ]=],{arg="prevtier", desc = [=[ Previous tier of the item, tool or machine. ]=]}}       },        {            {[=[ Next tier ]=],{arg="nexttier", desc = [=[ Next tier of the item, tool or machine. ]=]}}       }    },    {        name="Energy", title = [=[ Energy ]=], {           {[=[ Max EU input ]=], {arg="euinput", units=units.euPerTick, desc = [=[ Maximum input of EU/t. Include only the number. ]=]}},           {[=[ EU use ]=], {arg="euuse", units=units.euPerTick, desc = [=[ EU consumption in EU/t. Include only the number. ]=]}},           {[=[ EU use ]=], {arg="euusetool", units="EU/use", desc = [=[ EU consumption in EU per use (only used on tools that use EU per use). Include only the number. ]=]}},           {[=[ EU storage ]=], {arg="eustorage", units=units.eu, desc = [=[ EU storage in EU. Include only the number. ]=]}},           {[=[ Max EU output ]=], {arg="euoutput", units=units.euPerTick, desc = [=[ Maximum output of EU/t. Include only the number. ]=]}},           {[=[ EU production ]=], {arg="euproduction", units=units.euPerTick, desc = [=[ EU production in EU/t. Include only the number. ]=]}},           {[=[ EU traversing ]=], {arg="eutraversing", units=units.euPerTick, desc = [=[ Maximum energy traversing - only for cables. Include only the number. ]=]}}       },        {            {[=[ Heat input ]=], {arg="huinput", units=units.huPerTick, desc = [=[ Maximum  heat input per tick. ]=]}},           {[=[ Heat use ]=], {arg="huuse", units=units.huPerTick, desc = [=[ hU consumption per tick. ]=]}},           {[=[ Max heat output ]=], {arg="huoutput", units=units.huPerTick, desc = [=[ Maximum output of hU/t. ]=]}},           {[=[ Heat production ]=], {arg="huproduction", units=units.huPerTick, desc = [=[ Heat production in hU/t. ]=]}},           {[=[ Heat traversing ]=], {arg="hutraversing", units=units.huPerTick, desc = [=[ Maximum heat energy traversing the cable. ]=]}}       },        {            {[=[ Kinetic input ]=], {arg="kuinput", units=units.kuPerTick, desc = [=[ Maximum  rotation energy per tick. ]=]}},           {[=[ Kinetic energy use ]=], {arg="kuuse", units=units.kuPerTick, desc = [=[ Kinetic energy consumption per tick. ]=]}},           {[=[ Max kinetic output ]=], {arg="kuoutput", units=units.kuPerTick, desc = [=[ Maximum output of kU/t ]=]}}, {[=[ Kinetic energy production ]=], {arg="kuproduction", units=units, desc = [=[ Kinetic energy production in kU/t. ]=]}},           {[=[ Kinetic energy traversing ]=], {arg="kutraversing", units=units.kuPerTick, desc = [=[ Maximum kinetic energy traversing the cable. ]=]}}       },        {            {[=[ Steam storage ]=], {arg="gtsteamstorage", units=units.litres, desc = [=[ Maximum liters of steam that it can hold - for  and its addons. Include only the number. ]=]}},           {[=[ Steam usage ]=], {arg="gtsteamusage", desc = [=[ Liters of steam that is used by it per tick - for  and its addons. Include only the number. ]=]}},           {[=[ Steam production ]=], {arg="gtsteamproduction", units=units.litresPerTick, desc = [=[ How many liters of steam it makes per tick - for  and its addons. Include only the number. ]=]}},           {[=[ Energy storage ]=], {arg="gteustorage", units=units.eu, desc = [=[ How much EU it can hold - for  and its addons. Include only the number. ]=]}},           {[=[ Energy usage ]=], {arg="gteuusage", units=units.euPerTick, desc = [=[ How much EU is used by it per tick - for  and its addons. Include only the number. ]=]}},           {[=[ Energy production ]=], {arg="gteuproduction", units=units.euPerTick, desc = [=[ How much EU is produced by it per tick - for  and its addons. Include only the number. ]=]}},           {[=[ Voltage in ]=], {arg="gtvoltagein", units=units.euVolts, desc = [=[ Maximum EU voltage that can be put into it - for  and its addons. Include only the number. ]=]}},           {[=[ Voltage out ]=], {arg="gtvoltageout", units=units.euVolts, desc = [=[ Maximum EU voltage that can be output - for  and its addons. Include only the number. ]=]}},           {[=[ Max amperage ]=], {arg="gtamperage", units=units.euAmps, desc = [=[ Maximum EU amperage - for  and its addons. Include only the number. ]=]}},           {[=[ Loss/meter/amp ]=], {arg="gtloss", units=units.euVolts, desc = [=[ Loss/meter/amperage - for  and its addons. Include only the number. ]=]}},           {[=[ Heat limit ]=], {arg="gtheatlimit", units=units.k, desc = [=[ Maximum heat that it can take in Kelvin - for  and its addons. Include only the number. ]=]}},           {[=[ Fluid capacity ]=], {arg="gtfluidcapacity", units=units.litresPerSec, desc = [=[ Maximum liters that it can hold - for  and its addons. Include only the number. ]=]}},           {[=[ Item capacity ]=], {arg="gtitemcapacity", units=units.stacksPerSec, desc = [=[ Maximum stacks of items it can hold - for  and its addons. Include only the number. ]=]}},           {[=[ Routing value ]=], {arg="gtrouting", desc = [=[ Routing value - for  and its addons. ]=]}},           {[=[ Fuel efficiency ]=], {arg="gtefficiency", desc = [=[ Fuel efficiency - for  and its addons. ]=]}}       },        {            {[=[ Charge storage ]=], {arg="rccharge", desc = [=[  energy storage. Include only the number. ]=]}},           {[=[ Energy loss ]=], {arg="rcloss", units=units.perTick, desc = [=[ How much energy is lost per tick - for  and its addons. Include only the number. ]=]}}       },        {            {[=[ Required power ]=], {arg="rocpower", units=units.watts, desc = [=[ Required amount of power - for  and its addons. Include only the number. ]=]}},           {[=[ Required torque ]=], {arg="roctorque", units=units.nm, desc = [=[ Required torque - for  and its addons. Include only the number. ]=]}},           {[=[ Required speed ]=], {arg="rocspeed", units=units.radPerSec, desc = [=[ Required speed - for  and its addons. Include only the number. ]=]}}       },        {            {[=[ Max MJ input ]=], {arg="mjinput", units=units.mjPerTick, desc = [=[ Maximum input of MJ/t. Include only the number. ]=]}},           {[=[ MJ use ]=], {arg="mjuse", units=units.mjPerTick, desc = [=[ MJ consumption in MJ/t. Include only the number. ]=]}},           {[=[ MJ storage ]=], {arg="mjstorage", units=units.mj, desc = [=[ MJ storage in MJ. Include only the number. ]=]}},           {[=[ Max MJ output ]=], {arg="mjoutput", units=units.mjPerTick, desc = [=[ Maximum output of MJ/t. Include only the number. ]=]}},           {[=[ MJ production ]=], {arg="mjproduction", units=units.mjPerTick, desc = [=[ MJ production in MJ/t. Include only the number. ]=]}},           {[=[ MJ traversing ]=], {arg="mjtraversing", units=units.mjPerTick, desc = [=[ Maximum energy traversing - only for pipes. Include only the number. ]=]}}       },        {            {[=[ Max CF input ]=], {arg="cfinput", units=units.cfPerTick, desc = [=[ Maximum input of CF/t. Include only the number. ]=]}},           {[=[ CF use ]=], {arg="cfuse", units=units.cfPerTick, desc = [=[ CF consumption in CF/t. Include only the number. ]=]}},           {[=[ CF storage ]=], {arg="cfstorage", units=units.cf, desc = [=[ CF storage in CF. Include only the number. ]=]}},           {[=[ Max CF output ]=], {arg="cfoutput", units=units.cfPerTick, desc = [=[ Maximum output of CF/t. Include only the number. ]=]}},           {[=[ CF production ]=], {arg="cfproduction", units=units.cfPerTick, desc = [=[ CF production in RF/t. Include only the number. ]=]}},           {[=[ CF traversing ]=], {arg="cftraversing", units=units.cfPerTick, desc = [=[ Maximum energy traversing in CF/t - only for conduits. Include only the number. ]=]}}       },        {            {[=[ Max RF input ]=], {arg="rfinput", units=units.rfPerTick, desc = [=[ Maximum input of RF/t. Include only the number. ]=]}},           {[=[ RF use ]=], {arg="rfuse", units=units.rfPerTick, desc = [=[ RF consumption in RF/t. Include only the number. ]=]}},           {[=[ RF storage ]=], {arg="rfstorage", units=units.rf, desc = [=[ RF storage in RF. Include only the number. ]=]}},           {[=[ Max RF output ]=], {arg="rfoutput", units=units.rfPerTick, desc = [=[ Maximum output of RF/t. Include only the number. ]=]}},           {[=[ RF production ]=], {arg="rfproduction", units=units.rfPerTick, desc = [=[ RF production in RF/t. Include only the number. ]=]}},           {[=[ RF traversing ]=], {arg="rftraversing", units=units.rfPerTick, desc = [=[ Maximum energy traversing in RF/t - only for conduits. Include only the number. ]=]}}       },        {            {[=[ Max Tesla input ]=], {arg="tinput", units=units.tPerTick, desc = [=[ Maximum input of T/t. Include only the number. ]=]}},           {[=[ Tesla use ]=], {arg="tuse", units=units.tPerTick, desc = [=[ Tesla consumption in T/t. Include only the number. ]=]}},           {[=[ Tesla storage ]=], {arg="tstorage", units=units.t, desc = [=[ Tesla storage. Include only the number. ]=]}},           {[=[ Max Tesla output ]=], {arg="toutput", units=units.tPerTick, desc = [=[ Maximum output of T/t. Include only the number. ]=]}},           {[=[ Tesla production ]=], {arg="tproduction", units=units.tPerTick, desc = [=[ Tesla production in T/t. Include only the number. ]=]}},           {[=[ Tesla traversing ]=], {arg="ttraversing", units=units.tPerTick, desc = [=[ Maximum energy traversing in T/t - only for conduits/wires/whatnot. Include only the number. ]=]}}       },        {            {[=[ Steam usage default ]=], {arg="fspsuuse", units=units.suPerUse, desc = [=[ Steam unit consumption in SU/use. Include only the number. ]=]}},           {[=[ Steam usage default ]=], {arg="fspsutick", units=units.suPerTick, desc = [=[ Steam unit consumption in SU/tick. Include only the number. ]=]}},           {[=[ Steam storage default ]=], {arg="fspsteamstorage", units=units.su, desc = [=[ Steam storage in SU. Include only the number. ]=]}}       },        {            {[=[ EMC value ]=], {arg="emc", units=units.emc, desc = [=[ EMC value of the item. Include only the number. ]=]}},           {[=[ EMC storage ]=], {arg="emcstorage", units=units.emc, desc = [=[ How much EMC the item can hold. This is mostly relevant for Equivalent Exchange Klein Stars. Include only the number. ]=]}},           {[=[ EMC creation ]=], {arg="emcproduction", units=units.emcPerSec, desc = [=[ How much EMC the item or block will create per second. Include only the number. ]=]}}       },        {            {[=[ Arcane Energy cost ]=], {arg="aeuse", units=units.aePerUse, desc=[=[ Arcane Energy cost per use. Include only the number. ]=]}},       }    },    {        name="Technical", title = [=[ Technical details ]=], {           {[=[ Registry name ]=], {arg="registryname", desc = [=[ This thing's registry name. This is not necessarily identical to its unlocalized name. ]=]}}, {[=[ Unlocalized name ]=], {arg="unlocalizedname", desc = [=[ This thing's unlocalized name. This is not necessarily identical to its registry name. ]=]}}, {[=[ Ore dictionary name ]=], {arg="oredictname", desc = [=[ The oredictionary name for this item. ]=]}}       },        {            {[=[ First appearance ]=], {arg="firstappearance", desc = [=[ The version string that the item first appeared in. ]=]}},           {[=[ Last appearance ]=], {arg="lastappearance", desc = [=[ The version string that the item last appeared in. ]=]}}       },        {            {[=[ Experience ]=], {arg="exp", desc = [=[ Exp you gain from mining or smelting it. ]=]}},           {[=[ Flow speed ]=], {arg="flowspeed", units=units.metersPerSec, desc = [=[ The flow speed of liquids in m/s. ]=]}}       },        {            {[=[ Player speed ]=], {arg="speed", desc = [=[ The walk speed of the player character when on or in it. ]=]}}       }    } }

-- This next bit adds the PWhatever lines. -- 4 is the Energy Use section. local energyUseSection = p.format[4] local pwhateverfields = {"input", "use", "storage", "output", "production"} local usageCat = "" for i=1,5 do   local subsection = {} for j,name in ipairs(pwhateverfields) do        subsection[#subsection+1] = { { arg=i..name.."title", units=usageCat }, {arg=i..name, units=usageCat} } end energyUseSection[#energyUseSection + 1] = subsection end

energyUseSection[#energyUseSection + 1] = { docOnly = true, desc = [=[ You can also add more input/use/output/storage sections with Ptype and Ptypetitle, where P can be a number between 1 and 5. ]=],  ,    ,    ,    ,    ,    ,    ,    ,    , }

p.examples =

return p