Exemple #1
0
        public Unit(HexPoint point, AbstractPlayerData player, UnitData data)
        {
            _point = point;
            _player = player;
            _data = data;

            Strength = 10;

            _unitAI = _data.DefaultUnitAI;

            UpdateSpotting();

            InitTransitions();
            InitFormation();

            _entity = new UnitEntity(player, this, _data.ModelName);
            _entity.Point = point;
            _entity.Scale = new Vector3(_data.ModelScale);

            _unitActionBillboard = new BillboardSystem<UnitAction>(MainApplication.Instance.GraphicsDevice, MainApplication.Instance.Content);
            _unitActionBillboard.AddEntity(UnitAction.Idle, Provider.GetAtlas("UnitActionAtlas").GetTexture("Idle"), new Vector2(2, 2));
            _unitActionBillboard.AddEntity(UnitAction.Move, Provider.GetAtlas("UnitActionAtlas").GetTexture("Move"), new Vector2(2, 2));
            _unitActionBillboard.AddEntity(UnitAction.BuildFarm, Provider.GetAtlas("UnitActionAtlas").GetTexture("BuildFarm"), new Vector2(2, 2));
            _unitActionBillboard.AddEntity(UnitAction.BuildRoad, Provider.GetAtlas("UnitActionAtlas").GetTexture("BuildRoad"), new Vector2(2, 2));
            _unitActionBillboard.AddEntity(UnitAction.Found, Provider.GetAtlas("UnitActionAtlas").GetTexture("Found"), new Vector2(2, 2));

            UpdateUnitAction();

            // path mesh
            _pathMesh = new Mesh(MainApplication.Instance.GraphicsDevice, "paths");

            if( TextureManager.Instance.Device == null )
                TextureManager.Instance.Device = MainApplication.Instance.GraphicsDevice;

            TextureManager.Instance.Add("paths", MainApplication.Instance.Content.Load<Texture2D>("Content/Textures/Ground/paths"));
            _pathMesh.LoadContent(MainApplication.Instance.Content);
        }
        public void LoadContent()
        {
            // big water surface to make the world a gigantic ocean
            TextureManager.Instance.Add("ground", _manager.Content.Load<Texture2D>("Content/Textures/Ground/ground"));
            _baseMesh.LoadContent(_manager.Content);
            _baseMesh.AddObject(new MeshedRectangle(new Vector3(0, -0.1f, 0), new Vector3(1000)));

            // cursor
            TextureManager.Instance.Add("cursors", _manager.Content.Load<Texture2D>("Content/Textures/Ground/cursors"));
            _cursorsMesh.LoadContent(_manager.Content);
            _cursorsMesh.AddObject(new HexagonMeshItem8X8(MapData.GetWorldPosition(20, 20), 63));

            _borderMesh.LoadContent(_manager.Content);

            // roads
            TextureManager.Instance.Add("roads", _manager.Content.Load<Texture2D>("Content/Textures/Ground/roads"));
            _roadMesh.LoadContent(_manager.Content);

            // farms
            TextureManager.Instance.Add("farms", _manager.Content.Load<Texture2D>("Content/Textures/Ground/farms"));
            _farmMesh.LoadContent(_manager.Content);

            // rivers
            TextureManager.Instance.Add("rivers", _manager.Content.Load<Texture2D>("Content/Textures/Ground/rivers"));
            _riverMesh.LoadContent(_manager.Content);

            // resources
            _resourceBillboards = new BillboardSystem<string>(_manager.GraphicsDevice, _manager.Content);

            Texture2D resourceBackground = _manager.Content.Load<Texture2D>("Content//Textures//UI//MainView//resourcesback64");
            foreach (Ressource r in Provider.Instance.Ressources.Values)
            {
                if (r.Image != null)
                    _resourceBillboards.AddEntity(r.Name, TextureUtils.Combine(_manager.GraphicsDevice, resourceBackground, r.Image), new Vector2(2, 2));
                else
                    throw new Exception("No image for " + r.Name + " found");
            }

            //_terrainBillboards = new BillboardSystem<EBillBoard>(_manager.GraphicsDevice, _manager.Content);
            //_terrainBillboards.AddEntity(EBillBoard.Wood1, "Content/Textures/Billboards/wood1", new Vector2(3, 3));
            //_terrainBillboards.AddEntity(EBillBoard.Wood2, "Content/Textures/Billboards/wood2", new Vector2(3, 3));
            //_terrainBillboards.AddEntity(EBillBoard.Wood3, "Content/Textures/Billboards/wood3", new Vector2(3, 3));

            //_terrainBillboards.AddEntity(EBillBoard.Pine1, "Content/Textures/Billboards/pine1", new Vector2(3, 3));
            //_terrainBillboards.AddEntity(EBillBoard.Pine2, "Content/Textures/Billboards/pine2", new Vector2(3, 3));

            hMesh.LoadContent(_manager.Content);
            //_billboards.AddEntity(EBillBoard.Jungle1, "Content/Textures/forest/wood1", new Vector2(3, 3));
            //_billboards.AddEntity(EBillBoard.Jungle2, "Content/Textures/forest/wood3", new Vector2(3, 3));
            //_billboards.AddEntity(EBillBoard.Jungle3, "Content/Textures/forest/wood5", new Vector2(3, 3));
        }