主机手游:热门手机游戏下载网站

主机手游首页|游戏合集|最近更新

您的位置:首页  →  攻略 → 环世界Rimworld1.3版本DLL代码更新内容一览

环世界Rimworld1.3版本DLL代码更新内容一览

日期:2022-10-20 17:17:02栏目:游戏攻略浏览:

环世界Rimworld目前已经推出1.3beta版本,新版本对游戏文件中的部分DLL代码进行了改动,下面一起来看看环世界Rimworld1.3版本DLL代码更新内容一览

环世界Rimworld1.3版本DLL代码更新内容一览


  • CompReloadable无修改,衣物对于verb的获取依然依靠CompReloadable
    Apparel修改:“为穿戴护盾腰带的小人禁用了开火选项和按钮。”
    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.SlaveFaction
    RecipeWorker的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.使用他自己的reason
    2.绕过ReportViolation,直接自己写TryAffectGoodwillWith
    Building的修改
    需要在ThingDef中修改drawerType
    常用的为MapMeshAndRealTime
    否则Draw不会被运行。
  • 网友评论