biomes-team / biomescore Goto Github PK
View Code? Open in Web Editor NEWThe core module for the Biomes! mods
License: Other
The core module for the Biomes! mods
License: Other
The following features interact with pawn rendering, and need to be reimplemented with the new vanilla rendering code:
CompProperties_DefensiveReaction
CompProperties_CompSleepGraphic
AlternativePawnGraphics
These creatures currently have a TMK digging speed set in life stages such as BMT_DiggerBaby
. These will need to be switched to the new Pathfinding Framework. See ToDo PathfindingCode
in the XML code of the mod for details.
Repro steps:
Setup a modlist with just Biomes! Islands, Geological Landforms, ReGrowth: Arid, and their dependencies.
Launch RimWorld and start a new game on an Arid Shrubland (coast) map.
Kelp will spawn on land as shown in this screenshot:
This is happening because Biomes! Core is not patching the RG_AridSoil
terrain to add the tags into it. Since we cannot count on patching every mod which adds terrains, we should change the default behaviour of this part of the custom plant growth code. If a plant has some Biomes_PlantControl.terrainTags
but the underlying terrain does not have any Biomes_PlantControl.terrainTags
, the plant should not be allowed to grow there.
StatPart_ApparelStatOffset
has been removed from 1.5. The patches applied to the Flammability StatDef
are commented for now.
Tachylite does not need to use any active terrain features and thus should be made a regular TerrainDef. This should be done during the update for 1.5, as it will cause red errors during game load otherwise.
Patches to other mods have not been updated to 1.5 yet.
There appears to be some sort of an issue with the interaction between caravan generation wrapper in Biomes Core and rim-war
On version 1.4.3704 with a minimal mod list
Harmony
Core +3DLC
Hugslib
Biomes Core
Rimwar
Description:
Rim war has caravans on the world map, you can interact with them it either initiates combat on some map (for a hostile faction) or opens a GUI with options (for a neutral or friendly faction). Neither of these things occur while both mods are active.
However, interactions (Gui or otherwise) with non trader world map units work just fine the problem is strictly for the traders
Also of note this issue was not present when I was using both mods in Version 1.3
Bug log:
Attacking a hostile caravan
Exception while generating pawn group: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in :0
at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in :0
at BiomesCore.Patches.PawnGroupKindWorker_Trader_GenerateCarriers.GetExtendedCarriers (System.Collections.Generic.List1[T] originalCarriers, RimWorld.PawnGroupMakerParms parms) [0x000f7] in <afad0cf4ff2c4e1c82dc8c076b79b6d8>:0 at (wrapper dynamic-method) RimWorld.PawnGroupKindWorker_Trader.RimWorld.PawnGroupKindWorker_Trader.GenerateCarriers_Patch0(RimWorld.PawnGroupKindWorker_Trader,RimWorld.PawnGroupMakerParms,RimWorld.PawnGroupMaker,Verse.Pawn,System.Collections.Generic.List
1<Verse.Thing>,System.Collections.Generic.List1<Verse.Pawn>) at RimWorld.PawnGroupKindWorker_Trader.GeneratePawns (RimWorld.PawnGroupMakerParms parms, RimWorld.PawnGroupMaker groupMaker, System.Collections.Generic.List
1[T] outPawns, System.Boolean errorOnZeroResults) [0x00223] in <95de19971c5d40878d8742747904cdcd>:0
at RimWorld.PawnGroupKindWorker.GeneratePawns (RimWorld.PawnGroupMakerParms parms, RimWorld.PawnGroupMaker groupMaker, System.Boolean errorOnZeroResults) [0x00011] in <95de19971c5d40878d8742747904cdcd>:0
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch1 (string)
RimWorld.PawnGroupKindWorker:GeneratePawns (RimWorld.PawnGroupMakerParms,RimWorld.PawnGroupMaker,bool)
RimWorld.PawnGroupMaker:GeneratePawns (RimWorld.PawnGroupMakerParms,bool)
RimWorld.PawnGroupMakerUtility/d__2:MoveNext ()
System.Collections.Generic.List1<Verse.Pawn>:.ctor (System.Collections.Generic.IEnumerable
1<Verse.Pawn>)
System.Linq.Enumerable:ToList<Verse.Pawn> (System.Collections.Generic.IEnumerable1<Verse.Pawn>) RimWar.Utility.IncidentWorker_WarObjectMeeting:GenerateCaravanPawns (RimWorld.Faction,int) RimWar.Utility.IncidentWorker_WarObjectMeeting:TryExecuteWorker (RimWorld.IncidentParms) RimWar.Utility.IncidentWorker_WarObjectMeeting:PreExecuteWorker (RimWorld.IncidentParms,RimWar.Planet.WarObject,int) RimWar.Planet.IncidentUtility:DoCaravanAttackWithPoints (RimWar.Planet.WarObject,RimWorld.Planet.Caravan,RimWar.RimWarData,RimWorld.PawnsArrivalModeDef,RimWorld.PawnGroupKindDef) RimWar.Planet.WarObject:EngageCaravan (RimWorld.Planet.Caravan) RimWar.Planet.CaravanArrivalAction_AttackWarObject:Arrived (RimWorld.Planet.Caravan) RimWorld.Planet.Caravan_PathFollower:PatherArrived () (wrapper dynamic-method) RimWorld.Planet.Caravan_PathFollower:RimWorld.Planet.Caravan_PathFollower.StartPath_Patch1 (RimWorld.Planet.Caravan_PathFollower,int,RimWorld.Planet.CaravanArrivalAction,bool,bool) RimWorld.Planet.CaravanArrivalActionUtility/<>c__DisplayClass0_0
1<RimWar.Planet.CaravanArrivalAction_AttackWarObject>:b__0 ()
Verse.FloatMenuOption:Chosen (bool,Verse.FloatMenu)
Verse.FloatMenuOption:DoGUI (UnityEngine.Rect,bool,Verse.FloatMenu)
Verse.FloatMenu:DoWindowContents (UnityEngine.Rect)
Verse.FloatMenuWorld:DoWindowContents (UnityEngine.Rect)
Verse.Window:InnerWindowOnGUI (int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)
IncidentWorker_CaravanMeeting could not generate any pawns.
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch1 (string)
RimWar.Utility.IncidentWorker_WarObjectMeeting:TryExecuteWorker (RimWorld.IncidentParms)
RimWar.Utility.IncidentWorker_WarObjectMeeting:PreExecuteWorker (RimWorld.IncidentParms,RimWar.Planet.WarObject,int)
RimWar.Planet.IncidentUtility:DoCaravanAttackWithPoints (RimWar.Planet.WarObject,RimWorld.Planet.Caravan,RimWar.RimWarData,RimWorld.PawnsArrivalModeDef,RimWorld.PawnGroupKindDef)
RimWar.Planet.WarObject:EngageCaravan (RimWorld.Planet.Caravan)
RimWar.Planet.CaravanArrivalAction_AttackWarObject:Arrived (RimWorld.Planet.Caravan)
RimWorld.Planet.Caravan_PathFollower:PatherArrived ()
(wrapper dynamic-method) RimWorld.Planet.Caravan_PathFollower:RimWorld.Planet.Caravan_PathFollower.StartPath_Patch1 (RimWorld.Planet.Caravan_PathFollower,int,RimWorld.Planet.CaravanArrivalAction,bool,bool)
RimWorld.Planet.CaravanArrivalActionUtility/<>c__DisplayClass0_0`1<RimWar.Planet.CaravanArrivalAction_AttackWarObject>:b__0 ()
Verse.FloatMenuOption:Chosen (bool,Verse.FloatMenu)
Verse.FloatMenuOption:DoGUI (UnityEngine.Rect,bool,Verse.FloatMenu)
Verse.FloatMenu:DoWindowContents (UnityEngine.Rect)
Verse.FloatMenuWorld:DoWindowContents (UnityEngine.Rect)
Verse.Window:InnerWindowOnGUI (int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)
Interacting with a friendly caravan leads to the same 2 errors with same cause
Exception while generating pawn group: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException (System.ExceptionArgument argument, System.ExceptionResource resource) [0x00029] in :0
at System.ThrowHelper.ThrowArgumentOutOfRangeException () [0x00000] in :0
at BiomesCore.Patches.PawnGroupKindWorker_Trader_GenerateCarriers.GetExtendedCarriers (System.Collections.Generic.List1[T] originalCarriers, RimWorld.PawnGroupMakerParms parms) [0x000f7] in <afad0cf4ff2c4e1c82dc8c076b79b6d8>:0 at (wrapper dynamic-method) RimWorld.PawnGroupKindWorker_Trader.RimWorld.PawnGroupKindWorker_Trader.GenerateCarriers_Patch0(RimWorld.PawnGroupKindWorker_Trader,RimWorld.PawnGroupMakerParms,RimWorld.PawnGroupMaker,Verse.Pawn,System.Collections.Generic.List
1<Verse.Thing>,System.Collections.Generic.List1<Verse.Pawn>) at RimWorld.PawnGroupKindWorker_Trader.GeneratePawns (RimWorld.PawnGroupMakerParms parms, RimWorld.PawnGroupMaker groupMaker, System.Collections.Generic.List
1[T] outPawns, System.Boolean errorOnZeroResults) [0x00223] in <95de19971c5d40878d8742747904cdcd>:0
at RimWorld.PawnGroupKindWorker.GeneratePawns (RimWorld.PawnGroupMakerParms parms, RimWorld.PawnGroupMaker groupMaker, System.Boolean errorOnZeroResults) [0x00011] in <95de19971c5d40878d8742747904cdcd>:0
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch1 (string)
RimWorld.PawnGroupKindWorker:GeneratePawns (RimWorld.PawnGroupMakerParms,RimWorld.PawnGroupMaker,bool)
RimWorld.PawnGroupMaker:GeneratePawns (RimWorld.PawnGroupMakerParms,bool)
RimWorld.PawnGroupMakerUtility/d__2:MoveNext ()
System.Collections.Generic.List1<Verse.Pawn>:.ctor (System.Collections.Generic.IEnumerable
1<Verse.Pawn>)
System.Linq.Enumerable:ToList<Verse.Pawn> (System.Collections.Generic.IEnumerable1<Verse.Pawn>) RimWar.Utility.IncidentWorker_WarObjectMeeting:GenerateCaravanPawns (RimWorld.Faction,int) RimWar.Utility.IncidentWorker_WarObjectMeeting:TryExecuteWorker (RimWorld.IncidentParms) RimWar.Utility.IncidentWorker_WarObjectMeeting:PreExecuteWorker (RimWorld.IncidentParms,RimWar.Planet.WarObject,int) RimWar.Planet.IncidentUtility:DoCaravanTradeWithPoints (RimWar.Planet.WarObject,RimWorld.Planet.Caravan,RimWar.RimWarData,RimWorld.PawnsArrivalModeDef) RimWar.Planet.WarObject:EngageCaravan (RimWorld.Planet.Caravan) RimWar.Planet.CaravanArrivalAction_EngageWarObject:Arrived (RimWorld.Planet.Caravan) RimWorld.Planet.Caravan_PathFollower:PatherArrived () (wrapper dynamic-method) RimWorld.Planet.Caravan_PathFollower:RimWorld.Planet.Caravan_PathFollower.StartPath_Patch1 (RimWorld.Planet.Caravan_PathFollower,int,RimWorld.Planet.CaravanArrivalAction,bool,bool) RimWorld.Planet.CaravanArrivalActionUtility/<>c__DisplayClass0_0
1<RimWar.Planet.CaravanArrivalAction_EngageWarObject>:b__0 ()
Verse.FloatMenuOption:Chosen (bool,Verse.FloatMenu)
Verse.FloatMenuOption:DoGUI (UnityEngine.Rect,bool,Verse.FloatMenu)
Verse.FloatMenu:DoWindowContents (UnityEngine.Rect)
Verse.FloatMenuWorld:DoWindowContents (UnityEngine.Rect)
Verse.Window:InnerWindowOnGUI (int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)
IncidentWorker_CaravanMeeting could not generate any pawns.
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch1 (string)
RimWar.Utility.IncidentWorker_WarObjectMeeting:TryExecuteWorker (RimWorld.IncidentParms)
RimWar.Utility.IncidentWorker_WarObjectMeeting:PreExecuteWorker (RimWorld.IncidentParms,RimWar.Planet.WarObject,int)
RimWar.Planet.IncidentUtility:DoCaravanTradeWithPoints (RimWar.Planet.WarObject,RimWorld.Planet.Caravan,RimWar.RimWarData,RimWorld.PawnsArrivalModeDef)
RimWar.Planet.WarObject:EngageCaravan (RimWorld.Planet.Caravan)
RimWar.Planet.CaravanArrivalAction_EngageWarObject:Arrived (RimWorld.Planet.Caravan)
RimWorld.Planet.Caravan_PathFollower:PatherArrived ()
(wrapper dynamic-method) RimWorld.Planet.Caravan_PathFollower:RimWorld.Planet.Caravan_PathFollower.StartPath_Patch1 (RimWorld.Planet.Caravan_PathFollower,int,RimWorld.Planet.CaravanArrivalAction,bool,bool)
RimWorld.Planet.CaravanArrivalActionUtility/<>c__DisplayClass0_0`1<RimWar.Planet.CaravanArrivalAction_EngageWarObject>:b__0 ()
Verse.FloatMenuOption:Chosen (bool,Verse.FloatMenu)
Verse.FloatMenuOption:DoGUI (UnityEngine.Rect,bool,Verse.FloatMenu)
Verse.FloatMenu:DoWindowContents (UnityEngine.Rect)
Verse.FloatMenuWorld:DoWindowContents (UnityEngine.Rect)
Verse.Window:InnerWindowOnGUI (int)
UnityEngine.GUI:CallWindowDelegate (UnityEngine.GUI/WindowFunction,int,int,UnityEngine.GUISkin,int,single,single,UnityEngine.GUIStyle)
To avoid performance issues, the current ActiveTerrain code limits the total number of time that can be spent ticking terrain comps to an amount of time equal to 25% of the rest of the tick time of the game. During that time budget, the game will try to process as many cells as possible. This has multiple issues:
Since the time budget is calculated depending on the tick time of the rest of the game, players with worse TPS will have longer lava processing times. Earthen Depths punishes players for having bad TPS.
25% of the total tick time is an enormous amount of time. Lava processing must be more performant.
Breaks compatibility with the multiplayer mod.
This setting would let these plants grow 24/7. This would allow getting similar behaviour to that in mods like the one linked below, as they do not seem to affect Biomes! Plants.
https://steamcommunity.com/sharedfiles/filedetails/?id=2879761467
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.