Exemplo n.º 1
0
        public void updateDropdowns()
        {
            PropPositioningInfo config = PropConfig.Instance().propPositioningDict[entityName];

            for (int i = 0; i < NUM_DROPDOWNS; i++)
            {
                if (i < config.numSigns)
                {
                    dropDownGroups[i].label.Show();
                    dropDownGroups[i].dropDown.Show();
                }
                else
                {
                    dropDownGroups[i].label.Hide();
                    dropDownGroups[i].dropDown.Hide();
                }
            }
        }
Exemplo n.º 2
0
        protected override void BeginOverlayImpl(RenderManager.CameraInfo cameraInfo)
        {
            if (refreshFlag)
            {
                refreshFlag = false;
                try
                {
                    renderGameObjects();
                }
                catch (Exception ex)
                {
                    LoggerUtils.LogException(ex);
                }
            }

            if (!objHidden && cameraInfo.m_height > renderHeight)
            {
                foreach (ScreenObj screen in ScreenManager.instance.propDict.Values)
                {
                    if (screen.signObject != null)
                    {
                        screen.signObject.SetActive(false);
                    }
                }
                foreach (ScreenObj screen in ScreenManager.instance.buildingDict.Values)
                {
                    if (screen.signObject != null)
                    {
                        screen.signObject.SetActive(false);
                    }
                }
                objHidden = true;
            }
            else if (objHidden && cameraInfo.m_height <= renderHeight) //This is a mess, and I'll sort it soon :)
            {
                foreach (ScreenObj screen in ScreenManager.instance.propDict.Values)
                {
                    if (screen.signObject != null)
                    {
                        screen.signObject.SetActive(true);
                    }
                }
                foreach (ScreenObj screen in ScreenManager.instance.buildingDict.Values)
                {
                    if (screen.signObject != null)
                    {
                        screen.signObject.SetActive(true);
                    }
                }
                objHidden = false;
            }

            if (screenRefreshFlag)
            {
                screenRefreshFlag = false;
                List <Material> materials = TextureUtils.m_screenTextureStore.Values.ToList();

                foreach (ScreenObj obj in ScreenManager.instance.buildingDict.Values)
                {
                    if (obj.signObject)
                    {
                        PropPositioningInfo positioningInfo = PropConfig.Instance().propPositioningDict[obj.propName];

                        for (byte i = 0; i < positioningInfo.numSigns; i++)
                        {
                            Transform child = obj.signObject.transform.Find(i.ToString());
                            if (child != null && !obj.isStatic[i])
                            {
                                Material mat = materials[messageRandom.Next(materials.Count)];
                                child.gameObject.GetComponent <MeshRenderer>().material = mat;
                            }
                        }
                    }
                }
                foreach (ScreenObj obj in ScreenManager.instance.propDict.Values)
                {
                    if (obj.signObject)
                    {
                        PropPositioningInfo positioningInfo = PropConfig.Instance().propPositioningDict[obj.propName];

                        for (byte i = 0; i < positioningInfo.numSigns; i++)
                        {
                            Transform child = obj.signObject.transform.Find(i.ToString());
                            if (child != null && !obj.isStatic[i])
                            {
                                Material mat = materials[messageRandom.Next(materials.Count)];
                                child.gameObject.GetComponent <MeshRenderer>().material = mat;
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        private void renderGameObjects()
        {
            List <Material> materials = TextureUtils.m_screenTextureStore.Values.ToList();

            foreach (KeyValuePair <ushort, ScreenObj> obj in ScreenManager.instance.propDict)
            {
                ScreenObj screenObj = obj.Value;
                if (screenObj.signObject != null)
                {
                    continue;
                }
                else
                {
                    screenObj.signObject = new GameObject(obj.Key + "animatedsign");

                    screenObj.signObject.transform.position = screenObj.position;
                    screenObj.signObject.transform.Rotate(0, (screenObj.angle) + 60f, 0);

                    PropPositioningInfo positioningInfo = PropConfig.Instance().propPositioningDict[screenObj.propName];
                    for (byte i = 0; i < positioningInfo.numSigns; i++)
                    {
                        if (screenObj.isActive[i])
                        {
                            if (screenObj.isStatic[i] && !TextureUtils.m_screenTextureStore.ContainsKey(screenObj.staticImageString[i]))
                            {
                                continue;
                            }

                            GameObject screenPaneObj = new GameObject(i.ToString());
                            screenPaneObj.AddComponent <MeshRenderer>();
                            screenPaneObj.AddComponent <MeshFilter>();
                            screenPaneObj.transform.parent        = screenObj.signObject.transform;
                            screenPaneObj.transform.localPosition = new Vector3(positioningInfo.xPos[i], positioningInfo.yPos[i], positioningInfo.zPos[i]);
                            screenPaneObj.transform.localScale    = new Vector3(positioningInfo.xSize[i], positioningInfo.ySize[i], 1f);
                            screenPaneObj.transform.Rotate(0, (screenObj.angle) + positioningInfo.rotations[i], 0);

                            Material mat = screenObj.isStatic[i] ? TextureUtils.m_screenTextureStore[screenObj.staticImageString[i]] : materials[messageRandom.Next(materials.Count)];
                            screenPaneObj.GetComponent <Renderer>().material = mat;
                            screenPaneObj.GetComponent <MeshFilter>().mesh   = MeshUtils.CreateRectMesh(mat.mainTexture.width, mat.mainTexture.height);
                        }
                    }

                    ScreenManager.instance.propDict[obj.Key].signObject = screenObj.signObject;
                }
            }
            foreach (KeyValuePair <ushort, ScreenObj> obj in ScreenManager.instance.buildingDict)
            {
                ScreenObj screenObj = obj.Value;
                if (screenObj.signObject != null)
                {
                    continue;
                }
                else
                {
                    screenObj.signObject = new GameObject(obj.Key + "animatedsign");

                    screenObj.signObject.transform.position = screenObj.position;
                    screenObj.signObject.transform.Rotate(0, (screenObj.angle) + 60f, 0);

                    PropPositioningInfo positioningInfo = PropConfig.Instance().propPositioningDict[screenObj.propName];
                    for (byte i = 0; i < positioningInfo.numSigns; i++)
                    {
                        if (screenObj.isActive[i])
                        {
                            if (screenObj.isStatic[i] && !TextureUtils.m_screenTextureStore.ContainsKey(screenObj.staticImageString[i]))
                            {
                                continue;
                            }

                            GameObject screenPaneObj = new GameObject(i.ToString());
                            screenPaneObj.AddComponent <MeshRenderer>();
                            screenPaneObj.AddComponent <MeshFilter>();
                            screenPaneObj.transform.parent        = screenObj.signObject.transform;
                            screenPaneObj.transform.localPosition = new Vector3(positioningInfo.xPos[i], positioningInfo.yPos[i], positioningInfo.zPos[i]);
                            screenPaneObj.transform.localScale    = new Vector3(positioningInfo.xSize[i], positioningInfo.ySize[i], 1f);
                            screenPaneObj.transform.Rotate(0, (screenObj.angle) + positioningInfo.rotations[i], 0);

                            Material mat = screenObj.isStatic[i] ? TextureUtils.m_screenTextureStore[screenObj.staticImageString[i]] : materials[messageRandom.Next(materials.Count)];
                            screenPaneObj.GetComponent <Renderer>().material = mat;
                            screenPaneObj.GetComponent <MeshFilter>().mesh   = MeshUtils.CreateRectMesh(mat.mainTexture.width, mat.mainTexture.height);
                        }
                    }

                    ScreenManager.instance.buildingDict[obj.Key].signObject = screenObj.signObject;
                }
            }
        }