1using System.Globalization;
77 return base.GetSlotCapacity(slotIndex, value);
81 return base.GetSlotCapacity(slotIndex, value);
84 public override void AddSlotItems(
int slotIndex,
int value,
int count) {
86 base.AddSlotItems(slotIndex, value, count);
91 return base.RemoveSlotItems(slotIndex, count);
98 public virtual void Update(
float dt) {
146 m_fireParticleSystem.m_position = m_componentBlockEntity.Position +
new Vector3(0.5f, 0.2f, 0.5f);
165 float heatLevel = 0f;
171 if (slot.
Count > 0) {
178 m_smeltingRecipe = craftingRecipe !=
null && craftingRecipe.ResultValue != 0 ? craftingRecipe :
null;
190 if (slot2.
Count > 0) {
216 base.Load(valuesDictionary, idToEntityMap);
225 m_heatLevel = valuesDictionary.GetValue<
float>(
"HeatLevel");
231 base.Save(valuesDictionary, entityToIdMap);
233 valuesDictionary.SetValue(
"HeatLevel",
m_heatLevel);
237 if (heatLevel > 0f) {
244 m_matchedIngredients[i] = $
"{block.GetCraftingId(slotValue)}:{num2.ToString(CultureInfo.InvariantCulture)}";
254 if (craftingRecipe !=
null
257 craftingRecipe =
null;
259 if (craftingRecipe !=
null) {
265 craftingRecipe =
null;
268 if (craftingRecipe !=
null
276 craftingRecipe =
null;
280 craftingRecipe =
null;
284 if (craftingRecipe !=
null
285 && !
string.IsNullOrEmpty(craftingRecipe.
Message)) {
288 return craftingRecipe;
static int Min(int x1, int x2)
static int Max(int x1, int x2)
virtual float GetExplosionPressure(int value)
virtual int GetMaxStacking(int value)
virtual float GetFuelFireDuration(int value)
virtual float GetFuelHeatLevel(int value)
SubsystemTime m_subsystemTime
bool StopFuelWhenNoRecipeIsActive
SubsystemGameInfo m_subsystemGameInfo
virtual void Update(float dt)
SubsystemParticles m_subsystemParticles
virtual bool UseFuel()
使用燃料逻辑,目前返回值在API熔炉中无作用
override void AddSlotItems(int slotIndex, int value, int count)
virtual int RemainsSlotIndex
virtual int ResultSlotIndex
virtual CraftingRecipe FindSmeltingRecipe(float heatLevel)
SubsystemTerrain m_subsystemTerrain
override void OnEntityRemoved()
SubsystemExplosions m_subsystemExplosions
virtual void UpdateSmeltingRecipe()
更新配方逻辑
CraftingRecipe m_smeltingRecipe
virtual float FireTimeRemaining
bool m_updateSmeltingRecipe
float FuelTimeEfficiency
使用燃料时,燃料实际补充的时间倍数
ComponentBlockEntity m_componentBlockEntity
FireParticleSystem m_fireParticleSystem
override int GetSlotCapacity(int slotIndex, int value)
override void Load(ValuesDictionary valuesDictionary, IdToEntityMap idToEntityMap)
virtual void StopSmelting(bool resetProgress)
override void Save(ValuesDictionary valuesDictionary, EntityToIdMap entityToIdMap)
float SmeltProgressReductionSpeed
没有燃料时,冶炼进度倒退速率
virtual float m_fireTimeRemaining
float m_fuelEndTime
燃料耗尽时间 开发时,注意这个不能改成{get;set;}形式,否则会出现mod兼容问题
override int RemoveSlotItems(int slotIndex, int count)
实际移除的数量
virtual int FuelSlotIndex
virtual float SmeltingProgress
string[] m_matchedIngredients
virtual void DisplaySmallMessage(string text, Color color, bool blinking, bool playNotificationSound)
virtual int GetSlotCount(int slotIndex)
Project IInventory. Project
virtual int GetSlotValue(int slotIndex)
ComponentPlayer FindInteractingPlayer()
ComponentGui ComponentGui
static CraftingRecipe FindMatchingRecipe(SubsystemTerrain terrain, string[] ingredients, float heatLevel, float playerLevel)
static int ExtractContents(int value)
static int ReplaceContents(int value, int contents)
方块值的最低10位,替换为目标Content
static int ExtractData(int value)
ValuesDictionary ValuesDictionary