Пример #1
0
        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;
        }
Пример #2
0
 public void SetTownView(TownPos pos, TownView town)
 {
     townView[(int)pos] = town;
 }
Пример #3
0
 public TownView GetTownView(TownPos pos)
 {
     return townView[(int)pos];
 }
Пример #4
0
 public void CreateTownView(TownPos pos, Matrix relative)
 {
     townView[(int)pos] = new TownView(model.getTown(pos), relative * world);
 }
Пример #5
0
 public TownModel getTown(TownPos townPos)
 {
     return towns[(int)townPos];
 }
Пример #6
0
 public ITown GetITown(TownPos townPos)
 {
     return towns[(int)townPos];
 }