示例#1
0
        public Map BuildMap(String MapID)
        {
            Map         myMapInfo = new Map(MapID);
            List <Rule> myRules   = new List <Rule>()
            {
                new MaterialRuleStart(),
                new RuleCreateSecondMaterialLayer(),
                new RuleCreateThirdMaterialLayer(),
                new RuleFourthLayer()
            };
            MaterialsRuleEngine    myMaterialsEngine = new MaterialsRuleEngine(myRules, new List <Conclusion>());
            List <Rule>            myBuildingRules   = new List <Rule>();
            List <Material>        myMaterials       = myMaterialsEngine.Decide();
            SimpleProbabilityTable myTable           = new SimpleProbabilityTable();

            myTable.AddProbabilityItem(myMaterials.ConvertAll <IProbabilityTableItem>(delegate(Material A)
            {
                return(A);
            }));
            myMapInfo.SetMaterialChanceTable(myTable);
            BuildingsRuleEngine myBuildingsEngine = new BuildingsRuleEngine(myMapInfo, myBuildingRules, new List <Conclusion>());
            List <RoomData>     myModifiedTiles   = myBuildingsEngine.Decide();

            foreach (RoomData A in myModifiedTiles)
            {
                myMapInfo.PlaceRoomObjectAtPosition(Vector3.Zero, A); //Vector3 WorldPosition should be done in the building engine
            }
            SaveMap(myMapInfo);
            return(myMapInfo);
        }
示例#2
0
 public void SetMaterialChanceTable(SimpleProbabilityTable myTable)
 {
     this.Materials = myTable;
 }