RTSEngine.Graphics.RTSBuildingModel.Hook C# (CSharp) Method

Hook() public method

public Hook ( RTSRenderer renderer, GameState s, int ti, int fti, int building ) : void
renderer RTSRenderer
s RTSEngine.Data.GameState
ti int
fti int
building int
return void
        public void Hook(RTSRenderer renderer, GameState s, int ti, int fti, int building)
        {
            // Filter For Unit Types
            RTSTeam team = s.teams[ti];
            Data = team.Race.Buildings[building];
            fTeam = s.teams[fti];
            eTeamIndex = ti;
            fTeamIndex = fti;
            bType = building;

            // Create Instance Buffer
            visible = new List<VisibleBuilding>();
            instVerts = new VertexRTSAnimInst[Data.MaxCount];

            for(int i = 0; i < instVerts.Length; i++)
                instVerts[i] = new VertexRTSAnimInst(Matrix.Identity, 1);
            dvbInstances = renderer.CreateDynamicVertexBuffer(VertexRTSAnimInst.Declaration, instVerts.Length, BufferUsage.WriteOnly);
            dvbInstances.SetData(instVerts);
            dvbInstances.ContentLost += (sender, args) => { rebuildDVB = true; };
            rebuildDVB = false;
        }

Usage Example

示例#1
0
        private void LoadTeamVisuals(GameState state, int ti)
        {
            RTSTeam team = state.teams[ti];

            // Create Unit Graphics
            var ums = ti == teamIndex ? FriendlyUnitModels : NonFriendlyUnitModels;

            for (int i = 0; i < team.Race.ActiveUnits.Length; i++)
            {
                int          ui     = team.Race.ActiveUnits[i].Index;
                RTSUnitData  uData  = team.Race.Units[ui];
                RTSUnitModel uModel = RTSUnitDataParser.ParseModel(this, new FileInfo(uData.InfoFile), team.Race);
                uModel.Hook(this, state, ti, team.Race.ActiveUnits[i].Index);
                uModel.ColorScheme = team.ColorScheme;
                ums.Add(uModel);
            }

            // Create Building Graphics
            var bms = ti == teamIndex ? FriendlyBuildingModels : NonFriendlyBuildingModels;

            for (int i = 0; i < team.Race.ActiveBuildings.Length; i++)
            {
                RTSBuildingModel bModel = RTSBuildingDataParser.ParseModel(this, new FileInfo(team.Race.ActiveBuildings[i].InfoFile), team.Race);
                bModel.Hook(this, state, ti, teamIndex, team.Race.ActiveBuildings[i].Index);
                bModel.ColorScheme = team.ColorScheme;
                bms.Add(bModel);
            }
        }