示例#1
0
    void Start()
    {
        // get references
        _tileDB = TileDatabase.instance;
        _camera = Camera.main;

        // freeze camera
        _camera.GetComponent <SimpleCameraController>().Freeze();

        // generate standard 10x10 grid
        GenerateGrid(_gridDefaultSize.x, _gridDefaultSize.y);

        // add all existing tiletypes to dropdown menu
        _dropDownTiles.options.Clear();
        for (int i = 0; i < _tileDB.tileCount; i++)
        {
            _dropDownTiles.options.Add(new Dropdown.OptionData(_tileDB.GetTile(i).typeName));
        }

        // create tile of first type in typearray
        _selectedTile     = Instantiate(_tileDB.GetTile(0).data.prefab, _tileFolder);
        _selectedTileType = _tileDB.GetTile(0).typeName.ToLower();
        _currentEditMode  = EDIT_MODE.PLACE_SINGLE;

        // add collider and set layer of tile (need this to be able to select alredy placed tiles)
        AddcolliderToSelectedTile();

        _currentMinTintText.text = _tintMin.value.ToString("0.00");
        _currentMaxTintText.text = _tintMax.value.ToString("0.00");
    }
示例#2
0
文件: Tile.cs 项目: Savlon/__GAME
    public Tile(int id, bool passable = true, bool isBaseTile = true)
    {
        _id         = (byte)id;
        _passable   = passable;
        _isBaseTile = isBaseTile;

        SetupTileReferences();

        if (TileDatabase.tiles [id] != null)
        {
            Debug.LogError("Tile Database already contains ID: " + id);
        }

        TileDatabase.tiles [id] = this;

        _tileset        = new Sprite[47];
        _tileset        = TileDatabase.GetTilesetSprites(id);
        _tilesetSprites = new Dictionary <int, Sprite> ();

        Image = _tileset[0];

        for (int i = 0; i < _tileset.Length; i++)
        {
            _tilesetSprites.Add(i, _tileset[i]);
        }
    }
 public void SetColor(TileColorType _color)
 {
     if (renderer_)
     {
         renderer_.color = TileDatabase.Convert(_color);
     }
 }
示例#4
0
 public Database()
 {
     ItemDatabase      = new ItemDatabase();
     TileDatabase      = new TileDatabase();
     WorldDatabase     = new WorldDatabase();
     BiomeDatabase     = new BiomeDatabase();
     StructureDatabase = new StructureDatabase();
 }
示例#5
0
    public Tile(Vector2DInt position, string tileName, float yRotation, float tintStrength, Transform tilesFolder)
    {
        _tileDB       = TileDatabase.instance;
        model         = _tileDB.GetTile(tileName);
        this.position = position;
        currentHealth = model.data.health;

        CreateView(position, yRotation, tintStrength, tilesFolder);
        CreateSounds();
    }
示例#6
0
    public void LoadTiles(string name)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(TileDatabase));
        FileStream    stream     = new FileStream(Application.dataPath + "/ConfigFiles/" + name, FileMode.Open);

        tileDB = serializer.Deserialize(stream) as TileDatabase;
        stream.Close();
        for (int i = 0; i < 25; i++)
        {
            GameObject go = GameObject.Find("Tile" + tileDB.list[i].TileNumber.ToString());
            TileEntry  tl = tileDB.list[tileDB.list.FindIndex(item => (item.TileNumber - 1 == i))];
            go.transform.eulerAngles = (new Vector3(0, 0, tl.initialRotation));
            go.tag = tl.tileType.ToString();
            go.gameObject.GetComponent <SpriteRenderer>().sprite = sprites[(int)tl.tileType];
            Text texto = go.transform.Find("Canvas").transform.Find("Text").GetComponent <Text>();
            if (i == 0)
            {
                masterFont = texto;
            }
            //texto.text = tl.texto;
            texto.text = mateDB.list[i].Surname;
            //  Vector3 positionVec = textPos[i];
            Vector3 positionVec = textPos[tileDB.list[i].TileNumber - 1];
            Cuadrantes[tileDB.list[i].TileNumber - 1] = tl.cuadrante;
            switch (tl.cuadrante)
            {
            case 1:
                positionVec.y += 0.3f;
                //positionVec.x += 0.25f;
                break;

            case 2:
                //positionVec.y += 0.25f;
                positionVec.x -= 0.3f;
                break;

            case 3:
                positionVec.y -= 0.3f;
                //positionVec.x -= 0.25f;
                break;

            case 4:
                //positionVec.y -= 0.25f;
                positionVec.x += 0.3f;
                break;
            }
            texto.transform.position = positionVec;
            texto.color    = Color.black;
            texto.fontSize = 8;
            texto.font     = masterFont.font;
            //texto.fontStyle = FontStyle.Bold;
            texto.transform.eulerAngles = new Vector3(0f, 0f, 45f);
        }
        tileDB.list.Clear();
    }
示例#7
0
 public virtual void Initialize(Game1 gameReference, Player playerReference, Sadako sadakoReference, InventoryHandler inventoryHandler, LocationHandler locationHandler, EventHandler eventHandler, RoomDatabase roomDatabase, TileDatabase tileDatabase)
 {
     this.gameReference = gameReference;
     this.playerReference = playerReference;
     this.sadakoReference = sadakoReference;
     this.inventoryHandler = inventoryHandler;
     this.locationHandler = locationHandler;
     this.eventHandler = eventHandler;
     this.tileDatabase = tileDatabase;
     this.roomDatabase = roomDatabase;
 }
示例#8
0
 public virtual void Initialize(Game1 gameReference, Player playerReference, Sadako sadakoReference, InventoryHandler inventoryHandler, LocationHandler locationHandler, EventHandler eventHandler, RoomDatabase roomDatabase, TileDatabase tileDatabase)
 {
     this.gameReference    = gameReference;
     this.playerReference  = playerReference;
     this.sadakoReference  = sadakoReference;
     this.inventoryHandler = inventoryHandler;
     this.locationHandler  = locationHandler;
     this.eventHandler     = eventHandler;
     this.tileDatabase     = tileDatabase;
     this.roomDatabase     = roomDatabase;
 }
示例#9
0
    // Need a Method to get all files, in a list

    public void LoadFile(string fPath)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(TileDatabase));
        //FileStream stream = new FileStream(Application.dataPath + "/StreamingAssets/XML/tile_data.xml", FileMode.Open);
        //FileStream stream = new FileStream(Application.persistentDataPath + "/tile_data.xml", FileMode.Open);
        FileStream stream = new FileStream(Application.persistentDataPath + "/" + fPath, FileMode.Open);

        tileDB = serializer.Deserialize(stream) as TileDatabase;
        stream.Close();

        LoadTiles(tileDB);
    }
示例#10
0
 void Start()
 {
     tileDb           = GameObject.FindGameObjectWithTag("Database").GetComponent <TileDatabase> ();
     genPosition      = levelGenerator.gameObject.transform;
     spawner          = GameObject.FindGameObjectWithTag("Spawner");
     spawnerTransform = spawner.GetComponent <Transform> ();
     //Assign the tileRemover GameObject in the scene to tileRemover
     tileRemover = GameObject.FindGameObjectWithTag("Remover");
     //Assign the transform of tileRemover to removerTransform
     removerTransform = tileRemover.GetComponent <Transform>();
     //Assign a value to removeSize
     removeSize = tileSize + 5;
 }
示例#11
0
 void Start()
 {
     //Find the script with all the tiles and assign it to tileDb
     tileDb = GameObject.FindGameObjectWithTag("Database").GetComponent <TileDatabase> ();
     //Assign the transform of the LevelGenerator to genPosition
     genPosition = levelGenerator.gameObject.transform;
     //Assign the spawner GameObject in the scene to spawner
     spawner = GameObject.FindGameObjectWithTag("Spawner");
     //Assign the transform of spawner to spawnerTransform
     spawnerTransform = spawner.GetComponent <Transform> ();
     //Assign the tileRemover GameObject in the scene to tileRemover
     tileRemover = GameObject.FindGameObjectWithTag("Remover");
     //Assign the transform of tileRemover to removerTransform
     removerTransform = tileRemover.GetComponent <Transform>();
     //Assign a value to removeSize - the +5 is an offset to ensure it only hits one row of tiles
     removeSize = tileSize + 5;
 }
示例#12
0
    public void Awake()
    {
        instance = this;

        foreach (TileModel tileModelToSerialize in tilesToSerialize)
        {
            _tileTypes.Add(tileModelToSerialize.typeName.ToLower());
            _tiles.Add(tileModelToSerialize.typeName.ToLower(), tileModelToSerialize);
        }

        // the model that will represent a edgetile, this should not be exposed in the regular list becuase it is a constant tiletype that never should be edited and niether have to exist in editor
        TileModel edgeModel = new TileModel();

        edgeModel.MakeEdgeTile();
        _tileTypes.Add(edgeModel.typeName.ToLower());
        _tiles.Add(edgeModel.typeName.ToLower(), edgeModel);
    }
示例#13
0
    void Start()
    {
        //Check if instance already exists
        if (instance == null)
        {
            //if not, set instance to this
            instance = this;
        }

        //If instance already exists and it's not this:
        else if (instance != this)
        {
            //Then destroy this. This enforces our singleton pattern, meaning there can only ever be one instance of a GameManager.
            Destroy(gameObject);
        }

        biomes = FindObjectsOfType <Biome>();

        player = GameObject.Find("Player").GetComponent <Player>();
        if (player.inField)
        {
            boardHolder = new GameObject("Board").transform;
        }

        manager      = GameManager.instance;
        tileDatabase = gameObject.GetComponent <TileDatabase>();

        for (int i = 0; i < pregeneratedStructures.Length; i++)
        {
            RegisterStructureTiles(pregeneratedStructures[i]);
        }

        if (LoadData.instance.dataLoaded)
        {
            Load();
        }
    }
 public void OnEnable()
 {
     m_Target = (TileDatabase)target;
 }
示例#15
0
 public override void Initialize(Game1 gameReference, Player playerReference, Sadako sadakoReference, InventoryHandler inventoryHandler, LocationHandler locationHandler, EventHandler eventHandler, RoomDatabase roomDatabase, TileDatabase tileDatabase)
 {
     base.Initialize(gameReference, playerReference, sadakoReference, inventoryHandler, locationHandler, eventHandler, roomDatabase, tileDatabase);
 }
示例#16
0
 public override void Initialize(Game1 gameReference, Player playerReference, Sadako sadakoReference, InventoryHandler inventoryHandler, LocationHandler locationHandler, EventHandler eventHandler, RoomDatabase roomDatabase, TileDatabase tileDatabase)
 {
     base.Initialize(gameReference, playerReference, sadakoReference, inventoryHandler, locationHandler, eventHandler, roomDatabase, tileDatabase);
 }
示例#17
0
 void OnDestroy()
 {
     instance = null;
 }
 public void OnEnable()
 {
     m_Target = (TileDatabase) target;
 }
示例#19
0
 // Use this for initialization
 void Start()
 {
     tileDb             = GameObject.FindGameObjectWithTag("Database").GetComponent <TileDatabase> ();
     transform.rotation = Quaternion.Euler(tileDb.tileRots[Random.Range(0, tileDb.tileRots.Count)]);
 }
示例#20
0
    public void LoadTiles(TileDatabase db)
    {
        bool haveStart = false;

        foreach (TileEntry te in db.list)
        {
            //gameSU.CreateTile(new IntVector2(te.tileX,te.tileZ),)
            switch (te.tileType)
            {
            case TileType.Empty:
                gameSU.CreateTile(new IntVector2(te.tileX, te.tileZ), gameSU.emptyTilePrefab, te.tileType, te.tileRot);
                break;

            case TileType.Hole:
                gameSU.CreateTile(new IntVector2(te.tileX, te.tileZ), gameSU.holeTilePrefab, te.tileType, te.tileRot);
                break;

            case TileType.SingleSideWall:
                gameSU.CreateTile(new IntVector2(te.tileX, te.tileZ), gameSU.SingleSideWallTilePrefab, te.tileType, te.tileRot);
                break;

            case TileType.DoubleSideWall:
                gameSU.CreateTile(new IntVector2(te.tileX, te.tileZ), gameSU.DoubleSideWallTilePrefab, te.tileType, te.tileRot);
                break;

            case TileType.CornerWall:
                gameSU.CreateTile(new IntVector2(te.tileX, te.tileZ), gameSU.CornerWallTilePrefab, te.tileType, te.tileRot);
                break;

            case TileType.HoleSingleWall:
                gameSU.CreateTile(new IntVector2(te.tileX, te.tileZ), gameSU.holeSingleWallTilePrefab, te.tileType, te.tileRot);
                break;

            case TileType.HoleCornerWall:
                gameSU.CreateTile(new IntVector2(te.tileX, te.tileZ), gameSU.holeCornerWallTilePrefab, te.tileType, te.tileRot);
                break;

            case TileType.StartEmpty:
                if (!haveStart)
                {
                    gameSU.CreateTile(new IntVector2(te.tileX, te.tileZ), gameSU.StartEmptyTilePrefab, te.tileType, te.tileRot);
                    haveStart = true;
                }
                else
                {
                    gameSU.CreateTile(new IntVector2(te.tileX, te.tileZ), gameSU.emptyTilePrefab, TileType.Empty, te.tileRot);
                }
                break;

            case TileType.ExitEmpty:
                gameSU.CreateTile(new IntVector2(te.tileX, te.tileZ), gameSU.EndEmptyTilePrefab, te.tileType, te.tileRot);
                break;

            default:
                gameSU.CreateTile(new IntVector2(te.tileX, te.tileZ), gameSU.emptyTilePrefab, TileType.Empty, te.tileRot);
                break;
            }
        }

        gameSU.CreateMarble();
    }