Esempio n. 1
0
        private NeedFulfiller GetNearestNeed(NeedDefinition need)
        {
            NeedFulfiller nearestNeed = null;

            NeedFulfiller[] workerButtons = FindObjectsOfType <NeedFulfiller>();

            float nearest = 20;

            foreach (var desk in workerButtons)
            {
                float dist = Vector2.Distance(transform.position, desk.transform.position);

                if (dist < nearest && desk.Fulfills == need)
                {
                    nearestNeed = desk;
                    nearest     = dist;
                }
            }

            return(nearestNeed);
        }
        public static GameObject GetObject(SaveManager.SavableObject.WorldObject data)
        {
            GameObject obj = new GameObject(data.name);

            GameObject parent = GameObject.Find("Building");

            if (parent == null)
            {
                parent = new GameObject("Building");
            }

            SpriteRenderer spr = obj.AddComponent <SpriteRenderer>();

            spr.sprite       = Modding.ModLoader.GetSprite(data.spriteName);
            spr.sortingOrder = data.spriteSortingLayer;
            spr.material     = GameHandler.instance.gameObjectMaterial;

            obj.AddComponent <BoxCollider2D>();

            obj.transform.SetParent(parent.transform);

            Color savedColor = data.color;

            spr.color = savedColor;

            obj.transform.position = data.position;
            obj.transform.rotation = data.rotation;

            PlacedObject objectData = obj.AddComponent <PlacedObject>();

            objectData.objectData      = data;
            objectData.objectData.name = data.name + obj.transform.position;

            switch (data.objectType)
            {
            case PlacedObjectType.Desk:
                var button = obj.AddComponent <WorkerButton>();

                button.moneyToAdd = data.wVal;

                Transform child = new GameObject("Chair").transform;

                child.SetParent(obj.transform);

                child.localPosition = (data.childPos != Vector2.zero) ? child.position = data.childPos : obj.transform.position;

                child.rotation = obj.transform.rotation;

                button.chair = child;
                break;

            case PlacedObjectType.Need:
                NeedFulfiller need = obj.AddComponent <NeedFulfiller>();

                need.Fulfills = data.fulFills;
                break;

            default:
                break;
            }

            return(obj);
        }