mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
# Conflicts: # Moose Development/Moose/AI/AI_A2A_Dispatcher.lua # Moose Development/Moose/AI/AI_A2G_Dispatcher.lua # Moose Development/Moose/AI/AI_CAP.lua # Moose Development/Moose/AI/AI_CAS.lua # Moose Development/Moose/AI/AI_Patrol.lua # Moose Development/Moose/Core/Base.lua # Moose Development/Moose/Core/Beacon.lua # Moose Development/Moose/Core/Database.lua # Moose Development/Moose/Core/Fsm.lua # Moose Development/Moose/Core/MarkerOps_Base.lua # Moose Development/Moose/Core/Menu.lua # Moose Development/Moose/Core/Message.lua # Moose Development/Moose/Core/Point.lua # Moose Development/Moose/Core/ScheduleDispatcher.lua # Moose Development/Moose/Core/Scheduler.lua # Moose Development/Moose/Core/Set.lua # Moose Development/Moose/Core/Spawn.lua # Moose Development/Moose/Core/Zone.lua # Moose Development/Moose/DCS.lua # Moose Development/Moose/Functional/Detection.lua # Moose Development/Moose/Functional/Mantis.lua # Moose Development/Moose/Functional/Range.lua # Moose Development/Moose/Functional/Scoring.lua # Moose Development/Moose/Functional/Sead.lua # Moose Development/Moose/Modules.lua # Moose Development/Moose/Ops/ATIS.lua # Moose Development/Moose/Ops/Airboss.lua # Moose Development/Moose/Sound/UserSound.lua # Moose Development/Moose/Utilities/Enums.lua # Moose Development/Moose/Utilities/FiFo.lua # Moose Development/Moose/Utilities/Profiler.lua # Moose Development/Moose/Utilities/Routines.lua # Moose Development/Moose/Utilities/STTS.lua # Moose Development/Moose/Utilities/Utils.lua # Moose Development/Moose/Wrapper/Airbase.lua # Moose Development/Moose/Wrapper/Controllable.lua # Moose Development/Moose/Wrapper/Group.lua # Moose Development/Moose/Wrapper/Marker.lua # Moose Development/Moose/Wrapper/Positionable.lua # Moose Development/Moose/Wrapper/Unit.lua # Moose Setup/Moose.files
105 lines
2.8 KiB
Lua
105 lines
2.8 KiB
Lua
--- **Core** - Provides a handy means to create messages and reports.
|
|
--
|
|
-- ===
|
|
--
|
|
-- ## Features:
|
|
--
|
|
-- * Create text blocks that are formatted.
|
|
-- * Create automatic indents.
|
|
-- * Variate the delimiters between reporting lines.
|
|
--
|
|
-- ===
|
|
--
|
|
-- ### Authors: FlightControl : Design & Programming
|
|
--
|
|
-- @module Core.Report
|
|
-- @image Core_Report.JPG
|
|
|
|
--- @type REPORT
|
|
-- @extends Core.Base#BASE
|
|
|
|
--- Provides a handy means to create messages and reports.
|
|
-- @field #REPORT
|
|
REPORT = {
|
|
ClassName = "REPORT",
|
|
Title = "",
|
|
}
|
|
|
|
--- Create a new REPORT.
|
|
-- @param #REPORT self
|
|
-- @param #string Title
|
|
-- @return #REPORT
|
|
function REPORT:New( Title )
|
|
|
|
local self = BASE:Inherit( self, BASE:New() ) -- #REPORT
|
|
|
|
self.Report = {}
|
|
|
|
self:SetTitle( Title or "" )
|
|
self:SetIndent( 3 )
|
|
|
|
return self
|
|
end
|
|
|
|
--- Has the REPORT Text?
|
|
-- @param #REPORT self
|
|
-- @return #boolean
|
|
function REPORT:HasText() -- R2.1
|
|
|
|
return #self.Report > 0
|
|
end
|
|
|
|
--- Set indent of a REPORT.
|
|
-- @param #REPORT self
|
|
-- @param #number Indent
|
|
-- @return #REPORT
|
|
function REPORT:SetIndent( Indent ) -- R2.1
|
|
self.Indent = Indent
|
|
return self
|
|
end
|
|
|
|
--- Add a new line to a REPORT.
|
|
-- @param #REPORT self
|
|
-- @param #string Text
|
|
-- @return #REPORT
|
|
function REPORT:Add( Text )
|
|
self.Report[#self.Report + 1] = Text
|
|
return self
|
|
end
|
|
|
|
--- Add a new line to a REPORT, but indented. A separator character can be specified to separate the reported lines visually.
|
|
-- @param #REPORT self
|
|
-- @param #string Text The report text.
|
|
-- @param #string Separator (optional) The start of each report line can begin with an optional separator character. This can be a "-", or "#", or "*". You're free to choose what you find the best.
|
|
-- @return #REPORT
|
|
function REPORT:AddIndent( Text, Separator )
|
|
self.Report[#self.Report + 1] = ((Separator and Separator .. string.rep( " ", self.Indent - 1 )) or string.rep( " ", self.Indent )) .. Text:gsub( "\n", "\n" .. string.rep( " ", self.Indent ) )
|
|
return self
|
|
end
|
|
|
|
--- Produces the text of the report, taking into account an optional delimiter, which is \n by default.
|
|
-- @param #REPORT self
|
|
-- @param #string Delimiter (optional) A delimiter text.
|
|
-- @return #string The report text.
|
|
function REPORT:Text( Delimiter )
|
|
Delimiter = Delimiter or "\n"
|
|
local ReportText = (self.Title ~= "" and self.Title .. Delimiter or self.Title) .. table.concat( self.Report, Delimiter ) or ""
|
|
return ReportText
|
|
end
|
|
|
|
--- Sets the title of the report.
|
|
-- @param #REPORT self
|
|
-- @param #string Title The title of the report.
|
|
-- @return #REPORT
|
|
function REPORT:SetTitle( Title )
|
|
self.Title = Title
|
|
return self
|
|
end
|
|
|
|
--- Gets the amount of report items contained in the report.
|
|
-- @param #REPORT self
|
|
-- @return #number Returns the number of report items contained in the report. 0 is returned if no report items are contained in the report. The title is not counted for.
|
|
function REPORT:GetCount()
|
|
return #self.Report
|
|
end
|