mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Database filter criteria
This commit is contained in:
@@ -264,7 +264,7 @@ function CLEANUP:_CleanUpScheduler()
|
|||||||
local CleanUpUnitName = UnitData.CleanUpUnitName
|
local CleanUpUnitName = UnitData.CleanUpUnitName
|
||||||
if CleanUpUnit then
|
if CleanUpUnit then
|
||||||
self:T( { "CleanUp Scheduler", "Checking:", CleanUpUnitName } )
|
self:T( { "CleanUp Scheduler", "Checking:", CleanUpUnitName } )
|
||||||
if _Database:GetStatusGroup( CleanUpGroupName ) ~= "ReSpawn" then
|
if _DATABASE:GetStatusGroup( CleanUpGroupName ) ~= "ReSpawn" then
|
||||||
local CleanUpUnitVec3 = CleanUpUnit:getPoint()
|
local CleanUpUnitVec3 = CleanUpUnit:getPoint()
|
||||||
--self:T( CleanUpUnitVec3 )
|
--self:T( CleanUpUnitVec3 )
|
||||||
local CleanUpUnitVec2 = {}
|
local CleanUpUnitVec2 = {}
|
||||||
|
|||||||
@@ -196,12 +196,12 @@ function CLIENT:GetDCSGroup()
|
|||||||
-- Now we need to resolve the bugs in DCS 1.5 ...
|
-- Now we need to resolve the bugs in DCS 1.5 ...
|
||||||
-- Consult the database for the units of the Client Group. (ClientGroup:getUnits() returns nil)
|
-- Consult the database for the units of the Client Group. (ClientGroup:getUnits() returns nil)
|
||||||
self:T3( "Bug 1.5 logic" )
|
self:T3( "Bug 1.5 logic" )
|
||||||
local ClientUnits = _Database.Groups[self.ClientName].Units
|
local ClientUnits = _DATABASE.Groups[self.ClientName].Units
|
||||||
self:T3( { ClientUnits[1].name, env.getValueDictByKey(ClientUnits[1].name) } )
|
self:T3( { ClientUnits[1].name, env.getValueDictByKey(ClientUnits[1].name) } )
|
||||||
for ClientUnitID, ClientUnitData in pairs( ClientUnits ) do
|
for ClientUnitID, ClientUnitData in pairs( ClientUnits ) do
|
||||||
self:T3( { tonumber(UnitData:getID()), ClientUnitData.unitId } )
|
self:T3( { tonumber(UnitData:getID()), ClientUnitData.unitId } )
|
||||||
if tonumber(UnitData:getID()) == ClientUnitData.unitId then
|
if tonumber(UnitData:getID()) == ClientUnitData.unitId then
|
||||||
local ClientGroupTemplate = _Database.Groups[self.ClientName].Template
|
local ClientGroupTemplate = _DATABASE.Groups[self.ClientName].Template
|
||||||
self.ClientID = ClientGroupTemplate.groupId
|
self.ClientID = ClientGroupTemplate.groupId
|
||||||
self.ClientGroupUnit = UnitData
|
self.ClientGroupUnit = UnitData
|
||||||
self:T3( self.ClientName .. " : group found in bug 1.5 resolvement logic!" )
|
self:T3( self.ClientName .. " : group found in bug 1.5 resolvement logic!" )
|
||||||
|
|||||||
@@ -24,6 +24,30 @@ DATABASE = {
|
|||||||
AlivePlayers = {},
|
AlivePlayers = {},
|
||||||
ClientsByName = {},
|
ClientsByName = {},
|
||||||
ClientsByID = {},
|
ClientsByID = {},
|
||||||
|
Filter = {
|
||||||
|
Coalition = {
|
||||||
|
Red = false,
|
||||||
|
Blue = false,
|
||||||
|
},
|
||||||
|
Category = {
|
||||||
|
Air = false,
|
||||||
|
Plane = false,
|
||||||
|
Helicopter = false,
|
||||||
|
Ground = false,
|
||||||
|
Ship = false,
|
||||||
|
},
|
||||||
|
Group = {
|
||||||
|
Prefix = {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Unit = {
|
||||||
|
Type = {
|
||||||
|
},
|
||||||
|
Prefix = {
|
||||||
|
},
|
||||||
|
Player = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
local _DATABASECoalition =
|
local _DATABASECoalition =
|
||||||
@@ -51,13 +75,60 @@ function DATABASE:New()
|
|||||||
|
|
||||||
-- Inherits from BASE
|
-- Inherits from BASE
|
||||||
local self = BASE:Inherit( self, BASE:New() )
|
local self = BASE:Inherit( self, BASE:New() )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_EVENTDISPATCHER:OnBirth( self._EventBirth, self )
|
_EVENTDISPATCHER:OnBirth( self._EventBirth, self )
|
||||||
_EVENTDISPATCHER:OnDead( self._EventOnDeadOrCrash, self )
|
_EVENTDISPATCHER:OnDead( self._EventOnDeadOrCrash, self )
|
||||||
_EVENTDISPATCHER:OnCrash( self._EventOnDeadOrCrash, self )
|
_EVENTDISPATCHER:OnCrash( self._EventOnDeadOrCrash, self )
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function DATABASE:Red()
|
||||||
|
self.Filter.Coalition.Red = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function DATABASE:Blue()
|
||||||
|
self.Filter.Coalition.Blue = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function DATABASE:GroupPrefixes( Prefixes )
|
||||||
|
for PrefixID, PrefixName in pairs( Prefixes ) do
|
||||||
|
self.Filter.Group.Prefix[#self.Filter.Group.Prefix+1] = PrefixName
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function DATABASE:Air()
|
||||||
|
self.Filter.Air = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function DATABASE:AirPlane()
|
||||||
|
self.Filter.Plane = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function DATABASE:Helicopter()
|
||||||
|
self.Filter.Helicopter = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function DATABASE:Ground()
|
||||||
|
self.Filter.Ground = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function DATABASE:Ship()
|
||||||
|
self.Filter.Ship = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function DATABASE:UnitPrefixes( Prefixes )
|
||||||
|
for PrefixID, PrefixName in pairs( Prefixes ) do
|
||||||
|
self.Filter.Group.Prefix[#self.Filter.Unit.Prefix+1] = PrefixName
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function DATABASE:Filter()
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
function DATABASE:ScanEnvironment()
|
function DATABASE:ScanEnvironment()
|
||||||
|
|
||||||
self.Navpoints = {}
|
self.Navpoints = {}
|
||||||
|
|||||||
@@ -999,7 +999,7 @@ end
|
|||||||
function GROUP:GetTaskMission()
|
function GROUP:GetTaskMission()
|
||||||
self:F( self.GroupName )
|
self:F( self.GroupName )
|
||||||
|
|
||||||
return routines.utils.deepCopy( _Database.Groups[self.GroupName].Template )
|
return routines.utils.deepCopy( _DATABASE.Groups[self.GroupName].Template )
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Return the mission route of the group.
|
--- Return the mission route of the group.
|
||||||
@@ -1008,7 +1008,7 @@ end
|
|||||||
function GROUP:GetTaskRoute()
|
function GROUP:GetTaskRoute()
|
||||||
self:F( self.GroupName )
|
self:F( self.GroupName )
|
||||||
|
|
||||||
return routines.utils.deepCopy( _Database.Groups[self.GroupName].Template.route.points )
|
return routines.utils.deepCopy( _DATABASE.Groups[self.GroupName].Template.route.points )
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Return the route of a group by using the @{Database#DATABASE} class.
|
--- Return the route of a group by using the @{Database#DATABASE} class.
|
||||||
@@ -1032,7 +1032,7 @@ function GROUP:CopyRoute( Begin, End, Randomize, Radius )
|
|||||||
|
|
||||||
self:T( { GroupName } )
|
self:T( { GroupName } )
|
||||||
|
|
||||||
local Template = _Database.Groups[GroupName].Template
|
local Template = _DATABASE.Groups[GroupName].Template
|
||||||
|
|
||||||
if Template then
|
if Template then
|
||||||
if not Begin then
|
if not Begin then
|
||||||
|
|||||||
@@ -474,7 +474,7 @@ function MISSIONSCHEDULER.Scheduler()
|
|||||||
if Mission.GoalFunction ~= nil then
|
if Mission.GoalFunction ~= nil then
|
||||||
Mission.GoalFunction( Mission, Client )
|
Mission.GoalFunction( Mission, Client )
|
||||||
end
|
end
|
||||||
_Database:_AddMissionTaskScore( Client:GetClientGroupDCSUnit(), Mission.Name, 25 )
|
_DATABASE:_AddMissionTaskScore( Client:GetClientGroupDCSUnit(), Mission.Name, 25 )
|
||||||
|
|
||||||
-- if not Mission:IsCompleted() then
|
-- if not Mission:IsCompleted() then
|
||||||
-- end
|
-- end
|
||||||
@@ -497,7 +497,7 @@ function MISSIONSCHEDULER.Scheduler()
|
|||||||
|
|
||||||
if MissionComplete then
|
if MissionComplete then
|
||||||
Mission:Completed()
|
Mission:Completed()
|
||||||
_Database:_AddMissionScore( Mission.Name, 100 )
|
_DATABASE:_AddMissionScore( Mission.Name, 100 )
|
||||||
else
|
else
|
||||||
if TaskComplete then
|
if TaskComplete then
|
||||||
-- Reset for new tasking of active client
|
-- Reset for new tasking of active client
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Include.File( "Event" )
|
|||||||
|
|
||||||
|
|
||||||
--- Declare the main database object, which is used internally by the MOOSE classes.
|
--- Declare the main database object, which is used internally by the MOOSE classes.
|
||||||
_Database = DATABASE:New():ScanEnvironment() -- Database#DATABASE
|
_DATABASE = DATABASE:New():ScanEnvironment() -- Database#DATABASE
|
||||||
|
|
||||||
--- Declare the event dispatcher based on the EVENT class
|
--- Declare the event dispatcher based on the EVENT class
|
||||||
_EVENTDISPATCHER = EVENT:New() -- #EVENT
|
_EVENTDISPATCHER = EVENT:New() -- #EVENT
|
||||||
@@ -1696,7 +1696,7 @@ function routines.getGroupRoute(groupIdent, task) -- same as getGroupPoints bu
|
|||||||
-- refactor to search by groupId and allow groupId and groupName as inputs
|
-- refactor to search by groupId and allow groupId and groupName as inputs
|
||||||
local gpId = groupIdent
|
local gpId = groupIdent
|
||||||
if type(groupIdent) == 'string' and not tonumber(groupIdent) then
|
if type(groupIdent) == 'string' and not tonumber(groupIdent) then
|
||||||
gpId = _Database.Groups[groupIdent].groupId
|
gpId = _DATABASE.Groups[groupIdent].groupId
|
||||||
end
|
end
|
||||||
|
|
||||||
for coa_name, coa_data in pairs(env.mission.coalition) do
|
for coa_name, coa_data in pairs(env.mission.coalition) do
|
||||||
@@ -1746,6 +1746,7 @@ function routines.getGroupRoute(groupIdent, task) -- same as getGroupPoints bu
|
|||||||
end --if coa_name == 'red' or coa_name == 'blue' and type(coa_data) == 'table' then
|
end --if coa_name == 'red' or coa_name == 'blue' and type(coa_data) == 'table' then
|
||||||
end --for coa_name, coa_data in pairs(mission.coalition) do
|
end --for coa_name, coa_data in pairs(mission.coalition) do
|
||||||
end
|
end
|
||||||
|
|
||||||
routines.ground.patrolRoute = function(vars)
|
routines.ground.patrolRoute = function(vars)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ function SEAD:EventShot( Event )
|
|||||||
local _targetMimgroup = Unit.getGroup(Weapon.getTarget(SEADWeapon))
|
local _targetMimgroup = Unit.getGroup(Weapon.getTarget(SEADWeapon))
|
||||||
local _targetMimgroupName = _targetMimgroup:getName()
|
local _targetMimgroupName = _targetMimgroup:getName()
|
||||||
local _targetMimcont= _targetMimgroup:getController()
|
local _targetMimcont= _targetMimgroup:getController()
|
||||||
local _targetskill = _Database.Units[_targetMimname].Template.skill
|
local _targetskill = _DATABASE.Units[_targetMimname].Template.skill
|
||||||
self:T( self.SEADGroupPrefixes )
|
self:T( self.SEADGroupPrefixes )
|
||||||
self:T( _targetMimgroupName )
|
self:T( _targetMimgroupName )
|
||||||
local SEADGroupFound = false
|
local SEADGroupFound = false
|
||||||
|
|||||||
@@ -384,7 +384,7 @@ function SPAWN:Array( SpawnAngle, SpawnWidth, SpawnDeltaX, SpawnDeltaY )
|
|||||||
_EVENTDISPATCHER:OnEngineShutDownForTemplate( self.SpawnGroups[SpawnGroupID].SpawnTemplate, self._OnEngineShutDown, self )
|
_EVENTDISPATCHER:OnEngineShutDownForTemplate( self.SpawnGroups[SpawnGroupID].SpawnTemplate, self._OnEngineShutDown, self )
|
||||||
end
|
end
|
||||||
|
|
||||||
self.SpawnGroups[SpawnGroupID].Group = _Database:Spawn( self.SpawnGroups[SpawnGroupID].SpawnTemplate )
|
self.SpawnGroups[SpawnGroupID].Group = _DATABASE:Spawn( self.SpawnGroups[SpawnGroupID].SpawnTemplate )
|
||||||
|
|
||||||
SpawnX = SpawnXIndex * SpawnDeltaX
|
SpawnX = SpawnXIndex * SpawnDeltaX
|
||||||
SpawnY = SpawnYIndex * SpawnDeltaY
|
SpawnY = SpawnYIndex * SpawnDeltaY
|
||||||
@@ -456,7 +456,7 @@ function SPAWN:SpawnWithIndex( SpawnIndex )
|
|||||||
_EVENTDISPATCHER:OnEngineShutDownForTemplate( self.SpawnGroups[self.SpawnIndex].SpawnTemplate, self._OnEngineShutDown, self )
|
_EVENTDISPATCHER:OnEngineShutDownForTemplate( self.SpawnGroups[self.SpawnIndex].SpawnTemplate, self._OnEngineShutDown, self )
|
||||||
end
|
end
|
||||||
|
|
||||||
self.SpawnGroups[self.SpawnIndex].Group = _Database:Spawn( self.SpawnGroups[self.SpawnIndex].SpawnTemplate )
|
self.SpawnGroups[self.SpawnIndex].Group = _DATABASE:Spawn( self.SpawnGroups[self.SpawnIndex].SpawnTemplate )
|
||||||
|
|
||||||
-- If there is a SpawnFunction hook defined, call it.
|
-- If there is a SpawnFunction hook defined, call it.
|
||||||
if self.SpawnFunctionHook then
|
if self.SpawnFunctionHook then
|
||||||
@@ -464,7 +464,7 @@ function SPAWN:SpawnWithIndex( SpawnIndex )
|
|||||||
end
|
end
|
||||||
-- TODO: Need to fix this by putting an "R" in the name of the group when the group repeats.
|
-- TODO: Need to fix this by putting an "R" in the name of the group when the group repeats.
|
||||||
--if self.SpawnRepeat then
|
--if self.SpawnRepeat then
|
||||||
-- _Database:SetStatusGroup( SpawnTemplate.name, "ReSpawn" )
|
-- _DATABASE:SetStatusGroup( SpawnTemplate.name, "ReSpawn" )
|
||||||
--end
|
--end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -968,7 +968,7 @@ function SPAWN:_GetTemplate( SpawnTemplatePrefix )
|
|||||||
|
|
||||||
local SpawnTemplate = nil
|
local SpawnTemplate = nil
|
||||||
|
|
||||||
SpawnTemplate = routines.utils.deepCopy( _Database.Groups[SpawnTemplatePrefix].Template )
|
SpawnTemplate = routines.utils.deepCopy( _DATABASE.Groups[SpawnTemplatePrefix].Template )
|
||||||
|
|
||||||
if SpawnTemplate == nil then
|
if SpawnTemplate == nil then
|
||||||
error( 'No Template returned for SpawnTemplatePrefix = ' .. SpawnTemplatePrefix )
|
error( 'No Template returned for SpawnTemplatePrefix = ' .. SpawnTemplatePrefix )
|
||||||
@@ -1125,7 +1125,7 @@ function SPAWN:_GetSpawnIndex( SpawnIndex )
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- TODO Need to delete this... _Database does this now ...
|
-- TODO Need to delete this... _DATABASE does this now ...
|
||||||
function SPAWN:_OnBirth( event )
|
function SPAWN:_OnBirth( event )
|
||||||
|
|
||||||
if timer.getTime0() < timer.getAbsTime() then -- dont need to add units spawned in at the start of the mission if mist is loaded in init line
|
if timer.getTime0() < timer.getAbsTime() then -- dont need to add units spawned in at the start of the mission if mist is loaded in init line
|
||||||
@@ -1143,7 +1143,7 @@ function SPAWN:_OnBirth( event )
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- Obscolete
|
--- Obscolete
|
||||||
-- @todo Need to delete this... _Database does this now ...
|
-- @todo Need to delete this... _DATABASE does this now ...
|
||||||
function SPAWN:_OnDeadOrCrash( event )
|
function SPAWN:_OnDeadOrCrash( event )
|
||||||
self:F( self.SpawnTemplatePrefix, event )
|
self:F( self.SpawnTemplatePrefix, event )
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user