Esempio n. 1
0
    public static void loadShaftObject(SceneObject obj)
    {
        if (obj.GetType().Equals(typeof(ShaftObject)))
        {
            ShaftObject shObject = (ShaftObject)obj;

            GameObject shaft = Instantiate(prefabDictionary[obj.GetType()]);
            shaft.transform.position    = new Vector3(shObject.position.x, shObject.position.y, shObject.position.z);
            shaft.transform.eulerAngles = new Vector3(shObject.rotation.x, shObject.rotation.y, shObject.rotation.z);

            float diameter = shObject.radius * 2.0f;
            shaft.transform.localScale = new Vector3(diameter, shObject.length, diameter);

            foreach (int id in shObject.connectedObjects)
            {
                Tuple <SceneObject, GameObject> tuple = addedSceneObjects.Find(tp => tp.Item1.id.Equals(id));
                if (tuple != null)
                {
                    shaft.GetComponentInChildren <Connectable>().addConnectedPart(tuple.Item2.GetComponentInChildren <Rotatable>());
                }
            }

            //Set Layer for gameobject and all its children
            string tagLayerName = "Shaft";
            SetLayerRecursively(shaft, LayerMask.NameToLayer(tagLayerName));
            shaft.gameObject.tag = tagLayerName;

            addedSceneObjects.Add(new Tuple <SceneObject, GameObject>(obj, shaft));
        }
    }
Esempio n. 2
0
 public void ReadInEnemyData()
 {
     Enemy        = Player.currentEnemy.GetComponent <ShaftObject>();
     enemyHealth  = Enemy.health;
     enemyAttack  = Enemy.attack;
     enemyDefense = Enemy.defense;
     EnemyHealthDisplay.maxValue = Enemy.health;
     EnemyHealthDisplay.value    = Enemy.health;
 }
Esempio n. 3
0
    public static void addShaftObject(List <SceneObject> sceneObjects, Dictionary <GameObject, SceneObject> addedSceneObjects, GameObject obj)
    {
        if (obj.tag.Equals("Shaft"))
        {
            ShaftObject newObject = new ShaftObject();

            List <Rotatable> connectedObjects = obj.GetComponentInChildren <RotatableObject>().getConnectedParts();
            newObject.connectedObjects = new int[connectedObjects.Count];

            for (int i = 0; i < connectedObjects.Count; i++)
            {
                if (!addedSceneObjects.ContainsKey(connectedObjects[i].getRootTransform().gameObject))
                {
                    SceneLoaderDictionary.addSceneObjectDictionary[connectedObjects[i].getRootTransform().tag].Invoke(sceneObjects, addedSceneObjects, connectedObjects[i].getRootTransform().gameObject);
                }

                newObject.connectedObjects[i] = addedSceneObjects[connectedObjects[i].getRootTransform().gameObject].id;
            }

            newObject.id   = sceneObjects.Count;
            newObject.kind = "ShaftObject";
            Vector3 objPosition = obj.transform.position;
            newObject.position = new Vector3Object(objPosition.x, objPosition.y, objPosition.z);
            Vector3 objRotation = obj.transform.eulerAngles;
            newObject.rotation = new Vector3Object(objRotation.x, objRotation.y, objRotation.z);

            newObject.radius = (obj.transform.localScale.x / 2.0f);
            newObject.length = obj.transform.localScale.y;

            sceneObjects.Add(newObject);
            addedSceneObjects.Add(obj, newObject);
        }
        else
        {
            Debug.Log("JsonConfigInteraction.addConeCogwheelObject: object is not tagged with 'Shaft'.");
        }
    }