Example #1
0
    public static void MuscleConnectionRemoved(MuscleConnection mus)
    {
        MuscleConnectionFile file;
        Controller           start = mus.GetStart().GetComponent <Controller>();
        Muscle end = mus.GetEnd().GetComponent <Muscle>();

        MuscleType type;

        if (end is SwingMuscle)
        {
            //What type?
            SwingMuscle swing = end as SwingMuscle;
            switch (swing.moveDirection)
            {
            case SwingMuscle.SwingFunction.Backward: {
                type = MuscleType.Backward;
                break;
            }

            case SwingMuscle.SwingFunction.Forward: {
                type = MuscleType.Forward;
                break;
            }

            default: {
                //So we have something
                type = MuscleType.Forward;
                break;
            }
            }
        }
        else
        {
            //Stance muscle
            type = MuscleType.Stance;
        }

        file = new MuscleConnectionFile(end.table, type, start.GetTableNum(), start.GetSeatNum());

        int endpoint = muscleConnectionsToReset.Count;          //Avoid changing list while iterating.

        for (int i = endpoint - 1; i >= 0; i--)
        {
            if (muscleConnectionsToReset[i].Equals(mus.gameObject))
            {
                muscleConnectionsToReset.Remove(mus.gameObject);
            }
        }

        endpoint = spawnedMuscleConnections.Count;
        for (int i = endpoint - 1; i >= 0; i--)
        {
            if (spawnedMuscleConnections[i].Equals(file))
            {
                spawnedMuscleConnections.Remove(file);
            }
        }
    }
Example #2
0
    //Helper method to spawn muscle connections based on given connection file
    private static void SpawnConnection(MuscleConnectionFile file)
    {
        //Find start and end gameObjects
        GameObject start = null, end = null;

        foreach (NeuronDesignation nd in loadedPlayers)
        {
            //Find start
            if (nd.isGivenNeuron(file.GetStart()[0], file.GetStart()[1]))
            {
                start = nd.GetObject();
            }
        }
        foreach (Muscle m in muscles)
        {
            //Find end
            MuscleType type;
            if (m is SwingMuscle)
            {
                //What type?
                SwingMuscle swing = m as SwingMuscle;
                switch (swing.moveDirection)
                {
                case SwingMuscle.SwingFunction.Backward: {
                    type = MuscleType.Backward;
                    break;
                }

                case SwingMuscle.SwingFunction.Forward: {
                    type = MuscleType.Forward;
                    break;
                }

                default: {
                    //So we have something
                    type = MuscleType.Forward;
                    break;
                }
                }
            }
            else
            {
                //Stance muscle
                type = MuscleType.Stance;
            }

            if (m.table.Equals(file.GetEnd().table) && type.Equals(file.GetEnd().type))
            {
                end = m.gameObject;
            }
        }
        if (start && end)
        {
            GameObject player = NetworkManager.singleton.client.connection.playerControllers[0].gameObject;
            player.GetComponent <ConnectionManager>().MuscleConnection(start, end);
        }
    }
Example #3
0
    public static void MuscleConnectionMade(MuscleConnection mus)
    {
        MuscleConnectionFile file;
        Controller           start = mus.GetStart().GetComponent <Controller>();
        Muscle end = mus.GetEnd().GetComponent <Muscle>();

        MuscleType type;

        if (end is SwingMuscle)
        {
            //What type?
            SwingMuscle swing = end as SwingMuscle;
            switch (swing.moveDirection)
            {
            case SwingMuscle.SwingFunction.Backward: {
                type = MuscleType.Backward;
                break;
            }

            case SwingMuscle.SwingFunction.Forward: {
                type = MuscleType.Forward;
                break;
            }

            default: {
                //So we have something
                type = MuscleType.Forward;
                break;
            }
            }
        }
        else
        {
            //Stance muscle
            type = MuscleType.Stance;
        }
        file = new MuscleConnectionFile(end.table, type, start.GetTableNum(), start.GetSeatNum());
        muscleConnectionsToReset.Add(mus.gameObject);
        if (!spawnedMuscleConnections.Contains(file))
        {
            spawnedMuscleConnections.Add(file);
        }
    }