求解!AlgaeHabitatConfig藻类培育合更改
本帖最后由 tym6587456 于 2019-6-14 08:41 编辑求大神看看,我只想改绿藻培育合把产生污水改成产生绿藻,只改了这两个地方,进游戏后先正常,一但造了培育合播种,浇水后就卡死。求解。 还有地方没改到,还是我根本就改错了?理解错了?从没接触过这类东西,以前在学校只是接触过程序。
using System;
using System.Collections.Generic;
using TUNING;
using UnityEngine;
// Token: 0x020014BA RID: 5306
public class AlgaeHabitatConfig : IBuildingConfig
{
// Token: 0x06005381 RID: 21377 RVA: 0x00182D88 File Offset: 0x00180F88
public override BuildingDef CreateBuildingDef()
{
string id = "AlgaeHabitat";
int width = 1;
int height = 2;
string anim = "algaefarm_kanim";
int hitpoints = 30;
float construction_time = 30f;
float[] tier = BUILDINGS.CONSTRUCTION_MASS_KG.TIER4;
string[] farmable = MATERIALS.FARMABLE;
float melting_point = 1600f;
BuildLocationRule build_location_rule = BuildLocationRule.OnFloor;
EffectorValues tier2 = NOISE_POLLUTION.NOISY.TIER0;
BuildingDef buildingDef = BuildingTemplates.CreateBuildingDef(id, width, height, anim, hitpoints, construction_time, tier, farmable, melting_point, build_location_rule, BUILDINGS.DECOR.PENALTY.TIER1, tier2, 0.2f);
buildingDef.Floodable = false;
buildingDef.ViewMode = OverlayModes.Oxygen.ID;
buildingDef.AudioCategory = "HollowMetal";
buildingDef.UtilityInputOffset = new CellOffset(0, 0);
buildingDef.UtilityOutputOffset = new CellOffset(0, 0);
SoundEventVolumeCache.instance.AddVolume("algaefarm_kanim", "AlgaeHabitat_bubbles", NOISE_POLLUTION.NOISY.TIER0);
SoundEventVolumeCache.instance.AddVolume("algaefarm_kanim", "AlgaeHabitat_algae_in", NOISE_POLLUTION.NOISY.TIER0);
SoundEventVolumeCache.instance.AddVolume("algaefarm_kanim", "AlgaeHabitat_algae_out", NOISE_POLLUTION.NOISY.TIER0);
return buildingDef;
}
// Token: 0x06005382 RID: 21378 RVA: 0x00182E78 File Offset: 0x00181078
public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
{
Storage storage = go.AddOrGet<Storage>();
storage.showInUI = true;
Storage storage2 = go.AddComponent<Storage>();
storage2.capacityKg = 360f;
storage2.showInUI = true;
storage2.SetDefaultStoredItemModifiers(AlgaeHabitatConfig.PollutedWaterStorageModifiers);
storage2.allowItemRemoval = false;
storage2.storageFilters = AlgaeHabitatConfig.pollutedWaterFilter;
ManualDeliveryKG manualDeliveryKG = go.AddOrGet<ManualDeliveryKG>();
manualDeliveryKG.SetStorage(storage);
manualDeliveryKG.requestedItemTag = new Tag("Algae");
manualDeliveryKG.capacity = 90f;
manualDeliveryKG.refillMass = 18f;
manualDeliveryKG.choreTypeIDHash = Db.Get().ChoreTypes.FetchCritical.IdHash;
ManualDeliveryKG manualDeliveryKG2 = go.AddComponent<ManualDeliveryKG>();
manualDeliveryKG2.SetStorage(storage);
manualDeliveryKG2.requestedItemTag = new Tag("Water");
manualDeliveryKG2.capacity = 360f;
manualDeliveryKG2.refillMass = 72f;
manualDeliveryKG2.allowPause = true;
manualDeliveryKG2.choreTypeIDHash = Db.Get().ChoreTypes.FetchCritical.IdHash;
KAnimFile[] overrideAnims = new KAnimFile[]
{
Assets.GetAnim("anim_interacts_algae_terarrium_kanim")
};
AlgaeHabitatEmpty algaeHabitatEmpty = go.AddOrGet<AlgaeHabitatEmpty>();
algaeHabitatEmpty.workTime = 5f;
algaeHabitatEmpty.overrideAnims = overrideAnims;
algaeHabitatEmpty.workLayer = Grid.SceneLayer.BuildingFront;
AlgaeHabitat algaeHabitat = go.AddOrGet<AlgaeHabitat>();
algaeHabitat.lightBonusMultiplier = 1.1f;
algaeHabitat.pressureSampleOffset = new CellOffset(0, 1);
ElementConverter elementConverter = go.AddComponent<ElementConverter>();
elementConverter.consumedElements = new ElementConverter.ConsumedElement[]
{
new ElementConverter.ConsumedElement(new Tag("Algae"), 0.030000001f),
new ElementConverter.ConsumedElement(new Tag("Water"), 0.3f)
};
elementConverter.outputElements = new ElementConverter.OutputElement[]
{
new ElementConverter.OutputElement(0.040000003f, SimHashes.Oxygen, 303.15f, false, 0f, 1f, false, 1f, byte.MaxValue, 0)
};
go.AddComponent<ElementConverter>().outputElements = new ElementConverter.OutputElement[]
{
new ElementConverter.OutputElement(0.3f, SimHashes.Algae, 303.15f, true, 0f, 1f, false, 1f, byte.MaxValue, 0) //只改了这两个地方,这是1处,红色部分以前是SimHashes.dirtywate 好像这是产生污水。
};
ElementConsumer elementConsumer = go.AddOrGet<ElementConsumer>();
elementConsumer.elementToConsume = SimHashes.CarbonDioxide;
elementConsumer.consumptionRate = 0.0003333333f;
elementConsumer.consumptionRadius = 3;
elementConsumer.showInStatusPanel = true;
elementConsumer.sampleCellOffset = new Vector3(0f, 1f, 0f);
elementConsumer.isRequired = false;
PassiveElementConsumer passiveElementConsumer = go.AddComponent<PassiveElementConsumer>();
passiveElementConsumer.elementToConsume = SimHashes.Water;
passiveElementConsumer.consumptionRate = 1.2f;
passiveElementConsumer.consumptionRadius = 1;
passiveElementConsumer.showDescriptor = false;
passiveElementConsumer.storeOnConsume = true;
passiveElementConsumer.capacityKG = 360f;
passiveElementConsumer.showInStatusPanel = false;
go.AddOrGet<KBatchedAnimController>().randomiseLoopedOffset = true;
go.AddOrGet<AnimTileable>();
Prioritizable.AddRef(go);
}
// Token: 0x06005383 RID: 21379 RVA: 0x00003793 File Offset: 0x00001993
public override void DoPostConfigureComplete(GameObject go)
{
}
// Token: 0x04005923 RID: 22819
public const string ID = "AlgaeHabitat";
// Token: 0x04005924 RID: 22820
private const float ALGAE_RATE = 0.030000001f;
// Token: 0x04005925 RID: 22821
private const float WATER_RATE = 0.3f;
// Token: 0x04005926 RID: 22822
private const float OXYGEN_RATE = 0.040000003f;
// Token: 0x04005927 RID: 22823
private const float CO2_RATE = 0.0003333333f;
// Token: 0x04005928 RID: 22824
private const float ALGAE_CAPACITY = 90f;
// Token: 0x04005929 RID: 22825
private const float WATER_CAPACITY = 360f;
// Token: 0x0400592A RID: 22826
private static readonly List<Storage.StoredItemModifier> PollutedWaterStorageModifiers = new List<Storage.StoredItemModifier>
{
Storage.StoredItemModifier.Hide,
Storage.StoredItemModifier.Seal
};
// Token: 0x0400592B RID: 22827
public static List<Tag> pollutedWaterFilter = new List<Tag>
{
ElementLoader.FindElementByHash(SimHashes.Algae).tag //这是2处,以前是:ElementLoader.FindElementByHash(SimHashes.dirtywate).tag
}; http://bbs.blacksheepgame.com/forum.php?mod=viewthread&tid=5891058&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline 下载这个参考下他的改法
此DLL 是产石油。。。。 应该是液体只能换液体,也就是说之前是液体的污染水,你改成固体的绿藻会出现问题,这个可能是没有办法在修改其他东西能解决的,建议还是把污染水改成其他液体
new ElementConverter.OutputElement(0.3f, SimHashes.Algae, 303.15f, true, 0f, 1f, false, 1f, 255, 0) 改这样试试 skybyte 发表于 2019-6-14 21:02
new ElementConverter.OutputElement(0.3f, SimHashes.Algae, 303.15f, true, 0f, 1f, false, 1f, 255, 0)...
不行,,我改了,,也一样会卡死
天虎怒寒 发表于 2019-6-14 19:17
应该是液体只能换液体,也就是说之前是液体的污染水,你改成固体的绿藻会出现问题,这个可能是没有办法在修 ...
我这有个DLL,但他改的东西多,,其中就有生产绿藻能正常,我看了,好像也只改了这两地方,,像我照着改过来,就是会卡死,
天虎怒寒 发表于 2019-6-14 19:17
应该是液体只能换液体,也就是说之前是液体的污染水,你改成固体的绿藻会出现问题,这个可能是没有办法在修 ...
我改成石油了,还是不行,,也只改了两个地方,应该还有其它地方要改吧?
tym6587456 发表于 2019-6-15 14:34
我改成石油了,还是不行,,也只改了两个地方,应该还有其它地方要改吧?
...
AlgaeHabitat和AlgaeHabitatConfig
这两个里面的dirtwater,同时修改
天虎怒寒 发表于 2019-6-15 15:32
AlgaeHabitat和AlgaeHabitatConfig
这两个里面的dirtwater,同时修改
多谢,,终于成功了,不卡死,,正常,改成生产绿藻了,,结果要改两个文件不是液体,固体的问题。:hug:,感谢感谢。
天虎怒寒 发表于 2019-6-15 15:32
AlgaeHabitat和AlgaeHabitatConfig
这两个里面的dirtwater,同时修改
太感谢你了!:handshake
页:
[1]