コード例 #1
0
    private void InstantiatePlacedObject(Vector2 worldPosition, IPlacedObject objectToPlace, bool cloneObject, ILevelElement levelElement = null)
    {
        IPlacedObject placedObject;

        if (cloneObject)
        {
            placedObject = CloneObjectToPlace(objectToPlace);
            ((PlacedObject)placedObject).transform.position = worldPosition;
        }
        else
        {
            placedObject = objectToPlace;
        }

        if (placedObject.Type == PrefabType.LEVELELEMENT)
        {
            //objectDeletionModule.RemoveWallFromTileMap(placedObject);
            Destroy(placedObject.Prefab);
            if (levelElement == null)
            {
                levelElement = CreateLevelElement(placedObject);
            }

            placedObject.Prefab = AssignLevelElementToPlacedObject(levelElement);
            AddWallToTileMap(placedObject.Prefab);

            DestroyeWallSpriteComponent(placedObject);
            AddSpriteRendererForWall(placedObject);

            levelDataManager.AddLevelElement(levelElement);
            bool outerBoundWall = objectInformationModule.CheckForOuterBoundWall(placedObject);
            if (outerBoundWall)
            {
                placedObject.SetProtectedObject(true);
            }
        }

        if (objectToPlace.Type is PrefabType.PLAYER)
        {
            objectInformationModule.SetPlayerExists(true);
        }

        IList <ILevelTile> levelTiles = GetLevelTiles(placedObject, worldPosition, levelElement);

        placedObject.SetupInstantiatedObject(levelTiles, transform);
        LevelCreator.GetInstance().GetInScenePlacedObjects()[placedObject.ObjectId] = placedObject;
    }
コード例 #2
0
    private void DeleteObjectIntern(IPlacedObject hoveredObject, bool RemoveFromDict)
    {
        if (RemoveFromDict)
        {
            RemoveObjectFromDictionary(inScenePlacedObjects, hoveredObject);
        }

        if (hoveredObject.Type == PrefabType.LEVELELEMENT)
        {
            RemoveWallFromTileMap(hoveredObject);
            RemoveLevelElementFromLevelTile(hoveredObject);
            levelDataManager.RemoveLevelElement(hoveredObject);
        }

        if (hoveredObject.Type is PrefabType.PLAYER)
        {
            objectInformationModule.SetPlayerExists(false);
        }

        DestroyPlacedObject(hoveredObject);
        hoveredObject = null;
    }