public void LoadHouse(HouseData data) { _FloorList = new List <FloorComponent>(); _FloorLookup = new FloorComponent[2, data.Size, data.Size]; foreach (var floor in data.World.Floors) { var floorComponent = new FloorComponent() { Position = new Microsoft.Xna.Framework.Point(floor.X, floor.Y), Level = floor.Level, FloorStyle = floor.Value }; _FloorLookup[floor.Level, floor.X, floor.Y] = floorComponent; _FloorList.Add(floorComponent); } _WallList = new List <WallComponent>(); _WallLookup = new WallComponent[2, data.Size, data.Size]; foreach (var wall in data.World.Walls) { var wallComponent = new WallComponent(wall) { Position = new Microsoft.Xna.Framework.Point(wall.X, wall.Y), Level = wall.Level }; _WallList.Add(wallComponent); _WallLookup[wall.Level, wall.X, wall.Y] = wallComponent; } }
protected override void RenderMap() { // first render the floor for all the rooms List <Region> rooms = Map.GetRegions().Where(r => r is Room).ToList(); foreach (Room room in rooms) { if (room is SquareRoom) { // first calculate the floor size we need SquareRoom sroom = room as SquareRoom; int maxPossibleWidth = sroom.Width; int maxPossibleHeight = sroom.Height; int areaToCover = sroom.Width * sroom.Height; Vector3 floorPlacement = new Vector3(sroom.X, 0, sroom.Y); FloorComponent floor = Floors.Where(f => f.WidthInTiles == sroom.Width && f.DepthInTiles == sroom.Height).FirstOrDefault(); if (floor == null) { throw new Exception("We failed to find a floor for the room " + sroom.Width + " X " + sroom.Height); } FloorComponent renderedComponent = Instantiate(floor, floorPlacement, Quaternion.identity); MapRender.Add(renderedComponent.gameObject); } else { throw new NotImplementedException("We don't know how to render " + room.GetType()); } } }
public void CloseWindow() { FindObjectOfType <MapBuilder>().OpenWindowMap.Remove(_component); _component = null; Debug.Log("Closing window!"); Destroy(gameObject); }
public Blueprint(int width, int height) { this.Width = width; this.Height = height; var numTiles = width * height; this.WallComp = new WallComponent(); WallComp.blueprint = this; this.FloorComp = new FloorComponent(); FloorComp.blueprint = this; RoomColors = new Color[65536]; this.WallsAt = new List <int> [Stories]; this.Walls = new WallTile[Stories][]; this.RoomMap = new uint[Stories][]; this.Floors = new FloorTile[Stories][]; for (int i = 0; i < Stories; i++) { this.WallsAt[i] = new List <int>(); this.Walls[i] = new WallTile[numTiles]; this.Floors[i] = new FloorTile[numTiles]; } }
public static GameObject CreateFromData(FloorComponent component) { var go = Instantiate(Resources.Load <GameObject>("Prefabs/UI/Windows/Editor/FloorMapModelEditor"), GameObject.Find("GlobalCanvas").transform); go.GetComponent <FloorMapModelEditor>().ConfigureFromData(component); return(go); }
public void ConfigureFromData(FloorComponent component) { _component = component; CloseButton.onClick.AddListener(CloseWindow); IdentifierText.text = component.FloorModel.IdName; PositionText.text = component.gameObject.transform.position.ToString(); CanEnterToggle.isOn = component.CanEnter; CanEnterToggle.onValueChanged.AddListener(OnToggle); }
public void SetFloor(short tileX, short tileY, FloorComponent component) { var offset = GetOffset(tileX, tileY); Floor[offset] = component; component.TileX = tileX; component.TileY = tileY; if (!All.Contains(component)) { All.Add(component); } Damage.Add(new BlueprintDamage(BlueprintDamageType.FLOOR_CHANGED, tileX, tileY, 1)); OccupiedTilesDirty = true; }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { _textureSource.Load("forest_pack"); _textureSource.Load("green-fish-rest-to-right-sheet"); // Spawn some test entities var id = EntityId.NewId(); var spriteSheetComponent = new SpriteSheetComponent() { Name = "terrain", Texture = _textureSource.Lookup("forest_pack"), Entries = new SpriteSheetEntry[] { new SpriteSheetEntry { Name = "ground middle", Position = new Point(152, 144), Size = new Point(128, 128) } } }; _world.AddEntity(id, spriteSheetComponent); id = EntityId.NewId(); var spriteComponent = new SpriteComponent() { SpriteSheetName = "terrain", SpriteEntryName = "ground middle" }; var transformComponent = new TransformComponent() { Position = new Vector2(10, 10) }; var floorComponent = new FloorComponent(); _world.AddEntity(id, spriteComponent, transformComponent, floorComponent); }
private void RightClickTileButtonBuilder(FloorComponent floorComponent, int verticalPositionOffSet, Vector3 pos) { if (floorComponent.CanEnter == false) { return; } var go = Instantiate(Resources.Load <GameObject>("Prefabs/SampleButton")); go.transform.SetParent(_rightClickMenu.transform, false); go.transform.localScale = Vector3.one; var b = go.GetComponent <Button>(); b.onClick.AddListener(() => { FindObjectOfType <PlayerController>().SetSelectedPlayerCharacterPath(pos); ClearRightClickMenu(); }); b.GetComponentInChildren <Text>().text = "Walk here"; var rt = go.GetComponent <RectTransform>(); rt.transform.position = new Vector3(rt.transform.position.x, rt.transform.position.y - verticalPositionOffSet); }
public void OpenEditorWindow(FloorComponent floorComponent) { }
public Vertice(FloorComponent floorComponent) { Position = floorComponent.transform.position; FloorComponent = floorComponent; }