Beispiel #1
0
 // Use this for initialization
 void Start()
 {
     car           = GameObject.Find("Classic_car_1955_style1");
     s             = GameObject.Find("scripts/Steering").GetComponent <Steering>().space;
     steeringWheel = GameObject.Find("steeringpivot");
     Update();
 }
 public ConfigFolderNode LoadFolder(ITreeNode parent, IVirtualFolder folder)
 {
     foreach (var holder in CommonSpace.GetAllAddons())
     {
         var hnd  = (IConfigNodeHandler)holder.InstanceModel;
         var node = hnd.LoadFolder(parent, folder);
         if (node != null)
         {
             return(node);
         }
     }
     return(null);
 }
 public ConfigFileNode LoadSubFile(ConfigFileNode parent, IVirtualFile file)
 {
     foreach (var holder in CommonSpace.GetAllAddons())
     {
         var hnd  = (IConfigNodeHandler)holder.InstanceModel;
         var node = hnd.LoadSubFile(parent, file);
         if (node != null)
         {
             return(node);
         }
     }
     return(null);
 }
    private static void AddCommonSpaceSideFurnishing(CommonSpace room, string[,,] grid)
    {
        var population = room.inhabitants.Count;
        var size       = Mathf.Sqrt(DesignedBuilding.monsterRoomSizes[room.inhabitants[0].generalType]);
        int bedType    = ActiveCastleLivingQuartersGen.GetBedType(room);

        if (bedType == 1)
        {
            population /= 2;
        }
        bool fancy = (bedType >= 6);

        population /= 2;
        Dictionary <string, GameObject> furniture;
        Dictionary <string, float>      furnitureProbs;

        if (fancy)
        {
            furniture      = prefabs["castle"]["commonSpaceSideFurnitureFancy"];
            furnitureProbs = prefabProbability["castle"]["commonSpaceSideFurnitureFancy"];
        }
        else
        {
            furniture      = prefabs["castle"]["commonSpaceSideFurniture"];
            furnitureProbs = prefabProbability["castle"]["commonSpaceSideFurniture"];
        }
        var potentialSpots = LevelGenRoomUtils.GetPotentialSideDressingSpots(room, grid);

        foreach (var spot in potentialSpots)
        {
            var roll = Random.Range(0, 100);
            if (roll < 100 * population / (float)potentialSpots.Count)
            {
                var xFudge        = Random.Range(-0.05f, 0.05f);
                var yFudge        = Random.Range(-0.05f, 0.05f);
                var rotationFudge = Random.Range(-2.5f, 2.5f);
                var wallRotation  = LevelGenGridUtils.GetWallRotation((int)spot.x, (int)spot.y, room.floor, grid);
                var xAdjust       = LevelGenGridUtils.GetXSideDressingAdjustment((int)spot.x, (int)spot.y, room.floor, grid);
                var yAdjust       = LevelGenGridUtils.GetYSideDressingAdjustment((int)spot.x, (int)spot.y, room.floor, grid);
                var obj           = LevelGenInstantiationUtils.InstantiateBlockObject(furniture, furnitureProbs, xAdjust + xFudge + spot.x, yAdjust + yFudge + spot.y);
                room.dressingLocations.Add(spot);
                obj.transform.localScale = new Vector3(size, size, size);
                obj.transform.Rotate(0, rotationFudge + wallRotation, 0);
            }
        }
    }
Beispiel #5
0
 public ISpecificRepresentation TryFindRepresentation(string objtype)
 {
     lock (m_reprCache)
     {
         if (m_reprCache.ContainsKey(objtype))
         {
             return(m_reprCache[objtype]);
         }
     }
     foreach (var item in CommonSpace.GetAllAddons())
     {
         ISpecificRepresentation repr = (ISpecificRepresentation)item.CreateInstance();
         if (repr.ObjectType == objtype)
         {
             lock (m_reprCache)
             {
                 m_reprCache[objtype] = repr;
             }
             return(repr);
         }
     }
     return(null);
 }
Beispiel #6
0
 public ISpecificRepresentation FindByElement(string elemName)
 {
     lock (m_reprElemCache)
     {
         if (m_reprElemCache.ContainsKey(elemName))
         {
             return(m_reprElemCache[elemName]);
         }
     }
     foreach (var item in CommonSpace.GetAllAddons())
     {
         ISpecificRepresentation repr = (ISpecificRepresentation)item.CreateInstance();
         if (repr.XmlElementName == elemName)
         {
             lock (m_reprCache)
             {
                 m_reprElemCache[elemName] = repr;
             }
             return(repr);
         }
     }
     return(null);
 }
 public static void AddDressing(CommonSpace room, string[,,] grid)
 {
     AddCommonSpaceTables(room);
     AddCommonSpaceSideFurnishing(room, grid);
 }
    private static void AddCommonSpaceTables(CommonSpace room)
    {
        var population = room.inhabitants.Count;
        var size       = Mathf.Sqrt(DesignedBuilding.monsterRoomSizes[room.inhabitants[0].generalType]);
        int bedType    = ActiveCastleLivingQuartersGen.GetBedType(room);

        if (bedType == 1)
        {
            population /= 2;
        }
        population /= 2;
        bool fancy = (bedType >= 6);
        Dictionary <string, GameObject> tables;
        Dictionary <string, float>      tableProbs;

        if (!fancy)
        {
            tables     = prefabs["castle"]["tables"];
            tableProbs = prefabProbability["castle"]["tables"];
        }
        else
        {
            tables     = prefabs["castle"]["tablesFancy"];
            tableProbs = prefabProbability["castle"]["tablesFancy"];
        }
        int tablesX = (int)Mathf.Sqrt(population);

        if (tablesX == 0)
        {
            tablesX = 1;
        }
        int   tablesY       = population / tablesX;
        int   tableRotation = Random.Range(0, 4);
        float tableRoll     = Random.Range(0f, 1f);

        for (int x = 0; x < tablesX; x++)
        {
            for (int y = 0; y < tablesY; y++)
            {
                var xFudge = Random.Range(-0.05f, 0.05f);
                var yFudge = Random.Range(-0.05f, 0.05f);
                var obj    = LevelGenInstantiationUtils.InstantiateBlockObjectFixed(tableRoll, tables, tableProbs, xFudge + room.x - 0.5f + ((float)(room.xSize) * (x + 1) / (tablesX + 1)), yFudge + room.y - 0.5f + ((float)(room.ySize) * (y + 1) / (tablesY + 1)));
                obj.transform.localScale = new Vector3(size, size, size);
                var rotationFudge = Random.Range(-5f, 5f);
                obj.transform.Rotate(0, (90 * tableRotation) + rotationFudge, 0);
                AddChairsToTable(xFudge + room.x - 0.5f + ((float)(room.xSize) * (x + 1) / (tablesX + 1)), yFudge + room.y - 0.5f + ((float)(room.ySize) * (y + 1) / (tablesY + 1)), size, fancy, obj, 90 * tableRotation);
                int clutterRoll = Random.Range(0, 4);
                if (clutterRoll > 1)
                {
                    var clutterX = xFudge + room.x - 0.5f + ((float)(room.xSize) * (x + 1) / (tablesX + 1));
                    var clutterY = yFudge + room.y - 0.5f + ((float)(room.ySize) * (y + 1) / (tablesY + 1));
                    clutterX += Random.Range(-0.05f, 0.05f) * size;
                    clutterY += Random.Range(-0.05f, 0.05f) * size;
                    var clutter      = prefabs["castle"]["tableClutter"];
                    var clutterProbs = prefabProbability["castle"]["tableClutter"];
                    var obj2         = LevelGenInstantiationUtils.InstantiateBlockObject(clutter, clutterProbs, clutterX, clutterY);
                    obj2.transform.position = new Vector3(obj2.transform.position.x, obj.GetComponentInChildren <Renderer>().bounds.size.y, obj2.transform.position.z);
                    obj2.transform.Rotate(0, Random.Range(0, 360), 0);
                }
            }
        }
    }
Beispiel #9
0
        protected override bool Allow(CommonSpace.Options.MiniSimDescriptionParameters parameters)
        {
            if (MasterController.Settings.mMostRecentFilter == null) return false;

            return base.Allow(parameters);
        }
        protected override bool Allow(CommonSpace.Options.GameHitParameters<GameObject> parameters)
        {
            if (!GameUtils.IsInstalled(ProductVersion.EP9)) return false;

            return base.Allow(parameters);
        }