コード例 #1
0
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////
    #region Helpers
    private Transform GetParentTransform(eEditablePrefabs forType)
    {
        if (forType == eEditablePrefabs.Brawler || forType == eEditablePrefabs.Scurrier)
        {
            EnemyGroup found = currentRoom.gameObject.GetComponentInChildren <EnemyGroup>();
            if (found == null)
            {
                Debug.Log("Could not find parent for new enemy");
                return(null);
            }
            return(found.transform);
        }
        else
        {
            OreVein foundOre = currentRoom.gameObject.GetComponentInChildren <OreVein>();
            if (foundOre)
            {
                return(foundOre.gameObject.transform.parent);
            }
            HealthFruit foundFruit = currentRoom.gameObject.GetComponent <HealthFruit>();
            if (foundFruit)
            {
                return(foundFruit.gameObject.transform.parent);
            }

            Debug.Log("Could not find the parent for new pickup");
            return(null);
        }
    }
コード例 #2
0
    /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
    #region Public Setters
    public void SetTargetPrefab(eEditablePrefabs target)
    {
        if (!Console.IsInEditor || !Console.IsOpen)
        {
            return;
        }

        currentPrefab = target;
    }
コード例 #3
0
    private GameObject GetPrefabByType(eEditablePrefabs target)
    {
        foreach (PrefabType type in PrefabSets)
        {
            if (type.Type == target)
            {
                return(type.Prefab);
            }
        }

        return(null);
    }
コード例 #4
0
    private void RecordEdit(eEditablePrefabs removedType, Vector3 atPos)
    {
        Vector3 zeroedPos = atPos - currentRoom.transform.position;

        if (placeMode == 1)
        {
            RoomEdits[currentRoom].MakeAddition(currentPrefab, zeroedPos);
        }
        else
        {
            RoomEdits[currentRoom].MakeSubtraction(removedType, zeroedPos);
        }
    }
コード例 #5
0
    public void EditLevel()
    {
        if (!Console.IsInEditor || !Console.IsOpen || currentRoom == null || !isAcitve)
        {
            return;
        }

        RaycastHit hit;

        if (!GetRayHit(out hit))
        {
            return;
        }

        Vector3          targetPos = -Vector3.zero;//= GetTargetPosition;
        eEditablePrefabs hitType   = eEditablePrefabs.Noone;

        if (placeMode == 1)//placing an object
        {
            targetPos = hit.point;
        }
        else //Removing object
        {
            if (IsOfType <Scurrier>(hit) || IsOfType <Brawler>(hit))
            {
                //Deactivate the enemy only. Not adde to data
                hit.transform.gameObject.SetActive(false);
                return;
            }
            else if (IsOfType <HealthFruit>(hit))
            {
                hitType = eEditablePrefabs.HealthFruit;
            }
            else if (IsOfType <OreVein>(hit))
            {
                hitType = eEditablePrefabs.OreVein;
            }
            else
            {
                return;
            }

            targetPos = hit.transform.position;
        }

        if (targetPos == -Vector3.one)
        {
            return;
        }

        //Is this the first time to edit this room?
        if (RoomEdits == null || !RoomEdits.ContainsKey(currentRoom))
        {
            RoomEditData data = new RoomEditData(currentRoom.gameObject.name, basePath, AdditionReferecne, SubtractReference, PrefabSets);
            data.RootRoatation = currentRoom.transform.rotation;
            RoomEdits.Add(currentRoom, data);
        }

        RecordEdit(hitType, targetPos);
        if (placeMode == 1)
        {
            AddEditToScene(targetPos);
        }
        else
        {
            RemoveHitFromScene(hit);
        }
    }
コード例 #6
0
 public void MakeSubtraction(eEditablePrefabs obj, Vector3 atPos)
 {
     Subtractions[obj].Add(atPos);
 }
コード例 #7
0
 public void MakeAddition(eEditablePrefabs obj, Vector3 atPos)
 {
     Additions[obj].Add(atPos);
 }