示例#1
0
        public static AcceptanceReport IsValidBlueprintName(string name)
        {
            if (!CouldBeValidBlueprintName(name))
            {
                return(new AcceptanceReport("Fluffy.Blueprints.InvalidBlueprintName".Translate(name)));
            }

            // TODO: figure out why this doesn't work
            if (BlueprintController.FindBlueprint(name) != null)
            {
                return(new AcceptanceReport("Fluffy.Blueprints.NameAlreadyTaken".Translate(name)));
            }

            return(true);
        }
示例#2
0
        public Blueprint(List <BuildableInfo> contents, IntVec2 size, string defaultName = null)
        {
            // input
            this.contents = contents;
            name          = defaultName;
            _size         = size;

            // provide reference to this blueprint in all contents
            foreach (var item in contents)
            {
                item.blueprint = this;
            }

            // just created, so not exported yet
            exported = false;

            // 'orrible default name
            if (name == null || !CouldBeValidBlueprintName(name))
            {
                name = "Fluffy.Blueprints.DefaultBlueprintName".Translate();
            }

            // increment numeric suffix until we have a unique name
            var i = 1;

            while (BlueprintController.FindBlueprint(name + "_" + i) != null)
            {
                i++;
            }

            // set name
            name = name + "_" + i;

            // ask for name
            Find.WindowStack.Add(new Dialog_NameBlueprint(this));
        }