private Model GetBuildingModel(TownPos townPos, out Matrix tempMatrix) { Model m; Matrix rotation; int intPos = (int)townPos; rotation = (intPos == 4) ? Matrix.Identity : Matrix.CreateRotationY(((float)Math.PI / 3.0f) * -(intPos - 4)); tempMatrix = Matrix.CreateScale(0.00028f) * rotation; switch (model.getTown(townPos).GetBuildingKind(model.GetID())) { case BuildingKind.NoBuilding: m = null; break; case BuildingKind.SourceBuilding: switch (kind) { case HexaKind.Cornfield: m = GameResources.Inst().GetBuildingModel(BuildingModel.Mill); break; case HexaKind.Forest: m = GameResources.Inst().GetBuildingModel(BuildingModel.Saw); break; case HexaKind.Stone: int tempPos = (intPos + hexaRotation) % 6; m = GameResources.Inst().GetStoneSourceBuildingModel(tempPos); rotation = (hexaRotation % 6 == 0) ? Matrix.Identity : Matrix.CreateRotationY(((float)Math.PI / 3.0f) * (hexaRotation % 6)); tempMatrix = Matrix.CreateScale(0.00028f) * rotation; break; default: m = GameResources.Inst().GetBuildingModel(BuildingModel.PastureHouse); //roofID = 0; break; } break; case BuildingKind.FortBuilding: m = GameResources.Inst().GetBuildingModel(BuildingModel.Fort); tempMatrix = Matrix.CreateScale(0.00031f) * rotation; break; case BuildingKind.MarketBuilding: m = GameResources.Inst().GetBuildingModel(BuildingModel.Market); break; case BuildingKind.MonasteryBuilding: m = GameResources.Inst().GetBuildingModel(BuildingModel.Monastery); tempMatrix = Matrix.CreateScale(0.0052f) * rotation; break; default: m = null; break; } return m; }
public void SetTownView(TownPos pos, TownView town) { townView[(int)pos] = town; }
public TownView GetTownView(TownPos pos) { return townView[(int)pos]; }
public void CreateTownView(TownPos pos, Matrix relative) { townView[(int)pos] = new TownView(model.getTown(pos), relative * world); }
public TownModel getTown(TownPos townPos) { return towns[(int)townPos]; }
public ITown GetITown(TownPos townPos) { return towns[(int)townPos]; }