Example #1
0
        public void onNew()
        {
            // Do nothing if we already reached the max number of chars
            if (players.Count >= 5)
            {
                return;
            }

            // If a character has been selected already, make them sit the f**k down
            if (currentPlayer != null)
            {
                currentPlayer.setAnimationState(States.SIT);
            }

            // Bring up the new char panel
            newCharPanel.SetActive(true);

            // Generate a default player
            CharModel charModel = new CharModel();

            charModel.rig   = RigType.CHARSELECT;
            charModel.state = States.HOVERING;
            RosePlayer player = new RosePlayer(charModel);


            // Put new player in front of the new player camera and facing it
            Transform newCharCam = GameObject.Find("NewCharCam").transform;

            player.player.transform.position = new Vector3(0.0f, -1.2f, 3.0f);
            player.player.transform.Rotate(new Vector3(0, 180, 0));
            //player.player.transform.LookAt(newCharCam);
            currentPlayer = player;
        }
Example #2
0
        public void onLoad(CharModel charModel)
        {
            // Do nothing if we already reached the max number of chars
            if (players.Count >= 5)
                return;

            // Generate a default player
            charModel.rig = RigType.CHARSELECT;
            charModel.state = States.SITTING;
            RosePlayer player = new RosePlayer(charModel);
            int id = players.Count;
            Vector3 altarPos = playerPositions[id].position;
            player.player.transform.position = new Vector3(altarPos.x, altarPos.y + 2.1f, altarPos.z);
            player.player.transform.LookAt(Camera.main.transform);
            players.Add(player, id);
            currentPlayer = player;
        }
Example #3
0
        public void onLoad(CharModel charModel)
        {
            // Do nothing if we already reached the max number of chars
            if (players.Count >= 5)
            {
                return;
            }

            // Generate a default player
            charModel.rig   = RigType.CHARSELECT;
            charModel.state = States.SITTING;
            RosePlayer player   = new RosePlayer(charModel);
            int        id       = players.Count;
            Vector3    altarPos = playerPositions[id].position;

            player.player.transform.position = new Vector3(altarPos.x, altarPos.y + 2.1f, altarPos.z);
            player.player.transform.LookAt(Camera.main.transform);
            players.Add(player, id);
            currentPlayer = player;
        }
Example #4
0
 public CharSelectPacket(CharModel charModel)
 {
     operation = (int)UserOperation.CREATECHAR;
     this.charModel = charModel;
 }
Example #5
0
    /*
    private RosePatch ImportPatch(string inputDir, Transform terrainParent, Transform objectsParent)
    {
        // Patch consists of the following elements:
        //	- .HIM file specifying the heighmap of the terrain: 65x65 image of floats
        //	- .TIL file specifying the texture tileset: 16x16 tiles, containing ID's that index into .ZON.Tiles, which returns index into .ZON.Textures
        //  - TODO: add other fileTypes here after researching

        bool success = true;

        Debug.Log ("Importing patch from " + inputDir + "...");

        RosePatch patch = new RosePatch(new DirectoryInfo(inputDir));

        success &= patch.Load();
        success &= patch.Import(terrainParent, objectsParent);

        if(success)
            Debug.Log ("Patch Import complete");
        else
            Debug.Log ("!Patch Import failed");

        return patch;
    }
    */
    void OnGUI()
    {
        // Need to do the following:
        // - Specify a specific map to load (path + directory browser?)
        // - Specify an output directory (path + directory browser?)
        // - Button to begin conversion
        // - add any extra settings here ...

        // ----------------Example GUI elements-----------------------
        // GUILayout.Label ("Settings", EditorStyles.boldLabel);
        // myBool = EditorGUILayout.Toggle ("Toggle", myBool);
        // myFloat = EditorGUILayout.Slider ("Slider", myFloat, -3, 3);
        // -----------------------------------------------------------

        //=================== MAP =======================

        EditorGUILayout.BeginToggleGroup("Map", true);
        m_inputDir = EditorGUILayout.TextField ("Input dir: ", m_inputDir);

        /*
        if(GUILayout.Button("Import"))
        {
            STB stb = new STB(m_inputDir);
            // STL:
            //		  row		  col   row
            //Entries[0-62]  Rows[0-5][0-61]
            //LZON001  korean "Canyon City of Zant" korean korean korean
            //LZON002  korean "City of Junon Polis" korean korean korean
            //LZON003  korean "Junon Cartel" ...
            //...

            int x=1;
        }
        */

        if(GUILayout.Button("Import"))
        {
            // Several options based on the given path
            // 1. 3DDATA/MAPS/						-> convert rose universe
            // 2. 3DDATA/MAPS/JUNON					-> convert rose planet
            // 3. 3DDATA/MAPS/JUNON/JPT01			-> convert rose map
            // 4. 3DDATA/MAPS/JUNON/JTP01/30_30		-> convert rose patch
            // 5. Some/invalid/path
            bool notFound = false;
            DirectoryInfo inDirInfo = new DirectoryInfo(m_inputDir);
            switch (inDirInfo.Name.ToLower())
            {
            case "maps": 						// 1.
                ImportGalaxy();
                break;
            case "junon": 						// 2.
            case "eldeon":
            case "lunar":
                // TODO: add any new planets here...
                ImportPlanet();
                break;
            default:
                notFound = true;
                break;
            } // switch

            if(notFound)
            {
                switch (inDirInfo.Parent.Name.ToLower())
                {
                case "junon":				// 3.
                case "eldeon":
                case "lunar":
                    // TODO: add any new planets here...
                    ImportMap(inDirInfo.Name.ToLower());
                    break;
                default:
                    GameObject terrain = new GameObject();
                    terrain.name = "Terrain";

                    GameObject terrainObjects = new GameObject();
                    terrainObjects.name = "Terrain Objects";
                    //ImportPatch(m_inputDir, terrain.transform, terrainObjects.transform);			// 4. (LoadPatch will handle 5. properly)
                    break;
                }	// switch
            } // if
        } // if

        EditorGUILayout.EndToggleGroup ();
        // ======================== OBJECT ==========================
        EditorGUILayout.BeginToggleGroup("Animated Object", true);
        m_szcPath = EditorGUILayout.TextField ("ZSC: ", m_szcPath);
        objID = EditorGUILayout.IntField ("ID: ", objID);
        bodyPart = EditorGUILayout.IntField ("Body Part: ", bodyPart);
        transform = EditorGUILayout.ObjectField ("Transform: ", transform, typeof(Transform), true) as Transform;
        if (GUILayout.Button ("Create")) {
            if(transform != null)
                player = new RosePlayer (transform.position); // Note: Player reference is lost after hitting play.  Must create new after that.
            else
                player = new RosePlayer();
        }

        if (GUILayout.Button("Create Char Select"))
        {
            CharModel model = new CharModel();
            model.rig = RigType.CHARSELECT;
            model.state = States.HOVERING;

            if(transform != null)
                model.pos = transform.position;

            player = new RosePlayer(model); // Note: Player reference is lost after hitting play.  Must create new after that.

        }

        if (GUILayout.Button("Equip"))
        {
            if( player != null )
                player.equip( (BodyPartType)bodyPart, objID );

            //RosePlayer player = new RosePlayer(GenderType.MALE, WeaponType.THSWORD);
            //ResourceManager.Instance.GenerateAnimationAsset(GenderType.MALE, WeaponType.EMPTY);
            //ResourceManager.Instance.GenerateAnimationAssets();
            //GenerateCharSelectAnimations();

        }

        if (GUILayout.Button("GenerateAnimations"))
        {
            //RosePlayer player = new RosePlayer(GenderType.MALE, WeaponType.THSWORD);
            //ResourceManager.Instance.GenerateAnimationAsset(GenderType.MALE, WeaponType.EMPTY);
            //ResourceManager.Instance.GenerateAnimationAssets();
            GenerateCharSelectAnimations();
        }

        EditorGUILayout.EndToggleGroup ();
    }
Example #6
0
        public void onNew()
        {
            // Do nothing if we already reached the max number of chars
            if (players.Count >= 5)
                return;

            // If a character has been selected already, make them sit the f**k down
            if (currentPlayer != null)
                currentPlayer.setAnimationState(States.SIT);

            // Bring up the new char panel
            newCharPanel.SetActive(true);

            // Generate a default player
            CharModel charModel = new CharModel();
            charModel.rig = RigType.CHARSELECT;
            charModel.state = States.HOVERING;
            RosePlayer player = new RosePlayer(charModel);

            // Put new player in front of the new player camera and facing it
            Transform newCharCam = GameObject.Find("NewCharCam").transform;
            player.player.transform.position = new Vector3(0.0f, -1.2f, 3.0f);
            player.player.transform.Rotate(new Vector3(0, 180, 0));
            //player.player.transform.LookAt(newCharCam);
            currentPlayer = player;
        }
Example #7
0
 public RosePlayer( Vector3 position )
 {
     charModel = new CharModel ();
     charModel.pos = position;
     LoadPlayer (charModel);
 }
Example #8
0
 public RosePlayer(CharModel charModel)
 {
     this.charModel = charModel;
     LoadPlayer (charModel);
 }
Example #9
0
 public RosePlayer(GenderType gender)
 {
     charModel = new CharModel ();
     charModel.gender = gender;
     LoadPlayer (charModel);
 }
Example #10
0
 public RosePlayer()
 {
     charModel = new CharModel ();
     LoadPlayer (charModel);
 }
Example #11
0
 private void LoadPlayerSkeleton( CharModel charModel)
 {
     LoadPlayerSkeleton(
                 charModel.gender,
                 charModel.weapon,
                 charModel.rig,
                 charModel.equip.weaponID,
                 charModel.equip.chestID,
                 charModel.equip.handID,
                 charModel.equip.footID,
                 charModel.equip.hairID,
                 charModel.equip.faceID,
                 charModel.equip.backID,
                 charModel.equip.capID,
                 charModel.equip.shieldID);
 }
Example #12
0
    private void LoadPlayer(CharModel charModel)
    {
        // Get the correct resources
        bool male = (charModel.gender == GenderType.MALE);

        rm = ResourceManager.Instance;

        player = new GameObject(charModel.name);

        LoadPlayerSkeleton (charModel);

        // Set layer to Players
        player.layer = LayerMask.NameToLayer("Players");

        //add PlayerController script
        PlayerController controller = player.AddComponent<PlayerController>();
        controller.rosePlayer = this;
        controller.playerInfo.tMovS = charModel.stats.movSpd;

        //add Character controller
        Vector3 center = skeleton.transform.FindChild("b1_pelvis").localPosition;
        center.y = 0.95f;
        float height = 1.7f;
        float radius = Math.Max(playerBounds.extents.x, playerBounds.extents.y) / 2.0f;
        CharacterController charController = player.AddComponent<CharacterController>();
        charController.center = center;
        charController.height = height;
        charController.radius = radius;

        //add collider
        CapsuleCollider c = player.AddComponent<CapsuleCollider>();
        c.center =  center;
        c.height = height;
        c.radius = radius;
        c.direction = 1; // direction y

        /*
        //add event trigger
        EventTrigger eventTrigger = player.AddComponent<EventTrigger>();
        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID = EventTriggerType.PointerClick;
        BaseEventData eventData = new BaseEventData(eventSystem);
        eventData.selectedObject
        entry.callback.AddListener( (eventData) => { controller.})
        */

        player.transform.position = charModel.pos;
        controller.SetAnimationStateMachine(charModel.rig, charModel.state);
    }