Upload from upload_mods.ps1
This commit is contained in:
88
Scripts/GameEvent/ActionTeleportToSpecialRebirth.cs
Normal file
88
Scripts/GameEvent/ActionTeleportToSpecialRebirth.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
namespace GameEvent.SequenceActions
|
||||
{
|
||||
public class ActionTeleportToSpecialRebirth : ActionBaseClientAction
|
||||
{
|
||||
public override void OnClientPerform(Entity target)
|
||||
{
|
||||
//Log.Out("ActionTeleportToSpecialRebirth-OnClientPerform START");
|
||||
EntityPlayer entityPlayer = target as EntityPlayer;
|
||||
if (entityPlayer != null)
|
||||
{
|
||||
World world = GameManager.Instance.World;
|
||||
Vector3 vector = Vector3.zero;
|
||||
switch (this.pointType)
|
||||
{
|
||||
case ActionTeleportToSpecialRebirth.SpecialPointTypes.Bedroll:
|
||||
if (entityPlayer.SpawnPoints.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
vector = entityPlayer.SpawnPoints[0];
|
||||
break;
|
||||
case ActionTeleportToSpecialRebirth.SpecialPointTypes.Landclaim:
|
||||
{
|
||||
PersistentPlayerData playerDataFromEntityID = GameManager.Instance.persistentPlayers.GetPlayerDataFromEntityID(target.entityId);
|
||||
if (playerDataFromEntityID.LPBlocks == null || playerDataFromEntityID.LPBlocks.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
vector = playerDataFromEntityID.LPBlocks[0];
|
||||
break;
|
||||
}
|
||||
case ActionTeleportToSpecialRebirth.SpecialPointTypes.Backpack:
|
||||
//Log.Out("ActionTeleportToSpecialRebirth-OnClientPerform BACKPACK 0");
|
||||
Vector3i lastDroppedBackpackPosition = entityPlayer.GetLastDroppedBackpackPosition();
|
||||
if (lastDroppedBackpackPosition == Vector3i.zero)
|
||||
{
|
||||
//Log.Out("ActionTeleportToSpecialRebirth-OnClientPerform BACKPACK 1");
|
||||
return;
|
||||
}
|
||||
vector = lastDroppedBackpackPosition;
|
||||
|
||||
//Log.Out("ActionTeleportToSpecialRebirth-OnClientPerform BACKPACK 2, vector: " + vector);
|
||||
GameManager.Instance.StartCoroutine(RebirthUtilities.GetBackPackContent(1.5f, (EntityPlayerLocal)target, vector));
|
||||
//Log.Out("ActionTeleportToSpecialRebirth-OnClientPerform BACKPACK 3");
|
||||
|
||||
break;
|
||||
}
|
||||
if (vector.y > 0f)
|
||||
{
|
||||
//Log.Out("ActionTeleportToSpecialRebirth-OnClientPerform 1");
|
||||
vector += Vector3.up * 2f;
|
||||
if (entityPlayer.isEntityRemote)
|
||||
{
|
||||
SingletonMonoBehaviour<ConnectionManager>.Instance.Clients.ForEntityId(entityPlayer.entityId).SendPackage(NetPackageManager.GetPackage<NetPackageTeleportPlayer>().Setup(vector, null, false));
|
||||
return;
|
||||
}
|
||||
((EntityPlayerLocal)entityPlayer).PlayerUI.windowManager.CloseAllOpenWindows(null, false);
|
||||
((EntityPlayerLocal)entityPlayer).TeleportToPosition(vector, false, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void ParseProperties(DynamicProperties properties)
|
||||
{
|
||||
base.ParseProperties(properties);
|
||||
properties.ParseEnum<ActionTeleportToSpecialRebirth.SpecialPointTypes>(ActionTeleportToSpecialRebirth.PropSpecialType, ref this.pointType);
|
||||
}
|
||||
|
||||
public override BaseAction CloneChildSettings()
|
||||
{
|
||||
return new ActionTeleportToSpecialRebirth
|
||||
{
|
||||
targetGroup = this.targetGroup,
|
||||
pointType = this.pointType
|
||||
};
|
||||
}
|
||||
|
||||
protected ActionTeleportToSpecialRebirth.SpecialPointTypes pointType;
|
||||
protected static string PropSpecialType = "special_type";
|
||||
|
||||
protected enum SpecialPointTypes
|
||||
{
|
||||
Bedroll,
|
||||
Landclaim,
|
||||
Backpack
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user