环世界Rimworld1.3版本DLL代码改动内容说明
环世界目前已经推出1.3beta版本,新版本对游戏文件中的部分DLL代码进行了改动,那么下面一起来看看环世界Rimworld1.3版本DLL代码改动内容说明了解一下吧。
1.3版本DLL代码改动内容
CompReloadable无修改,衣物对于verb的获取依然依靠CompReloadableApparel修改:“为穿戴护盾腰带的小人禁用了开火选项和按钮。”AllowVerbCast(IntVec3 root, Map map, LocalTargetInfo targ, Verb verb)修改为AllowVerbCast(Verb verb)修改内容:取消了CanReachImmediate的检测在verb处有Apparel FirstApparelPreventingShooting()在verbTracker处对FirstApparelPreventingShooting()检测,若有则让verb的command Disable掉,但没有看见“移除”进游戏查看后,确认是翻译者错误,确实只有Disable的禁用仿生体现在能够被渲染,但不是hediff的Draw用的是FleshTypeDef.hediffWounds,即伤口的渲染所以mod作者们需要制作的话,需要自己用patch打代码FleshTypeDef.hediffWounds内有对hediff的检测,然后四个方向的渲染图,一些关于部位的东西,其他设定等。可能不太好用【依然建议用harmony直接打draw】抛射物“手雷现在将渲染其抛物线”子弹的ThingDef.projectile下,有float的arcHeightFactor和shadowSize【原版在手雷们的父defs前者控制抛物线最高高度,后者控制影子经过一系列处理,最后在Projectile.Draw引用与之前跳跃背包的PawnJumper应该是相同的抛物线绘制法子弹修改Projectile.Launch(Thing launcher, Vector3 origin, LocalTargetInfo usedTarget, LocalTargetInfo intendedTarget, ProjectileHitFlags hitFlags, Thing equipment = null, ThingDef targetCoverDef = null)改为Projectile.Launch(Thing launcher, Vector3 origin, LocalTargetInfo usedTarget, LocalTargetInfo intendedTarget, ProjectileHitFlags hitFlags, bool preventFriendlyFire = false, Thing equipment = null, ThingDef targetCoverDef = null)在第五个参数后,第六个参数的位置,即原来equipment的位置,增加了preventFriendlyFire,其余参数不变Projectile增加了属性protected bool preventFriendlyFire;若该值为true,则当子弹击中的单位与子弹发射者的派系是友好时子弹的Impact()无法执行mod修改意见:增加了友伤避免,建议按mod实际需求来进行参数更改Verb修改Verb.ValidateTarget(LocalTargetInfo target)改为Verb.ValidateTarget(LocalTargetInfo target, bool showMessages = true)看了一圈,原版对showMessages的引用似乎比较少,大多数原版重载的代码没有修改,mod更新建议:仅需修改ValidateTarget的参数,其代码完全无需修改。Mote 被从Thing中剥离到独立线程中以提高渲染性能,他们现在位于"Flecks"下许多Mote,MoteMaker,MoteDef变为Fleck,FleckMaker,FlackDef在FleckMaker下有许多现成的fleck许多MoteDef改为了FleckDef举例:MoteMaker.MakeStaticMote(loc, base.Wearer.Map, ThingDefOf.Mote_ExplosionFlash, num);MoteMaker.ThrowDustPuff(loc, base.Wearer.Map, Rand.Range(0.8f, 1.2f));应改为FleckMaker.Static(loc, base.Wearer.Map, FleckDefOf.ExplosionFlash, num);FleckMaker.ThrowDustPuff(loc, base.Wearer.Map, Rand.Range(0.8f, 1.2f));FleckMaker.ThrowDustPuff(loc, base.Wearer.Map, Rand.Range(0.8f, 1.2f));新增FleckDef【public class FleckDef : Def将原来MoteProperties【即ThingDef.mote】下所有内容移至FleckDef并有public Type fleckSystemClass;public AltitudeLayer altitudeLayer;public float altitudeLayerIncOffset;public bool drawGUIOverlay;public GraphicData graphicData; //即原本ThingDef下的public ListrandomGraphics;//新增的随机贴图读取随机贴图的读取,对于喜欢特效的作者是福音Gzimo修改Gizmo.GizmoOnGUI(Vector2 topLeft, float maxWidth)改为Gizmo.GizmoOnGUI(Vector2 topLeft, float maxWidth, GizmoRenderParms parms);增加了参数GizmoRenderParms,内含:public bool highLight;public bool lowLight;public bool shrunk;mod更新意见:若无对该三者的应用,仅需修改GizmoOnGUI的参数,其代码完全无需更改。“角色现在渲染效率更高(游戏将它们打印到纹理上并在一次过程中渲染,而不是在每一帧上分别渲染每个身体层)。”PawnRenderer.RenderCache被重写了,有兴趣的可以去看看美工福利:头发与胡子,现在统称叫造型头发【HairDef】:hairTags名字改为styleTags,原版有更多的Tags了hairGender名字改为styleGender【不填默认为any,与改变前一样新增category,用于给头发和胡子分类。可在CoreDefsMiscHairDefsStyleItemCategoryDefs.xml查看原版所有的category。新增iconPath,填贴图路径,表示头发的显示图标胡子【BeardDef】绝大多数东西与改版后的头发一样。新增offsetNarrowEast【格式为(x,y,z)】,表示朝东时胡子贴图的偏移,x和z分别为左右和上下新增offsetNarrowSouth【格式为(x,y,z)】,表示朝南时胡子贴图的偏移,x和z分别为左右和上下这两块属于美工不想单独调整南和东的贴图时 程序给予的补偿代码。Hediff修改Hediff.Tended_NewTemp(float quality, float maxQuality, int batchPosition = 0)改为Hediff.Tended(float quality, float maxQuality, int batchPosition = 0)内部代码没有任何变化mod更新意见:直接改方法名即可Pawn的Faction修改FactionOrExtraMiniOrHomeFaction改为HomeFaction,返回值新增Pawn.SlaveFactionRecipeWorker的Faction修改RecipeWorker下:protected void ReportViolation(Pawn pawn, Pawn billDoer, Faction factionToInform, int goodwillImpact, string reason)改为protected void ReportViolation(Pawn pawn, Pawn billDoer, Faction factionToInform, int goodwillImpact)移除了第五个参数string reason,因为ReportViolation自带Reason HistoryEventDef:PerformedHarmfulSurgery【“harmful surgery on member”】更新建议:1.使用他自己的reason2.绕过ReportViolation,直接自己写TryAffectGoodwillWithBuilding的修改需要在ThingDef中修改drawerType常用的为MapMeshAndRealTime否则Draw不会被运行。以上是 环世界Rimworld1.3版本DLL代码改动内容说明 的全部内容, 来源链接: utcz.com/yxgl/291490.html