Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.77 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System;
  5.  
  6. public class WorldHandler : MonoBehaviour
  7. {
  8.     public static WorldHandler Instance { get; protected set; }
  9.     public Sprite floorSprite;
  10.  
  11.     public World world{get; protected set;}
  12.  
  13.     private void Start()
  14.     {
  15.         if(Instance != null)
  16.         {
  17.             Debug.LogError("There should not be two world controllers");
  18.         }
  19.         Instance = this;
  20.         //Create the world
  21.         world = new World();
  22.         //Create a GameObject for each tile
  23.         for (int x = 0; x < world.Width; x++)
  24.         {
  25.             for (int y = 0; y < world.Height; y++)
  26.             {
  27.                 Tile tile_data = world.GetTileAt(x, y);
  28.                 GameObject tile_go = new GameObject();
  29.                 tile_go.name = "Tile_" + x + "_" + y;
  30.                 tile_go.transform.position = new Vector3(tile_data.X, tile_data.Y, 0);
  31.                 tile_go.transform.SetParent(this.transform, true);
  32.                 //Add sprite renderer but without sprite
  33.                 tile_go.AddComponent<SpriteRenderer>();
  34.  
  35.                 tile_data.RegisterTileTypeChangedCallback((tile) => { OnTileTypeChanged(tile, tile_go); });
  36.             }
  37.         }
  38.         world.RandomizeTiles();
  39.     }
  40.  
  41.  
  42.     void OnTileTypeChanged(Tile tile_data, GameObject tile_go)
  43.     {
  44.         if (tile_data.Type == Tile.TileType.Floor)
  45.         {
  46.             tile_go.GetComponent<SpriteRenderer>().sprite = floorSprite;
  47.         }
  48.         else if(tile_data.Type == Tile.TileType.Empty)
  49.         {
  50.             tile_go.GetComponent<SpriteRenderer>().sprite = null;
  51.         }
  52.         else
  53.         {
  54.             Debug.LogError("OnTileTypeChanged - Unrecognized tile type");
  55.         }
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement