/// <summary>
    /// Tries to spawn at the specified position, does not spawn if position is not valid (impassable)
    /// </summary>
    private void TrySpawn()
    {
        Vector3Int position = cursorObject.transform.position.RoundToInt();

        position.z = 0;
        if (MatrixManager.IsPassableAt(position, true))
        {
            if (CustomNetworkManager.IsServer)
            {
                if (clothingData != null)
                {
                    ClothFactory.CreateCloth(clothingData, position);
                }
                else
                {
                    PoolManager.PoolNetworkInstantiate(prefab, position);
                }
            }
            else
            {
                if (clothingData != null)
                {
                    DevSpawnMessage.Send(clothingData.name, true, (Vector3)position);
                }
                else
                {
                    DevSpawnMessage.Send(prefab.name, false, (Vector3)position);
                }
            }
        }
    }
Exemplo n.º 2
0
    /// <summary>
    /// Tries to spawn at the specified position, does not spawn if position is not valid (impassable)
    /// </summary>
    private void TrySpawn()
    {
        Vector3Int position = cursorObject.transform.position.RoundToInt();

        position.z = 0;

        if (!MatrixManager.IsPassableAt(position, true) && !MatrixManager.IsTableAt(position, true))
        {
            return;
        }

        if (CustomNetworkManager.IsServer)
        {
            if (clothingData != null)
            {
                Spawn.ServerCloth(clothingData, position);
            }
            else
            {
                Spawn.ServerPrefab(prefab, position);
            }
        }
        else
        {
            if (clothingData != null)
            {
                DevSpawnMessage.Send(clothingData.name, true, (Vector3)position);
            }
            else
            {
                DevSpawnMessage.Send(prefab.name, false, (Vector3)position);
            }
        }
    }
Exemplo n.º 3
0
    /// <summary>
    /// Ask the server to spawn a specific prefab
    /// </summary>
    /// <param name="name">name of the prefab to instantiate, or the hier of the unicloth to instantiate (network synced)</param>
    /// <param name="isUniCloth">true iff name is a hier (for a unicloth), false if name is a prefab</param>
    /// <param name="worldPosition">world position to spawn it at</param>
    /// <returns></returns>
    public static void Send(string name, Vector2 worldPosition)
    {
        DevSpawnMessage msg = new DevSpawnMessage
        {
            Name          = name,
            WorldPosition = worldPosition
        };

        msg.Send();
    }
Exemplo n.º 4
0
    /// <summary>
    /// Ask the server to spawn a specific prefab
    /// </summary>
    /// <param name="name">name of the prefab to instantiate, or the hier of the unicloth to instantiate (network synced)</param>
    /// <param name="isUniCloth">true iff name is a hier (for a unicloth), false if name is a prefab</param>
    /// <param name="worldPosition">world position to spawn it at</param>
    /// <returns></returns>
    public static void Send(string name, bool isUniCloth, Vector2 worldPosition)
    {
        DevSpawnMessage msg = new DevSpawnMessage
        {
            Name          = name,
            IsUniCloth    = isUniCloth,
            WorldPosition = worldPosition
        };

        msg.Send();
    }
Exemplo n.º 5
0
    /// <summary>
    /// Ask the server to spawn a specific prefab
    /// </summary>
    /// <param name="name">name of the prefab to instantiate, or the hier of the unicloth to instantiate (network synced)</param>
    /// <param name="isUniCloth">true iff name is a hier (for a unicloth), false if name is a prefab</param>
    /// <param name="worldPosition">world position to spawn it at</param>
    /// <returns></returns>
    public static void Send(string name, Vector2 worldPosition, string adminId, string adminToken)
    {
        DevSpawnMessage msg = new DevSpawnMessage
        {
            Name          = name,
            WorldPosition = worldPosition,
            AdminId       = adminId,
            AdminToken    = adminToken
        };

        msg.Send();
    }
Exemplo n.º 6
0
    /// <summary>
    /// Tries to spawn at the specified position. Lets you spawn anywhere, even impassable places. Go hog wild!
    /// </summary>
    private void TrySpawn()
    {
        Vector3Int position = cursorObject.transform.position.RoundToInt();

        position.z = 0;

        if (CustomNetworkManager.IsServer)
        {
            Spawn.ServerPrefab(prefab, position);
        }
        else
        {
            DevSpawnMessage.Send(prefab.name, (Vector3)position);
        }
    }
Exemplo n.º 7
0
    /// <summary>
    /// Tries to spawn at the specified position. Lets you spawn anywhere, even impassable places. Go hog wild!
    /// </summary>
    private void TrySpawn()
    {
        Vector3Int position = cursorObject.transform.position.RoundToInt();

        position.z = 0;

        if (CustomNetworkManager.IsServer)
        {
            Spawn.ServerPrefab(prefab, position);
        }
        else
        {
            DevSpawnMessage.Send(prefab.name, (Vector3)position, ServerData.UserID, PlayerList.Instance.AdminToken);
        }
    }
    /// <summary>
    /// Tries to spawn at the specified position. Lets you spawn anywhere, even impassable places. Go hog wild!
    /// </summary>
    private void TrySpawn()
    {
        Vector3Int position = cursorObject.transform.position.RoundToInt();

        if (CustomNetworkManager.IsServer)
        {
            Spawn.ServerPrefab(prefab, position);
            UIManager.Instance.adminChatWindows.adminToAdminChat.ServerAddChatRecord(
                $"{PlayerManager.LocalPlayer.Player().Username} spawned a {prefab.name} at {position}", ServerData.UserID);
        }
        else
        {
            DevSpawnMessage.Send(prefab, (Vector3)position, ServerData.UserID, PlayerList.Instance.AdminToken);
        }
    }
    /// <summary>
    /// Tries to spawn at the specified position. Lets you spawn anywhere, even impassable places. Go hog wild!
    /// </summary>
    private void TrySpawn()
    {
        Vector3Int position = cursorObject.transform.position.RoundToInt();

        if (CustomNetworkManager.IsServer)
        {
            Spawn.ServerPrefab(prefab, position);
            var player = PlayerManager.LocalPlayer.Player();
            UIManager.Instance.adminChatWindows.adminLogWindow.ServerAddChatRecord(
                $"{player.Username} spawned a {prefab.name} at {position}", player.UserId);
        }
        else
        {
            DevSpawnMessage.Send(prefab, (Vector3)position);
        }
    }
Exemplo n.º 10
0
 /// <summary>
 /// Ask the server to spawn a specific prefab
 /// </summary>
 /// <param name="prefab">prefab to instantiate, must be networked (have networkidentity)</param>
 /// <param name="worldPosition">world position to spawn it at</param>
 /// <param name="adminId">user id of the admin trying to perform this action</param>
 /// <param name="adminToken">token of the admin trying to perform this action</param>
 /// <returns></returns>
 public static void Send(GameObject prefab, Vector2 worldPosition, string adminId, string adminToken)
 {
     if (prefab.TryGetComponent <NetworkIdentity>(out var networkIdentity))
     {
         DevSpawnMessage msg = new DevSpawnMessage
         {
             PrefabAssetID = networkIdentity.assetId,
             WorldPosition = worldPosition,
             AdminId       = adminId,
             AdminToken    = adminToken
         };
         msg.Send();
     }
     else
     {
         Logger.LogWarningFormat("Prefab {0} which you are attempting to spawn has no NetworkIdentity, thus cannot" +
                                 " be spawned.", Category.Admin, prefab);
     }
 }