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);
 }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 7
0
        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;
        }
Exemplo n.º 8
0
        /// <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);
        }
Exemplo n.º 10
0
 public void OpenEditorWindow(FloorComponent floorComponent)
 {
 }
Exemplo n.º 11
0
 public Vertice(FloorComponent floorComponent)
 {
     Position       = floorComponent.transform.position;
     FloorComponent = floorComponent;
 }