1
0
Fork 0

Make tile positions relative

This commit is contained in:
Piegames 2018-04-22 16:46:49 +02:00
parent 8ebeb2b982
commit b034e23fd6
2 changed files with 29 additions and 7 deletions

View file

@ -150,6 +150,19 @@ public class DungeonGenerator {
rooms.Remove(start);
rooms.Remove(end);
foreach (GenRoom r in rooms)
makeRoomRelative(r);
makeRoomRelative(start);
makeRoomRelative(end);
makeRoomRelative(path);
}
public void makeRoomRelative(GenRoom room) {
room.roomPosition = room.bounds.position;
foreach (Vector2Int v in room.tiles.Keys) {
v.Set((v - room.roomPosition).x, (v-room.roomPosition).y);
}
}
public static void AddStraightHorizontal(HashSet<GenRoom> rooms, GenEdge ed) {

View file

@ -3,13 +3,22 @@ using System.Collections.Generic;
using UnityEngine;
public class GenRoom {
// ---Internal for generation only---
// TODO make them package protcted please
public RectInt bounds = new RectInt();
public Dictionary<Vector2Int, Room.TileType> tiles = new Dictionary<Vector2Int, Room.TileType>();
public HashSet<Vector2Int> doorsUp = new HashSet<Vector2Int>();
public HashSet<Vector2Int> doorsDown = new HashSet<Vector2Int>();
public HashSet<Vector2Int> doorsLeft = new HashSet<Vector2Int>();
public HashSet<Vector2Int> doorsRight = new HashSet<Vector2Int>();
// --- The final room genration result ---
// The position of the anchor of the room in world space. This should be the top left corner of the room, but may be any point in the world.
public Vector2Int roomPosition;
// All positions are in room space relative to the room's anchor
public Dictionary<Vector2Int, Room.TileType> tiles = new Dictionary<Vector2Int, Room.TileType>();
public float Distance(GenRoom r) {
return Math.Abs(GetCenter().x - r.GetCenter().x) + Math.Abs(GetCenter().y - r.GetCenter().y);
}