public override BuildingDef CreateBuildingDef()
        {
            BuildingDef buildingDef = base.CreateBuildingDef();

            buildingDef.PrefabID = ID;
            buildingDef.InitDef();
            return(buildingDef);
        }
Example #2
0
    public static BuildingDef CreateBuildingDef(string id, int width, int height, string anim, int hitpoints, float construction_time, float[] construction_mass, string[] construction_materials, float melting_point, BuildLocationRule build_location_rule, EffectorValues decor, EffectorValues noise, float temperature_modification_mass_scale = 0.2f)
    {
        BuildingDef buildingDef = ScriptableObject.CreateInstance <BuildingDef>();

        buildingDef.PrefabID = id;
        buildingDef.InitDef();
        buildingDef.name = id;
        buildingDef.Mass = construction_mass;
        buildingDef.MassForTemperatureModification = construction_mass[0] * temperature_modification_mass_scale;
        buildingDef.WidthInCells     = width;
        buildingDef.HeightInCells    = height;
        buildingDef.HitPoints        = hitpoints;
        buildingDef.ConstructionTime = construction_time;
        buildingDef.SceneLayer       = Grid.SceneLayer.Building;
        buildingDef.MaterialCategory = construction_materials;
        buildingDef.BaseMeltingPoint = melting_point;
        switch (build_location_rule)
        {
        case BuildLocationRule.Anywhere:
        case BuildLocationRule.Tile:
        case BuildLocationRule.Conduit:
        case BuildLocationRule.LogicBridge:
        case BuildLocationRule.WireBridge:
            buildingDef.ContinuouslyCheckFoundation = false;
            break;

        default:
            buildingDef.ContinuouslyCheckFoundation = true;
            break;
        }
        buildingDef.BuildLocationRule = build_location_rule;
        buildingDef.ObjectLayer       = ObjectLayer.Building;
        buildingDef.AnimFiles         = new KAnimFile[1]
        {
            Assets.GetAnim(anim)
        };
        buildingDef.GenerateOffsets();
        buildingDef.BaseDecor                = (float)decor.amount;
        buildingDef.BaseDecorRadius          = (float)decor.radius;
        buildingDef.BaseNoisePollution       = noise.amount;
        buildingDef.BaseNoisePollutionRadius = noise.radius;
        return(buildingDef);
    }