Пример #1
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        SetPiece myScript = (SetPiece)target;

        if (GUILayout.Button("Build Set Piece"))
        {
            myScript.DoSetup();
        }
    }
Пример #2
0
    public Tile()
    {
        gc = GameController.main;

        //things[0] = new SetPiece(gc.setPiecePrefs[0]);
        things[1] = new SetPiece(gc.setPiecePrefs[0]);
        //things[2] = new SetPiece(gc.setPiecePrefs[0]);
        things[3] = new SetPiece(gc.setPiecePrefs[0]);
        //things[4] = new SetPiece(gc.setPiecePrefs[0]);
        things[5] = new SetPiece(gc.setPiecePrefs[0]);
    }
Пример #3
0
        public PlatformHelper(List <Platform> platforms, Lava lava)
        {
            this.platforms = platforms;
            this.lava      = lava;

            setPieces = new List <SetPiece>();
            random    = new Random();

            SetPiece.Initialize(platforms);

            SimpleEvent.AddEvent(EventTypes.LISTENER, new ListenerEventData(EventTypes.RESET, this));
        }
Пример #4
0
    public void GenerateSetPieces(LevelManager lMan)
    {
        transform.position = new Vector3((chunkPosX * GlobalDataContainer.chunkWidth * GlobalDataContainer.tileWidth), (chunkPosY * GlobalDataContainer.chunkHeight * GlobalDataContainer.tileHeight), 0);
        for (int i = 0; i < slots.Count; i++)
        {
            GameObject obj = Instantiate(slots[i].possiblePieces[Random.Range(0, slots[i].possiblePieces.Count)].gameObject);
            obj.transform.SetParent(this.transform);
            obj.transform.localPosition = new Vector3(slots[i].xPos * GlobalDataContainer.tileWidth, slots[i].yPos * GlobalDataContainer.tileHeight, 0);
            SetPiece newSet = obj.GetComponent <SetPiece>();
            slots[i].attachedPiece = newSet;
            slots[i].filled        = true;
            //TODO: add active objects to level manager.
        }

        PopulateTileGrid();
    }
Пример #5
0
    void ScanMap()
    {
        foreach (Texture2D map in mapData)
        {
            GameObject newMap = new GameObject(map.name);
            processedTiles.Clear();
            for (int i = 0; i < map.width; i++)
            {
                for (int j = 0; j < map.height; j++)
                {
                    GenerateTile(map, newMap, j, i);
                }
            }

            switch (type)
            {
            case MapType.CHUNK:

                GameObject baseTiles = new GameObject("Base Tiles");
                baseTiles.transform.SetParent(newMap.transform);
                baseTiles.AddComponent <SetPiece>();
                SetPiece piece = baseTiles.GetComponent <SetPiece>();
                piece.grid.AddRange(processedTiles);
                piece.Width  = map.width;
                piece.Height = map.height;

                newMap.AddComponent <LevelChunk>();
                LevelChunk tempChunk = newMap.GetComponent <LevelChunk>();
                tempChunk.baseTiles = piece;
                Object prefab = PrefabUtility.CreatePrefab("Assets/Resources/Prefabs/LevelPrefabs/LevelChunks/" + map.name + ".prefab", newMap);
                //AssetDatabase.CreateAsset(newMap, "Assets/Resources/Prefabs/LevelPrefabs/LevelChunks/" + map.name);
                break;

            case MapType.SETPIECE:
                newMap.AddComponent <SetPiece>();
                SetPiece tempPiece = newMap.GetComponent <SetPiece>();
                tempPiece.grid.AddRange(processedTiles);
                tempPiece.Width  = map.width;
                tempPiece.Height = map.height;
                AssetDatabase.CreateAsset(newMap, "Assets/Resources/Prefabs/LevelPrefabs/SetPieces/" + map.name);
                break;
            }
        }
    }
Пример #6
0
        public void Update(float dt)
        {
            for (int i = 0; i < setPieces.Count; i++)
            {
                SetPiece setPiece = setPieces[i];

                if (setPiece.Destroyed)
                {
                    setPieces.RemoveAt(i);
                }
                else
                {
                    setPiece.Update(dt);
                }
            }

            for (int i = 0; i < platforms.Count; i++)
            {
                Platform platform = platforms[i];

                if (platform.Destroyed)
                {
                    platforms.RemoveAt(i);
                }
                else
                {
                    BoundingBox2D boundingBox = platform.BoundingBox;
                    Vector2       bottomLeft  = new Vector2(boundingBox.Left, boundingBox.Bottom);
                    Vector2       bottomRight = new Vector2(boundingBox.Right, boundingBox.Bottom);

                    if (lava.CheckSubmerged(bottomLeft) || lava.CheckSubmerged(bottomRight))
                    {
                        platform.Destroy();
                        platforms.RemoveAt(i);
                    }
                    else
                    {
                        platform.Update(dt);
                    }
                }
            }

            GeneratePlatforms();
        }
Пример #7
0
    public override void DrawTask(Scene scene)
    {
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Target");
        Target = (Transform)EditorGUILayout.ObjectField(Target, typeof(Transform), true);
        EditorGUILayout.EndHorizontal();

        if (Target == null)
        {
            EditorGUILayout.HelpBox($"Target Cannot be empty", MessageType.Error);
        }

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("SetPiece");
        SetPiece = (SetPiece)EditorGUILayout.ObjectField(SetPiece, typeof(SetPiece), true);
        EditorGUILayout.EndHorizontal();

        if (SetPiece == null)
        {
            EditorGUILayout.HelpBox($"SetPiece Cannot be empty", MessageType.Error);
        }

        base.DrawTask(scene);
    }