Ejemplo n.º 1
0
 public void AddToConstruction(ShipTile new_tile, ShipTile.Coordinates coordinates)
 {
     /* Called when a new ShipTile is constructed to register it with this ShipConstruction's child ShipTiles. */
     new_tile.transform.parent = ShipTileEditor.main.player_ship.transform;
     new_tile.coordinates      = coordinates;
     new_tile.SetPositionByCoordinates();
     tiles.Add(new_tile);
     tilemap.Insert(
         new_tile.coordinates.x,
         new_tile.coordinates.y,
         new_tile);
 }
Ejemplo n.º 2
0
    public void OnMouseDown()
    {
        /* "Build" this PotentialShipTile.
         *
         * Destroys the PotentialShipTile and replaces it with an OpenShipTile.
         * TODO(Derek): Instead issue a build order, so that construction is not instantaneous.
         *
         * Adds the OpenShipTile to the PlayerShipConstruct's tileset and refreshes the Editor's tile availability.
         */
        if (!valid || !ShipTileEditor.main.player_ship.in_placement_mode)
        {
            return;
        }
        particles.startLifetime = 0f;
        valid = false;
        GameObject   open_ship_tile_object = Instantiate(MainComponentDict.get().open_ship_tile) as GameObject;
        OpenShipTile open_ship_tile        = open_ship_tile_object.GetComponent <OpenShipTile>();

        ShipTile.Coordinates coordinates = ShipTileEditor.main.GetCoordinatesByIndex(editor_index);
        ShipTileEditor.main.player_ship.AddToConstruction(open_ship_tile, coordinates);
        ShipTileEditor.main.NeedsRefresh();
        // This should set a timed construction job, but for now construction is insantaneous.
        ShipTileEditor.main.Refresh();
    }