Example #1
0
        public void EditBuildObject(GameObject instance)
        {
            if (currBuiltItem != null)
            {
                currBuildComponent = currBuiltItem.objComponent;
            }
            if (!currBuildComponent)
            {
                // currBuildComponent = instance.GetComponentInChildren<Collider>().gameObject.GetComponentInChildren<BuildingSystemObject>();
                currBuildComponent = instance.GetComponentInChildren <BuildingSystemObject>();
            }
            // if(!currBuildComponent || !currBuildComponent.item) {
            //     CleanBuildable();
            //     return;
            // }

            UI.canvasGroup.FadeOut();
            currObjInstance  = instance;
            currObjTransform = instance.transform;
            currObjCol       = instance.GetComponentInChildren <Collider>();
            prevPos          = instance.transform.position;

            if (!currItem)
            {
                currItem = currBuildComponent.item;
            }

            UpdateBuiltItems(null);
            InitBuildObjRecurs(currBuiltItem);
        }
Example #2
0
 void CleanBuildable()
 {
     currObjInstance    = null;
     prevItem           = currItem;
     currItem           = null;
     currBuildComponent = null;
     prevObjTransform   = currObjTransform;
     currObjTransform   = null;
     currBuiltItem      = null;
     buildObjColliding  = false;
 }
Example #3
0
        void UpdateBuiltItems(Transform newParent)
        {
            int instanceId = FindBuiltItemIndexFromInstance(currObjInstance);

            if (instanceId == -1)
            {
                currBuiltItem              = new BuiltItem();
                currBuiltItem.item         = currItem;
                currBuiltItem.name         = currItem.name;
                currBuiltItem.instance     = currObjInstance;
                currBuiltItem.objComponent = currBuildComponent;
                currBuiltItem.renderer     = currObjInstance.GetComponentInChildren <Renderer>();
                currBuiltItem.sceneId      = SceneHandler.I.activeScene.buildIndex;

                builtItems.Add(currBuiltItem);
                GetOrAddBuiltItemsListByTag(currBuiltItem.item.itemTags[0]).Add(currBuiltItem);
                Debug.Log("Num built items: " + builtItems.Count);
            }
            else
            {
                currBuiltItem      = builtItems[instanceId];
                currItem           = currBuiltItem.item;
                currBuildComponent = currBuiltItem.objComponent;
            }

            if (currBuiltItem.parentId != -1)
            {
                builtItems[currBuiltItem.parentId].children.Remove(currBuiltItem);
                currBuiltItem.parentId = -1;
            }

            if (newParent)
            {
                int parentInd = FindBuiltItemIndexFromInstance(newParent.gameObject);
                if (parentInd != -1)
                {
                    builtItems[parentInd].children.Add(currBuiltItem);
                    currObjInstance.transform.SetParent(newParent, true);
                }
                else
                {
                    currObjInstance.transform.SetParent(null);
                }
                builtItems[instanceId].parentId = parentInd;
            }
            else
            {
                currObjInstance.transform.SetParent(null);
            }

            UpdateBuiltPosRotRecurs(currBuiltItem);
        }