Beispiel #1
0
            public static Meltable FromIce(Ice ice)
            {
                var meltable = new Meltable();

                meltable.temperature = ice.MeltTemperature;
                meltable.pressure    = ice.MeltPressure * RocketMath.Thousand;

                return(meltable);
            }
Beispiel #2
0
            public static ThingPayload FromThing(Thing prefab)
            {
                var item = new ThingPayload();

                item.name = prefab.name;
                item.hash = prefab.GetPrefabHash;

                if (prefab is IQuantity quantity)
                {
                    item.stackSize = (int)quantity.GetMaxQuantity;
                }
                else
                {
                    item.stackSize = 1;
                }

                if (prefab is INutrition nutrition)
                {
                    item.nutrition = Nutrition.FromINutrition(nutrition);
                }

                if (prefab is Ice ice)
                {
                    item.meltable = Meltable.FromIce(ice);
                }

                if (prefab is ILogicable iLogicable)
                {
                    item.logicTypes = LogicTypes.FromILogicable(iLogicable);
                }

                // TODO: Paintable

                item.temperatureLimits = TemperatureLimits.FromThing(prefab);

                if (prefab.Slots.Count > 0)
                {
                    item.slots = SlotsFromThing(prefab);
                }

                if (prefab is Item thingItem)
                {
                    item.createdReagents = ReagentsFromItem(thingItem);
                }

                if (prefab is Ore ore)
                {
                    item.spawnedGases = SpawnedGasFromOre(ore);
                }

                if (prefab.HasModeState && prefab.ModeStrings != null)
                {
                    item.modes = new List <string>(prefab.ModeStrings);
                }

                if (prefab is IConstructionKit kit)
                {
                    item.constructs = ConstructsFromKit(kit);
                }

                item.flags = FlagsFromThing(prefab);

                return(item);
            }