DysonSphereMod / QOL

64 stars 34 forks source link

MultiBuildBeta 2.3.7 [Bug] Drones frozen mid air after paste #76

Closed xedis closed 3 years ago

xedis commented 3 years ago

Paste BP Place BP Drones froze in mid air, error msg thrown Wait 30-120 seconds drones unfreeze.

BP_that_frozen_drones.txt

Error Msg

Exception hit 5 times: ArgumentException: An element with the same key already exists in the dictionary.
System.Collections.Generic.Dictionary`2<int, com.brokenmass.plugin.DSP.MultiBuild.PastedEntity>.Add (int,com.brokenmass.plugin.DSP.MultiBuild.PastedEntity) <0x002d1>
com.brokenmass.plugin.DSP.MultiBuild.BuildLogic.PlayerAction_Build_AfterPrebuilds_Prefix (PlayerAction_Build&) <0x0022a>
(wrapper dynamic-method) PlayerAction_Build.DMD<PlayerAction_Build..AfterPrebuild> (PlayerAction_Build) <0x00054>
(wrapper dynamic-method) PlayerAction_Build.DMD<PlayerAction_Build..CreatePrebuilds> (PlayerAction_Build) <0x018ee>
com.brokenmass.plugin.DSP.MultiBuild.BuildLogic.PlayerAction_Build_BuildMainLogic_Prefix (PlayerAction_Build&) <0x002ed>
(wrapper dynamic-method) PlayerAction_Build.DMD<PlayerAction_Build..BuildMainLogic> (PlayerAction_Build) <0x00023>
(wrapper dynamic-method) PlayerAction_Build.DMD<PlayerAction_Build..GameTick> (PlayerAction_Build,long) <0x0036f>
PlayerController.GameTick (long) <0x0013f>
Player.GameTick (long) <0x0006c>
(wrapper dynamic-method) GameData.DMD<GameData..GameTick> (GameData,long) <0x00125>
GameMain.FixedUpdate () <0x00235>

Target methods matching by name:
System.Void PlayerAction_Build::AfterPrebuild()
System.Void PlayerAction_Build::CreatePrebuilds()
System.Void PlayerAction_Build::BuildMainLogic()
virtual System.Void PlayerAction_Build::GameTick(System.Int64 timei)
System.Void GameData::GameTick(System.Int64 time)

Relevant plugins:
1. com.brokenmass.plugin.DSP.MultiBuildBeta - brokenmass-MultiBuildBeta\MultiBuild.dll
    Postfix[index=0]: static System.Void com.brokenmass.plugin.DSP.MultiBuild.BuildLogic::PlayerAction_Build_AfterPrebuilds_Prefix(PlayerAction_Build& __instance)

==================
Exception hit 14354 times: IndexOutOfRangeException: Array index is out of range.
com.brokenmass.plugin.DSP.MultiBuild.BuildLogic.PlayerAction_Build_NotifyBuilt_Prefix (PlayerAction_Build&,int,int) <0x006d9>
(wrapper dynamic-method) PlayerAction_Build.DMD<PlayerAction_Build..NotifyBuilt> (PlayerAction_Build,int,int) <0x00041>
PlanetFactory.BuildFinally (Player,int) <0x004fd>
MechaDroneLogic.Build (int) <0x00075>
MechaDroneLogic.UpdateDrones (single) <0x001c7>
MechaDroneLogic.GameTick (long,single) <0x000fc>
Mecha.GameTick (long,single) <0x00043>
Player.GameTick (long) <0x000e6>
(wrapper dynamic-method) GameData.DMD<GameData..GameTick> (GameData,long) <0x00125>
GameMain.FixedUpdate () <0x00235>

Target methods matching by name:
System.Void PlayerAction_Build::NotifyBuilt(System.Int32 preObjId, System.Int32 postObjId)
System.Void GameData::GameTick(System.Int64 time)

Relevant plugins:
1. com.brokenmass.plugin.DSP.MultiBuildBeta - brokenmass-MultiBuildBeta\MultiBuild.dll
    Postfix[index=0]: static System.Void com.brokenmass.plugin.DSP.MultiBuild.BuildLogic::PlayerAction_Build_NotifyBuilt_Prefix(PlayerAction_Build& __instance, System.Int32 preObjId, System.Int32 postObjId)

==================
Exception hit 30 times: IndexOutOfRangeException: Array index is out of range.
NearColliderLogic.GetEntitiesInAreaNonAlloc (UnityEngine.Vector3,single,int[]) <0x01788>
PlanetFactory.OnBeltBuilt (int) <0x00332>
PlanetFactory.BuildFinally (Player,int) <0x00592>
MechaDroneLogic.Build (int) <0x00075>
MechaDroneLogic.UpdateDrones (single) <0x001c7>
MechaDroneLogic.GameTick (long,single) <0x000fc>
Mecha.GameTick (long,single) <0x00043>
Player.GameTick (long) <0x000e6>
(wrapper dynamic-method) GameData.DMD<GameData..GameTick> (GameData,long) <0x00125>
GameMain.FixedUpdate () <0x00235>

Target methods matching by name:
System.Void GameData::GameTick(System.Int64 time)

Relevant plugins:
1. harmony-auto-bb6dbc4a-70b1-4379-b5fb-12333585ec39 - crecheng-AddBuild\AddBuild.dll
    Prefix[index=0]: static System.Void AddBuild::addBuild(GameData __instance)
Postfix[index=0]: static System.Void AddBuild::showText(GameData __instance)

==================
xedis commented 3 years ago

Just happened a second time. Using a different BP. bp-drones frozen-2.txt

brokenmass commented 3 years ago

fixed in multibuildbeta 2.3.8