Ported over all the opening directors and improved the director code a bit more. Also implemented content instances for Grid/Uld.

This commit is contained in:
Filip Maj
2017-07-09 18:38:01 -04:00
parent 24c46c0480
commit 69f7fb5e47
18 changed files with 205 additions and 94 deletions

View File

@@ -501,11 +501,11 @@ namespace FFXIVClassic_Map_Server.Actors
}
}
public Director CreateDirector(string path, params object[] args)
public Director CreateDirector(string path, bool hasContentGroup, params object[] args)
{
lock (directorLock)
{
Director director = new Director(directorIdCount, this, path, args);
Director director = new Director(directorIdCount, this, path, hasContentGroup, args);
currentDirectors.Add(director.actorId, director);
directorIdCount++;
return director;

View File

@@ -14,7 +14,6 @@ namespace FFXIVClassic_Map_Server.actors.area
class PrivateAreaContent : PrivateArea
{
private Director currentDirector;
private ContentGroup currentContentGroup;
private bool isContentFinished = false;
public static PrivateAreaContent CreateContentArea(String scriptPath)
@@ -26,8 +25,7 @@ namespace FFXIVClassic_Map_Server.actors.area
: base(parent, parent.actorId, classPath, privateAreaName, privateAreaType, 0, 0, 0)
{
currentDirector = director;
currentContentGroup = Server.GetWorldManager().CreateContentGroup(director);
LuaEngine.GetInstance().CallLuaFunction(contentStarter, this, "onCreate", false, currentContentGroup, currentDirector);
LuaEngine.GetInstance().CallLuaFunction(contentStarter, this, "onCreate", false, currentDirector);
}
public Director GetContentDirector()
@@ -35,11 +33,6 @@ namespace FFXIVClassic_Map_Server.actors.area
return currentDirector;
}
public ContentGroup GetContentGroup()
{
return currentContentGroup;
}
public void ContentFinished()
{
isContentFinished = true;

View File

@@ -114,11 +114,11 @@ namespace FFXIVClassic_Map_Server.actors.area
return mActorList[id];
}
public PrivateAreaContent CreateContentArea(Player starterPlayer, string areaClassPath, string contentScript, string areaName, string directorName)
public PrivateAreaContent CreateContentArea(Player starterPlayer, string areaClassPath, string contentScript, string areaName, string directorName, params object[] args)
{
lock (contentAreasLock)
{
Director director = CreateDirector(directorName);
Director director = CreateDirector(directorName, true, args);
if (director == null)
return null;