Esempio n. 1
0
        public void delScreenObj(ushort key, bool isBuilding)
        {
            ScreenObj obj = isBuilding ? buildingDict[key] : propDict[key];

            Destroy(obj.signObject);
            if (isBuilding)
            {
                buildingDict.Remove(key);
            }
            else
            {
                propDict.Remove(key);
            }
        }
Esempio n. 2
0
        public void SetPropScreen(bool isProp, ushort id, Vector3 position, float angle, string propName, List <bool> isEnabled, List <bool> isStatic, List <string> staticStringName = null)
        {
            ScreenObj obj = new ScreenObj(id, position, angle, propName, isEnabled, isStatic, staticStringName);

            if (isProp)
            {
                if (propDict.ContainsKey(id))
                {
                    Destroy(propDict[id].signObject);
                }
                propDict[id] = obj;
            }
            else
            {
                if (buildingDict.ContainsKey(id))
                {
                    Destroy(buildingDict[id].signObject);
                }
                buildingDict[id] = obj;
            }
            RenderingManager.instance.update();
        }
Esempio 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;
                }
            }
        }