Пример #1
0
    public void ShowTempObject(UIManager.UIObjectType objectTypeToDisplay, Vector3 position)
    {
        //If no hologram, grab one
        if (m_objectHologram == null)
        {
            m_objectHologram = CacheManager.Singleton.RequestInteriorDoor();
            m_objectHologram.gameObject.SetActive(true);
            m_objectHologram.transform.parent = null;

            m_objectHologram.SetMaterial(PrefabAssets.Singleton.doorHologramMat);

            switch (objectTypeToDisplay)
            {
            case UIManager.UIObjectType.Door:
                m_objectHologram.tileType = GroundManager.GroundTileType.Door;
                break;
            }
        }

        m_hologramObjectLocationValid = false;

        Vec2Int tilePos = GroundManager.Singleton.ConvertWorldPositionToTile(position);

        m_objectHologram.transform.position = new Vector3(tilePos.x + m_objectHologram.defaultOffset.x, 0, tilePos.y + m_objectHologram.defaultOffset.z);

        Color holoColor = PrefabAssets.Singleton.hologramColor;

        GroundManager.GroundTileType curTile = m_associatedGroundData.GetTileType(tilePos);

        if (m_objectHologram.tileType == GroundManager.GroundTileType.Door)
        {
            if (curTile == GroundManager.GroundTileType.Wall)
            {
                int index = m_associatedGroundData.ConvertVec2IntToInt(tilePos);
                BaseGroundObject baseObj = m_groundTilesGOs[index];

                if (baseObj is WallObject)
                {
                    GroundManager.WallType wallType = (baseObj as WallObject).WallType;

                    //Doors can only go on straight walls
                    if (wallType == GroundManager.WallType.Straight)
                    {
                        m_objectHologram.transform.rotation = baseObj.transform.rotation;
                        m_hologramObjectLocationValid       = true;
                    }
                    else
                    {
                        holoColor = PrefabAssets.Singleton.hologramColorError;
                    }
                }
            }
            else
            {
                holoColor = PrefabAssets.Singleton.hologramColorError;
            }
        }

        m_objectHologram.SetMaterialColor(holoColor);
    }
Пример #2
0
 public void SetTileGO(int index, BaseGroundObject newObject)
 {
     m_groundTilesGOs[index] = newObject;
 }