2019-06-19 01:10:15 -04:00
/ *
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Copyright ( C ) 2015 - 2019 Project Meteor Dev Team
This file is part of Project Meteor Server .
Project Meteor Server is free software : you can redistribute it and / or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation , either version 3 of the License , or
( at your option ) any later version .
Project Meteor Server is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU Affero General Public License for more details .
You should have received a copy of the GNU Affero General Public License
along with Project Meteor Server . If not , see < https : www . gnu . org / licenses / > .
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
* /
using Meteor.Map.actors.director ;
using Meteor.Map.Actors ;
using Meteor.Map.lua ;
using System ;
namespace Meteor.Map.actors.area
{
class PrivateAreaContent : PrivateArea
{
private Director currentDirector ;
private bool isContentFinished = false ;
public static PrivateAreaContent CreateContentArea ( String scriptPath )
{
return null ;
}
2022-02-05 14:05:32 -05:00
public PrivateAreaContent ( Zone parent , string classPath , string privateAreaName , int privateAreaType , Director director , Player contentStarter ) //TODO: Make it a list
2022-02-05 12:15:22 -05:00
: base ( parent , classPath , privateAreaName , privateAreaType , 0 , 0 , 0 )
2019-06-19 01:10:15 -04:00
{
currentDirector = director ;
LuaEngine . GetInstance ( ) . CallLuaFunction ( contentStarter , this , "onCreate" , false , currentDirector ) ;
}
public Director GetContentDirector ( )
{
return currentDirector ;
}
public void ContentFinished ( )
{
isContentFinished = true ;
}
public void CheckDestroy ( )
{
lock ( mActorList )
{
if ( isContentFinished )
{
bool noPlayersLeft = true ;
foreach ( Actor a in mActorList . Values )
{
if ( a is Player )
noPlayersLeft = false ;
}
if ( noPlayersLeft )
GetParentZone ( ) . DeleteContentArea ( this ) ;
}
}
}
}
}