コード例 #1
0
        private void SetSpawningObject(SaveManager.SavableObject.WorldObject obj)
        {
            ClearObject();

            ObjectPlacingManager.Spawning = obj;

            CursorManager.instance.UpdateCursor(Modding.ModLoader.GetTexture(ObjectPlacingManager.Spawning.spriteName));

            Descriptiontext.text = $"{obj.name}\n${obj.pVal}";
        }
コード例 #2
0
        private void CreateGhost(Vector3 position, string objectName, SaveManager.SavableObject.WorldObject placing, Sprite sprite)
        {
            UpdateGhostCount();

            void CreateObject()
            {
                Debug.Log($"Placing ghost at {position}");

                var Ghost = Tasks.GhostManager.GetGhost(placing);

                Ghost.transform.position = position;

                Ghost.CheckForCollisions();

                Ghosts.Add(Ghost);
            }

            if (Ghosts.Count > 0)
            {
                bool itemExistsAtPosition = false;

                for (int i = 0; i < Ghosts.Count; i++)
                {
                    var item = Ghosts[i];

                    if (item == null)
                    {
                        continue;
                    }

                    if (positionExists(item.transform.position) == false)
                    {
                        Ghosts[i].gameObject.SetActive(false);
                        continue;
                    }
                    else
                    if (item.transform.position == position)
                    {
                        item.CheckForCollisions();

                        itemExistsAtPosition = true;
                        continue;
                    }
                }

                if (itemExistsAtPosition == false)
                {
                    CreateObject();
                }
            }
            else
            {
                CreateObject();
            }
        }
コード例 #3
0
        private void CreateGhost(string objectName = "BullDozer", SaveManager.SavableObject.WorldObject placing = null)
        {
            if (ghostObject != null)
            {
                //destroy the last ghostObject
                Destroy(ghostObject);
            }

            ghostObject = new GameObject($"{objectName}.GhostObject").AddComponent <GhostObject>();
            ghostObject.ghostData.placing = placing;
            ghostObject.enabled           = false;
        }
コード例 #4
0
        public void ReplaceTile(Vector2 tilePos)
        {
            SaveManager.SavableObject.WorldObject objectData = Constructor.CloneObjectData(Concrete, tilePos, Quaternion.identity, Color.white);

            GameObject n_concrete = Constructor.GetObject(objectData, ConcreteParent.transform);

            ReplaceTileInDictionary(tilePos, n_concrete);

            if (Time.timeSinceLevelLoad > 1)
            {
                UpdateGrid();
            }
        }
コード例 #5
0
        private void SpawnButton(SaveManager.SavableObject.WorldObject obj)
        {
            GameObject go = Instantiate(itemPrefab, spawningParent);

            go.name = $"{obj.name}.Button";

            var img = go.GetComponent <Image>();

            img.sprite = Modding.ModLoader.GetSprite(obj.spriteName);

            var button = go.GetComponent <Button>();

            button.targetGraphic = img;
            button.onClick.AddListener(() => SetSpawningObject(obj));
        }
コード例 #6
0
        public void ClearObject()
        {
            Spawning = null;

            bullDozing = false;

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

            ghostObject = null;
            ghostSprite = null;

            GameHandler.gameState = GameHandler.GameState.Default;

            CursorManager.instance.UpdateCursor();
        }
コード例 #7
0
        private static SaveManager.SavableObject.WorldObject GetObjectData(ModInfo data)
        {
            SaveManager.SavableObject.WorldObject r = new SaveManager.SavableObject.WorldObject {
            };

            r = new SaveManager.SavableObject.WorldObject
            {
                name               = data.name,
                pVal               = data.price,
                wVal               = data.wVal,
                type               = data.type,
                objectType         = data.objectType,
                fulFills           = data.fulfilsNeed,
                childPos           = data.childPos,
                spriteSortingLayer = data.spriteSortingLayer,
                color              = data.color,
                spriteName         = data.spriteName,
                rotatable          = data.rotatable,
                ChangableColor     = data.changableColor
            };


            return(r);
        }
コード例 #8
0
        private void SetSpawningObject(SaveManager.SavableObject.WorldObject obj)
        {
            ClearObject();

            Spawning = obj;
        }