public static string GetPickedObjectType()
    {
        GameObjectWrapper pickedObjectWrapper = null;

        foreach (GameObjectWrapper wrapper in wrappers)
        {
            if (wrapper.instanceSceneName == "PlayerInventory")
            {
                pickedObjectWrapper = wrapper;
                break;
            }
        }

        if (pickedObjectWrapper == sheepWrapper)
        {
            return("sheep");
        }
        else if (pickedObjectWrapper == fenceWrapper)
        {
            return("fence");
        }
        else if (pickedObjectWrapper == haystackWrapper)
        {
            return("haystack");
        }

        return(null);
    }
    private void Awake()
    {
        if (!loaded)
        {
            if (sheepWrapper != null)
            {
                Destroy(sheepWrapper.gameObject);
            }

            if (fenceWrapper != null)
            {
                Destroy(fenceWrapper.gameObject);
            }

            if (haystackWrapper != null)
            {
                Destroy(haystackWrapper.gameObject);
            }

            sheepWrapper    = InstantiateGlobal(sheepPrefab, "DreamScene");
            fenceWrapper    = InstantiateGlobal(fencePrefab, "DreamScene");
            haystackWrapper = InstantiateGlobal(haystackPrefab, "CliffDreamScene");

            wrappers = new List <GameObjectWrapper> {
                sheepWrapper,
                fenceWrapper,
                haystackWrapper,
            };
            loaded = true;
        }

        SceneManager.LoadScene("HUDScene", LoadSceneMode.Additive);
    }
Esempio n. 3
0
        public void GameObject()
        {
            var obj     = new GameObject("obj");
            var wrapper = new GameObjectWrapper(obj);

            Assert.AreSame(obj, wrapper.GameObject);
        }
Esempio n. 4
0
        public bool CalculateDisplacement(out IGameObject pickedObject, out Vector3 displacement)
        {
            bool show = false;

            pickedObject = null;
            displacement = Vector3.zero;

            // Send a ray from the center of the screen to the object
            Ray        ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f));
            RaycastHit hit = new RaycastHit();

            // Only raycast when player has either a full block or is in delete mode.
            if (finger.Team.IsMine &&
                (Player.Player.LocalPlayer.HasFullBlock || finger.Mode == CubeFingerMode.Delete) &&
                Physics.Raycast(ray, out hit, MAX_PICKING_DISTANCE))
            {
                Transform picked = hit.transform;

                if (picked.parent.name == finger.Team.Target)
                {
                    pickedObject = new GameObjectWrapper(picked.gameObject);

                    if (finger.Mode == CubeFingerMode.Build)
                    {
                        displacement = calculateSide(pickedObject, hit);
                    }

                    show = true;
                }
            }

            return(show);
        }
Esempio n. 5
0
        public override void WriteJson(JsonWriter writer, GameObject value, JsonSerializer serializer)
        {
            var gameObjectJson    = serializer.GetJsonString(value, this, new GameObjectContractResolver());
            var gameObjectWrapper = new GameObjectWrapper(gameObjectJson, value.transform);

            serializer.Serialize(writer, gameObjectWrapper, typeof(GameObjectWrapper));
        }
Esempio n. 6
0
                public object Call(Interpreter interpreter, Token token, List <object> arguments)
                {
                    GameObjectWrapper goLeft  = (GameObjectWrapper)arguments[0];
                    GameObjectWrapper goRight = (GameObjectWrapper)arguments[1];

                    return(System.Object.ReferenceEquals(goLeft.GetSelf(), goRight.GetSelf()));
                }
Esempio n. 7
0
        public void GameObjectHandle()
        {
            var obj     = new GameObject("obj");
            var handle  = ScriptableObject.CreateInstance <GameObjectHandle>();
            var wrapper = new GameObjectWrapper(handle);

            handle.GameObject = obj;

            Assert.AreSame(obj, wrapper.GameObject);
        }
Esempio n. 8
0
 internal override bool matches(GameObjectWrapper gameObjectWrapper)
 {
     for (int i = 0; i < _componentTypeNames.Length; ++i)
     {
         if (gameObjectWrapper._componentTypeNames.Contains(_componentTypeNames[i]) == true)
         {
             return(false);
         }
     }
     return(true);
 }
Esempio n. 9
0
        public void GameObjectHandleConflict()
        {
            var obj     = new GameObject("obj");
            var handle  = ScriptableObject.CreateInstance <GameObjectHandle>();
            var wrapper = new GameObjectWrapper(obj, handle);

            handle.GameObject = obj;

            Assert.Throws <System.ArgumentException>(() => {
                var _ = wrapper.GameObject;
            });
        }
    private GameObjectWrapper InstantiateGlobal(GameObject prefab, string instanceSceneName)
    {
        GameObject globalGameObject = Instantiate(prefab);

        globalGameObject.SetActive(false);
        DontDestroyOnLoad(globalGameObject);

        GameObjectWrapper wrapper = new GameObjectWrapper {
            gameObject        = globalGameObject,
            instanceSceneName = instanceSceneName,
        };

        return(wrapper);
    }
    public static void PickObject(GameObject pickedGameObject)
    {
        GameObjectWrapper pickedGameObjectWrapper = null;

        foreach (GameObjectWrapper wrapper in wrappers)
        {
            if (wrapper.gameObject == pickedGameObject)
            {
                pickedGameObjectWrapper = wrapper;
                break;
            }
        }

        pickedGameObjectWrapper.instanceSceneName = "PlayerInventory";
    }
Esempio n. 12
0
        /// <summary>
        /// Gets all of the game objects of the specified type.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns>GameObjectWrapper&lt;T&gt;.</returns>
        public static GameObjectWrapper <T> Get <T>() where T : GameObject, new()
        {
            var type  = typeof(T);
            var found = new GameObjectWrapper <T>();

            foreach (var key in gameObjects.Keys)
            {
                if (type.IsAssignableFrom(key))
                {
                    found.AddRange(gameObjects[key].Values.Where(o => o.IsValid <T>()).ToList().ConvertAll(o => (T)o));
                }
            }

            return(found);
        }
    public static void DropObject(GameObject droppedGameObject)
    {
        GameObjectWrapper droppedGameObjectWrapper = null;

        foreach (GameObjectWrapper wrapper in wrappers)
        {
            if (wrapper.gameObject == droppedGameObject)
            {
                droppedGameObjectWrapper = wrapper;
                break;
            }
        }

        droppedGameObjectWrapper.instanceSceneName = SceneManager.GetActiveScene().name;
    }
Esempio n. 14
0
        internal override bool matches(GameObjectWrapper gameObjectWrapper)
        {
            // Prevent user error if a GameObject is destroyed while it is still binded. It's a mistake, the user has to unbind game objects before destroying them.
            if (gameObjectWrapper._gameObject != null)
            {
                UnityEngine.GameObject gameObject = gameObjectWrapper._gameObject;

                for (int i = 0; i < _properties.Length; ++i)
                {
                    if (hasProperty(gameObject, _properties[i]) == true)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Esempio n. 15
0
        internal override bool matches(GameObjectWrapper gameObjectWrapper)
        {
            // Prevent user error if a GameObject is destroyed while it is still binded. It's a mistake, the user has to unbind game objects before destroying them.
            if (gameObjectWrapper._gameObject != null)
            {
                string gameObjectTag = gameObjectWrapper._gameObject.tag;

                for (int i = 0; i < _tags.Length; ++i)
                {
                    if (gameObjectTag == _tags [i])
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Esempio n. 16
0
        public void GameObjectHandleConflictMessage()
        {
            var obj     = new GameObject("obj");
            var handle  = ScriptableObject.CreateInstance <GameObjectHandle>();
            var wrapper = new GameObjectWrapper(obj, handle);

            handle.GameObject = obj;

            try {
                var _ = wrapper.GameObject;
            } catch (System.ArgumentException e) {
                string msg =
                    "GameObjectWrapper has gameObject and handler assigned, " +
                    "only assign one";
                Assert.AreEqual(msg, e.Message);
            }
        }
Esempio n. 17
0
 public DestroyCallable(GameObjectWrapper self)
 {
     this.self = self;
 }
Esempio n. 18
0
    // Update is called once per frame
    void Update()
    {
        if (cubes.Count <= 200)
        {
            xlist = new List <GameObjectWrapper>();
            ylist = new List <GameObjectWrapper>();
            zlist = new List <GameObjectWrapper>();

            foreach (GameObject item in cubes)
            {
                GameObjectWrapper tempXMin = new GameObjectWrapper(item.renderer.bounds.min.x, true, item);
                GameObjectWrapper tempXMax = new GameObjectWrapper(item.renderer.bounds.max.x, false, item);


                xlist.Add(tempXMin);
                xlist.Add(tempXMax);

                GameObjectWrapper tempYMin = new GameObjectWrapper(item.renderer.bounds.min.y, true, item);
                GameObjectWrapper tempYMax = new GameObjectWrapper(item.renderer.bounds.max.y, false, item);

                ylist.Add(tempYMin);
                ylist.Add(tempYMax);

                GameObjectWrapper tempZMin = new GameObjectWrapper(item.renderer.bounds.min.z, true, item);
                GameObjectWrapper tempZMax = new GameObjectWrapper(item.renderer.bounds.max.z, false, item);

                zlist.Add(tempZMin);
                zlist.Add(tempZMax);

                item.renderer.material.color = Color.white;
            }
        }

        activeCollisionsX = new List <GameObject>();
        activeCollisionsY = new List <GameObject>();
        activeCollisionsZ = new List <GameObject>();

        currentCollisionsX = new List <GameObject>();
        currentCollisionsY = new List <GameObject>();
        currentCollisionsZ = new List <GameObject>();

        xlist.Sort(delegate(GameObjectWrapper a, GameObjectWrapper b) { return(a.f.CompareTo(b.f)); });
        ylist.Sort(delegate(GameObjectWrapper a, GameObjectWrapper b) { return(a.f.CompareTo(b.f)); });
        zlist.Sort(delegate(GameObjectWrapper a, GameObjectWrapper b) { return(a.f.CompareTo(b.f)); });

        foreach (GameObjectWrapper i in xlist)
        {
            // i is a starting point, and active collisions doesn't already contain the gameobject we're looking at
            if (activeCollisionsX.Contains(i.item) == false)
            {
                activeCollisionsX.Add(i.item);

                // if we've got more than 2 things colliding on x axis
                //Debug.Log(activeCollisionsX.Count);
                if (activeCollisionsX.Count >= 2)
                {
                    // add everything in active collisions if it already isnt there

                    foreach (GameObject item in activeCollisionsX)
                    {
                        if (currentCollisionsX.Contains(item) == false)
                        {
                            currentCollisionsX.Add(item);
                        }
                    }
                }
            }

            else if (activeCollisionsX.Contains(i.item) == true)
            {
                activeCollisionsX.Remove(i.item);
            }
        }

        foreach (GameObjectWrapper i in ylist)
        {
            // i is a starting point, and active collisions doesn't already contain the gameobject we're looking at
            if (activeCollisionsY.Contains(i.item) == false)
            {
                activeCollisionsY.Add(i.item);

                // if we've got more than 2 things colliding on x axis
                //Debug.Log(activeCollisionsX.Count);
                if (activeCollisionsY.Count >= 2)
                {
                    // add everything in active collisions if it already isnt there
                    foreach (GameObject item in activeCollisionsY)
                    {
                        if (currentCollisionsX.Contains(item) == true)
                        {
                            if (currentCollisionsY.Contains(item) == false)
                            {
                                currentCollisionsY.Add(item);
                            }
                        }
                    }
                }
            }

            else if (activeCollisionsY.Contains(i.item) == true)
            {
                activeCollisionsY.Remove(i.item);
            }
        }


        foreach (GameObjectWrapper i in zlist)
        {
            // i is a starting point, and active collisions doesn't already contain the gameobject we're looking at
            if (activeCollisionsZ.Contains(i.item) == false)
            {
                activeCollisionsZ.Add(i.item);

                // if we've got more than 2 things colliding on x axis
                //Debug.Log(activeCollisionsX.Count);
                if (activeCollisionsZ.Count >= 2)
                {
                    // add everything in active collisions if it already isnt there

                    foreach (GameObject item in activeCollisionsZ)
                    {
                        if (currentCollisionsX.Contains(item) == true)
                        {
                            if (currentCollisionsY.Contains(item) == true)
                            {
                                if (currentCollisionsZ.Contains(item) == false)
                                {
                                    currentCollisionsZ.Add(item);
                                }
                            }
                        }
                    }
                }
            }

            else if (activeCollisionsZ.Contains(i.item) == true)
            {
                activeCollisionsZ.Remove(i.item);
            }
        }


        List <GameObject> totalCollisions = new List <GameObject>();

        foreach (GameObject item1 in currentCollisionsZ)
        {
            foreach (GameObject item2 in currentCollisionsZ)
            {
                if (item1.GetInstanceID() != item2.GetInstanceID())
                {
                    if (isColliding(item1, item2))
                    {
                        if (totalCollisions.Contains(item1) == false)
                        {
                            totalCollisions.Add(item1);
                        }
                    }
                }
            }
        }

        foreach (GameObject item in cubes)
        {
            if (totalCollisions.Contains(item))
            {
                if (item.tag == "Player")
                {
                    item.renderer.material.color = Color.red;
                }

                else
                {
                    item.renderer.material.color = Color.black;
                }
            }

            else
            {
                if (item.tag == "Player")
                {
                    item.renderer.material.color = Color.cyan;
                }
                else
                {
                    item.renderer.material.color = Color.white;
                }
            }
        }
    }
Esempio n. 19
0
 public static C AssertComponent <C>(this GameObjectWrapper handle)
 => handle.GameObject.AssertComponent <C>();
Esempio n. 20
0
 internal abstract bool matches(GameObjectWrapper gameObjectWrapper);
Esempio n. 21
0
    private void Start()
    {
        //this.gameObject.AddComponent<Rideable>();
        GameObjectWrapper gameObjectWrapper = this.GetComponent <SpawnableObjectScript>().wrapper;

        if (gameObjectWrapper == null)
        {
            return;
        }
        this.gameObject.name = this.gameObject.name + ".ID : " + FreightCartUnity.MinecartNumber;
        ++FreightCartUnity.MinecartNumber;
        this.mHoverLight = this.transform.Find("HoverLight").GetComponent <Light>();
        if (this.mHoverLight == null)
        {
            Debug.LogError("Error, Minecart had no hover light?");
        }
        this.mob               = gameObjectWrapper.mPayload as FreightCartMob;
        this.Body              = Extensions.Search(this.transform, "Minecart GFX").gameObject;
        this.mnHealth          = -999999;
        this.mRenderer         = this.GetComponentsInChildren <Renderer>();
        this.mbRenderer        = true;
        this.mbDoorRenderer    = true;
        this.LoadParticles     = Extensions.Search(this.transform, "Loading Particles").GetComponent <ParticleSystem>();
        this.LoadParticlesDust = Extensions.Search(this.transform, "Loading Particles Dust").GetComponent <ParticleSystem>();
        this.Door_L            = Extensions.Search(this.transform, "Minecart Door L").gameObject;
        this.Door_R            = Extensions.Search(this.transform, "Minecart Door R").gameObject;
        if (DateTime.Now.Month != 4 || DateTime.Now.Day > 1)
        {
            Extensions.Search(this.transform, "AprilFool").gameObject.SetActive(false);
        }
        this.mAudio = this.GetComponent <AudioSource>();
        Material material = (Material)null;

        if (this.mob.mObjectType == SpawnableObjectEnum.Minecart_T1)
        {
            if ((UnityEngine.Object)Minecart_Unity.T1_Mat == (UnityEngine.Object)null)
            {
                Minecart_Unity.T1_Mat = Resources.Load("DynamicTextures/Minecart_dif") as Material;
            }
            material = Minecart_Unity.T1_Mat;
        }
        if (this.mob.mObjectType == SpawnableObjectEnum.Minecart_T2)
        {
            if ((UnityEngine.Object)Minecart_Unity.T2_Mat == (UnityEngine.Object)null)
            {
                Minecart_Unity.T2_Mat = Resources.Load("DynamicTextures/Minecart_dif T2") as Material;
            }
            material = Minecart_Unity.T2_Mat;
        }
        if (this.mob.mObjectType == SpawnableObjectEnum.Minecart_T3)
        {
            if ((UnityEngine.Object)Minecart_Unity.T3_Mat == (UnityEngine.Object)null)
            {
                Minecart_Unity.T3_Mat = Resources.Load("DynamicTextures/Minecart_dif T3") as Material;
            }
            material = Minecart_Unity.T3_Mat;
        }
        if (this.mob.mObjectType == SpawnableObjectEnum.Minecart_T4)
        {
            if ((UnityEngine.Object)Minecart_Unity.T4_Mat == (UnityEngine.Object)null)
            {
                Minecart_Unity.T4_Mat = Resources.Load("DynamicTextures/Minecart_dif T4") as Material;
            }
            material = Minecart_Unity.T4_Mat;
        }
        if (material != null)
        {
            this.Door_L.GetComponent <Renderer>().material = material;
            this.Door_R.GetComponent <Renderer>().material = material;
            this.Body.GetComponent <Renderer>().material   = material;
        }

        this.mCurrentPos = this.transform.position;
        this.mMPB        = new MaterialPropertyBlock();
        if (this.mHoverLight != null && this.mob.IsOreFreighter)
        {
            this.mMPB.SetColor("_GlowColor", Color.blue);
        }
    }
Esempio n. 22
0
 int CompareGameObjects(GameObjectWrapper a, GameObjectWrapper b)
 {
     return(a.f.CompareTo(b.f));
 }