[1.0] DeepRim. Underground exploration/mining! Update: Christmas/New Year

Started by meowmeow, February 28, 2018, 10:19:18 AM

Previous topic - Next topic

Gymn

Quick Issue: When I am playing with Deeprim, upon exiting to the world map it throws up an error regarding the layer generations every second reaching upwards of 3000, additionally, I get several collision errors and null reference errors when going down to the layer using the lift. Any advice or reference as to how to solve this issue?

Canute

Gymn,
i bet you got hugslib installed too, press CTRL-F12, after you exit the world map and the error's appear. And post the link.
So we can see your modlist and the detailed error's.

Normaly these error's don't appear, or at last not at my gameplay.
So it must be a modconflict with another mod.

kornpat_2002

Could not load UnityEngine.Texture2D at UI/drillc in any active mod or in base resources.
Verse.Log:Error(String)
Verse.ContentFinder`1:Get(String, Boolean)
RimWorld.WorldObjectDef:get_ExpandingIconTexture()
RimWorld.Planet.WorldObject:get_ExpandingIcon()
RimWorld.Planet.ExpandableWorldObjectsUtility:ExpandableWorldObjectsOnGUI()
RimWorld.WorldInterface:WorldInterfaceOnGUI()
RimWorld.UIRoot_Play:UIRootOnGUI()
Verse.Root:OnGUI()

It seems that the texture of the drill(underground) is broken and cause alot of lag because of the log it created

Canute


Gymn

Quote from: Canute on May 15, 2018, 12:10:05 PM
Gymn,
i bet you got hugslib installed too, press CTRL-F12, after you exit the world map and the error's appear. And post the link.
So we can see your modlist and the detailed error's.

Normaly these error's don't appear, or at last not at my gameplay.
So it must be a modconflict with another mod.

Thanks for the information, first time modding Rimworld and trying to edit code to fix errors. I'll try reinstalling and see what gets thrown up.

Gymn

Quote from: kornpat_2002 on May 16, 2018, 09:24:16 AM
Could not load UnityEngine.Texture2D at UI/drillc in any active mod or in base resources.
Verse.Log:Error(String)
Verse.ContentFinder`1:Get(String, Boolean)
RimWorld.WorldObjectDef:get_ExpandingIconTexture()
RimWorld.Planet.WorldObject:get_ExpandingIcon()
RimWorld.Planet.ExpandableWorldObjectsUtility:ExpandableWorldObjectsOnGUI()
RimWorld.WorldInterface:WorldInterfaceOnGUI()
RimWorld.UIRoot_Play:UIRootOnGUI()
Verse.Root:OnGUI()

It seems that the texture of the drill(underground) is broken and cause alot of lag because of the log it created

And thank you as well for specifying the errors. Its a lot more potent when you can pinpoint the issue.

Kittamaru

Quote from: skyarkhangel on May 08, 2018, 09:30:34 PM

By the way. Rimworld 64 bit already exist. Just use search  ;)
plz, not die.

Wait... what? I can't find it :(

Madman666

He probably means that Rimworld already has 64bit version for Linux. For Windows it doesn't and its uncertain if it ever will.

Rex705

I am having major issues here. I went to deconstruct the drill but it failed and errors popped up. I then tried to destroy it with dev mode and even that could not remove it and errors popped up.

kornpat_2002

Quote from: Rex705 on May 18, 2018, 06:43:10 PM
I am having major issues here. I went to deconstruct the drill but it failed and errors popped up. I then tried to destroy it with dev mode and even that could not remove it and errors popped up.
Just gotta report that bugs .Additionally ,here's the error log

Object reference not set to an instance of an object
  at DeepRim.Building_MiningShaft.Abandon () [0x00000] in <filename unknown>:0
  at DeepRim.Building_MiningShaft.Destroy (DestroyMode mode) [0x00000] in <filename unknown>:0
  at Verse.Dialog_DebugActionsMenu.<DoListingItems_MapTools>m__1F () [0x00000] in <filename unknown>:0
  at Verse.DebugTool.DebugToolOnGUI () [0x00000] in <filename unknown>:0
  at Verse.DebugTools.DebugToolsOnGUI () [0x00000] in <filename unknown>:0
  at RimWorld.UIRoot_Play.UIRootOnGUI () [0x00000] in <filename unknown>:0
  at Verse.Root.OnGUI () [0x00000] in <filename unknown>:0

Please fix it immidiately, and that goddamn texture bug i mentioned before still there

kokakikk

Thanks for the great mod and pushing the game into another level. However when i implied the mod into the game i encountered some bugs and error logs during the gameplay. Some had spotted by others and posted here as well but no offensive I want to summarize here and looking forward to a reply and solution. But not in a hurry. I will also edit this post if I find any solutions or causes of the errors.

There are 7 errors that i found with this mod at the moment while running the core, hugslib and this mod(version03) in the mod list only. Sorry for a long post with logs
--------------
1. The following one occur when you try to click deconstruct on the mining shaft in a god mod when there is no layer of mine generated:

System.NullReferenceException: Object reference not set to an instance of an object
  at DeepRim.Building_MiningShaft.Abandon () [0x00000] in <filename unknown>:0
  at DeepRim.Building_MiningShaft.Destroy (DestroyMode mode) [0x00000] in <filename unknown>:0
  at RimWorld.Designator_Deconstruct.DesignateThing (Verse.Thing t) [0x00000] in <filename unknown>:0
  at RimWorld.InspectGizmoGrid+<DrawInspectGizmoGridFor>c__AnonStorey0.<>m__0 () [0x00000] in <filename unknown>:0
  at Verse.Command_Action.ProcessInput (UnityEngine.Event ev) [0x00000] in <filename unknown>:0
  at Verse.GizmoGridDrawer.DrawGizmoGrid (IEnumerable`1 gizmos, Single startX, Verse.Gizmo& mouseoverGizmo) [0x00000] in <filename unknown>:0
  at RimWorld.InspectGizmoGrid.DrawInspectGizmoGridFor (IEnumerable`1 selectedObjects) [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
Verse.Log:ErrorOnce(String, Int32)
RimWorld.InspectGizmoGrid:DrawInspectGizmoGridFor(IEnumerable`1)
RimWorld.MainTabWindow_Inspect:DrawInspectGizmos()
RimWorld.InspectPaneUtility:ExtraOnGUI(IInspectPane)
RimWorld.MainTabWindow_Inspect:ExtraOnGUI()
Verse.WindowStack:WindowStackOnGUI()
RimWorld.UIRoot_Play:UIRootOnGUI()
Verse.Root:OnGUI()
------------
2. The deconstruction button become available again after deactivate god mode, but the following occurs when the pawns almost finish deconstructing the mining shaft and it cannot be deconstructed:

JobDriver threw exception in initAction. Pawn=Jane, Job=Deconstruct (Job_811) A=Thing_miningshaft53593, Exception: System.NullReferenceException: Object reference not set to an instance of an object
  at DeepRim.Building_MiningShaft.Abandon () [0x00000] in <filename unknown>:0
  at DeepRim.Building_MiningShaft.Destroy (DestroyMode mode) [0x00000] in <filename unknown>:0
  at RimWorld.JobDriver_Deconstruct.FinishedRemoving () [0x00000] in <filename unknown>:0
  at RimWorld.JobDriver_RemoveBuilding+<MakeNewToils>c__Iterator0.<>m__0 () [0x00000] in <filename unknown>:0
  at Verse.AI.JobDriver.TryActuallyStartNextToil () [0x00000] in <filename unknown>:0  lastJobGiver=RimWorld.JobGiver_Work, curJob.def=Deconstruct, curDriver=RimWorld.JobDriver_Deconstruct
Verse.Log:Error(String)
Verse.AI.Pawn_JobTracker:StartErrorRecoverJob(String)
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
RimWorld.<MakeNewToils>c__AnonStorey1:<>m__1()
Verse.AI.JobDriver:DriverTick()
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick()
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

Edit 1: Temporary solution: you have to drill a underground layer and deconstruct the drill WITHOUT abandoning the underground layer, that layer will be automatically abandoned while the drill deconstructed but you lost a layer permanently
------------------------------
3. the pause drilling button cannot be clicked and the drilling process cannot be temporally paused unless you turn on the god mode and press deconstruct, then the Pause drilling button will become start drilling button and the process will stop while the log in 1. will not appear
------------------------------
4. stone chunks cannot be brought up to ground level by using bring up and stay on the underground lift.
------------------------------
5. When you have at least one underground layer and you go to the world map, the following code will continuous to generate UNLESS you switch back to other map OR when you zoom close enough on the world map. Pretty weird:

Could not load UnityEngine.Texture2D at UI/drillc in any active mod or in base resources.
Verse.Log:Error(String)
Verse.ContentFinder`1:Get(String, Boolean)
RimWorld.WorldObjectDef:get_ExpandingIconTexture()
RimWorld.Planet.WorldObject:get_ExpandingIcon()
RimWorld.Planet.ExpandableWorldObjectsUtility:ExpandableWorldObjectsOnGUI()
RimWorld.WorldInterface:WorldInterfaceOnGUI()
RimWorld.UIRoot_Play:UIRootOnGUI()
Verse.Root:OnGUI()

Edit 1: Cause found. There is a missing png file in Texture/UI/, if you add any png file with name 'drillc.png' this error will not occur. This is a temporary measure until the official release of the icon.
-----------------------------
6. When you have abandon one of the depth layer, you suppose to be able to drill back into same layer again when you select drill layer in the mining shaft. However, no map can be generated that you can only click the abandon button again and then restart the drill to drill a new layer. Same thing happened when using another drill (though i think its a good mechanic that if you abandon the layer you are no longer allowed to reach it again like the abandoned base on the world map, but may be the UI should mark the layer which is abandoned for clarity). Here are 2 error logs about the inability to reach the old abandoned layer:

LOG 1:
Tried to spawn undergroundlift117626 in a null map.
Verse.Log:Error(String)
Verse.GenSpawn:Spawn(Thing, IntVec3, Map, Rot4, Boolean)
Verse.GenSpawn:Spawn(Thing, IntVec3, Map)
DeepRim.Building_MiningShaft:DrillToOldLayer()
DeepRim.Building_MiningShaft:FinishedDrill()
DeepRim.Building_MiningShaft:Tick()
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()

LOG 2:
Exception ticking miningshaft53593: System.NullReferenceException: Object reference not set to an instance of an object
  at DeepRim.Building_MiningShaft.DrillToOldLayer () [0x00000] in <filename unknown>:0
  at DeepRim.Building_MiningShaft.FinishedDrill () [0x00000] in <filename unknown>:0
  at DeepRim.Building_MiningShaft.Tick () [0x00000] in <filename unknown>:0
  at Verse.TickList.Tick () [0x00000] in <filename unknown>:0
Verse.Log:Error(String)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()
---------------------------------------
7. When you go to the underground layer and click on the underground lift, the log will continuous to generate 'Depth:X' while 'X' is the no of the layer you are in.

Fenocide

Does anyone know if it can take animals down? If not, is that a potential feature? Perhaps it could borrow from Caravan formation?

Canute

Yes you can take animals down, just create an animal zone at the mineshaft, anything get ported down/up at these space.
The yellow minion's from the Minion's mod are great miner, don't forget to feed them from time to time.

Fenocide

Quote from: Canute on May 21, 2018, 03:40:25 AM
Yes you can take animals down, just create an animal zone at the mineshaft, anything get ported down/up at these space.
The yellow minion's from the Minion's mod are great miner, don't forget to feed them from time to time.


This is wonderful news. I'll probably use my first mine as a bunker with hydroponics and a Noah's Ark style setup to protect breeding pairs. I'm building my shaft as soon as I have electricity done (tribal start w/ GeneticRim hybrids, figure the tribals and the animals were all test subjects)

Fenocide

What if you borrowed code from Crytosleep caskets to have a "Load Patient on Lift" function to transfer people between levels for treatment?

edit: Ctrytosleep>Crytosleep
Patient on Life>Patient on Lift