[A17/B18] Orbital Hubs United - Dropships 1.2 (14.02.2018)

Started by Cpt.Ohu, April 23, 2017, 03:44:16 PM

Previous topic - Next topic

Cpt.Ohu

Quote from: Reinhark on September 01, 2017, 10:57:17 PM
One more minor glitche.

Ship seems to be either over or under-loading. Sometimes both in fact. upon request of loading of single item - say, simple meal x 10 when you have lots of them, - say, 100 - multiple colonists will load the ship with multiple simple meal x 10, resulting in ship having simple meal x 20 or 30.

On the contrary, loading of the crew ends way too early. upon loading half of the crew that I have requested to be loaded, loading will "complete"(message will display that loading is complete) and crew will stop loading any items I told them to load and remaining half of the supposed crew will go on their marry way. Unsure if this is intended feature. At least they should finish loading the items if it is.

I am not using any pawn AI changing mods, but can it still be mod conflict?

No, it's the multiple pawns loading process not working quite right yet. Probably one of the reasons why Tynan limits pawns to 1 hauler per launchpod.

I'm experimenting with different checks now, looks promising that going off-target during loading won't happen again.

Canute

QuoteNo, it's the multiple pawns loading process not working quite right yet. Probably one of the reasons why Tynan limits pawns to 1 hauler per launchpod.
Did you remember that i suggest the cargo into segments a while ago? Wouldn't that help to solve that issue ?
For each passenger 1 cargo pod, if the ship got less then max. passenger, there will be auto. assigned haulers.

Cpt.Ohu

Not really. The key is tracking the cargo already loaded. That is stored central on the ship. Even if I include subsystems, I still have to check all of them and reassign when needed.

The issue is/was this: Say I load 2000 steel. That's packed in max 75x stacks. 2 Pawns start loading because one pawn would take an hour. There are now 50 left to load. Both Pawns pick up an item, one a stack of the desired 50, the other 25. Until now I was missing checks to see  before the second pawn stores his stack if it is still needed. Which it might not be, since the first pawn has dumped his 50 and the loading should finish up. Vice versa, not the entire stack of 50 is needed if the second pawn was quicker.

These checks are in testing now and it looks promising. No need to complicate it further by adding virtual droppods.

SpaceDorf

This system for loading the ship sounds promising.

Still I think it would be a nice addition to divide the cargo space between passenger space, actual cargo and later on maybe ordonance. This would make it possible to divide the ships roles further.

True Cargo Haulers,
Troop Ships with low cargo.
Bombers, Air Support .. and so on.

Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

Cpt.Ohu

Well, this is more or less already in. Take the avereage weight of a passenger, set the passenger seats accordingly, and you have a passenger ship. You can of course still load cargo, it would be the same as putting something on the rear bench in your car. It wouldn't make much sense if a ship designed to lift 8 passengers couldn't even hold a few packs of grain.

SpaceDorf

I made a ship, I can build it, load it, and fly it around but when I try to install a weapon the whole thing explodes ..

Any Idea what this Error Message wants to tell me ?

Exception drawing ShipTurret_Turret250268: System.NullReferenceException: Object reference not set to an instance of an object
  at OHUShips.Building_ShipTurret.<get_ParentShip>b__2_0 (OHUShips.ShipBase x) [0x00000] in <filename unknown>:0
  at System.Linq.Enumerable.First[ShipBase] (IEnumerable`1 source, System.Func`2 predicate, Fallback fallback) [0x00000] in <filename unknown>:0
  at System.Linq.Enumerable.FirstOrDefault[ShipBase] (IEnumerable`1 source, System.Func`2 predicate) [0x00000] in <filename unknown>:0
  at OHUShips.Building_ShipTurret.get_ParentShip () [0x00000] in <filename unknown>:0
  at OHUShips.Building_ShipTurret.get_DrawPos () [0x00000] in <filename unknown>:0
  at RimWorld.TurretTop.DrawTurret () [0x00000] in <filename unknown>:0
  at OHUShips.Building_ShipTurret.Draw () [0x00000] in <filename unknown>:0
  at Verse.DynamicDrawManager.DrawDynamicThings (Verse.DrawTargetDef drawTarget) [0x00000] in <filename unknown>:0
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

faltonico

Quote from: Cpt.Ohu on September 04, 2017, 05:20:12 PM
Quote from: Reinhark on September 01, 2017, 10:57:17 PM
One more minor glitche.

Ship seems to be either over or under-loading. Sometimes both in fact. upon request of loading of single item - say, simple meal x 10 when you have lots of them, - say, 100 - multiple colonists will load the ship with multiple simple meal x 10, resulting in ship having simple meal x 20 or 30.

On the contrary, loading of the crew ends way too early. upon loading half of the crew that I have requested to be loaded, loading will "complete"(message will display that loading is complete) and crew will stop loading any items I told them to load and remaining half of the supposed crew will go on their marry way. Unsure if this is intended feature. At least they should finish loading the items if it is.

I am not using any pawn AI changing mods, but can it still be mod conflict?

No, it's the multiple pawns loading process not working quite right yet. Probably one of the reasons why Tynan limits pawns to 1 hauler per launchpod.

I'm experimenting with different checks now, looks promising that going off-target during loading won't happen again.
This works for me with regular transport pods, various pawns loading a pod:
https://ludeon.com/forums/index.php?topic=34135.msg348399#msg348399
Maybe it could be of some help to you.

Cpt.Ohu

Quote from: SpaceDorf on September 07, 2017, 02:06:22 PM
I made a ship, I can build it, load it, and fly it around but when I try to install a weapon the whole thing explodes ..

Any Idea what this Error Message wants to tell me ?

Exception drawing ShipTurret_Turret250268: System.NullReferenceException: Object reference not set to an instance of an object
  at OHUShips.Building_ShipTurret.<get_ParentShip>b__2_0 (OHUShips.ShipBase x) [0x00000] in <filename unknown>:0
  at System.Linq.Enumerable.First[ShipBase] (IEnumerable`1 source, System.Func`2 predicate, Fallback fallback) [0x00000] in <filename unknown>:0
  at System.Linq.Enumerable.FirstOrDefault[ShipBase] (IEnumerable`1 source, System.Func`2 predicate) [0x00000] in <filename unknown>:0
  at OHUShips.Building_ShipTurret.get_ParentShip () [0x00000] in <filename unknown>:0
  at OHUShips.Building_ShipTurret.get_DrawPos () [0x00000] in <filename unknown>:0
  at RimWorld.TurretTop.DrawTurret () [0x00000] in <filename unknown>:0
  at OHUShips.Building_ShipTurret.Draw () [0x00000] in <filename unknown>:0
  at Verse.DynamicDrawManager.DrawDynamicThings (Verse.DrawTargetDef drawTarget) [0x00000] in <filename unknown>:0


I'd say it wants to tell ME that it hates me ;)
Does it throw that error consistently after reloading?

Quote from: faltonico on September 08, 2017, 02:04:22 AM
This works for me with regular transport pods, various pawns loading a pod:
https://ludeon.com/forums/index.php?topic=34135.msg348399#msg348399
Maybe it could be of some help to you.

Thank you for that link. I think I got a solution independently now.




Update V1.55 is out! Cargo loading should now be precise, the pawn wander bug should stop after 3 ingame hours at most, and turrets can be uninstalled properly.

SpaceDorf

Quote from: Cpt.Ohu on September 09, 2017, 03:40:06 AM

I'd say it wants to tell ME that it hates me ;)
Does it throw that error consistently after reloading?


Haven't tried reloading yet, the error happen when I install a weapon into the ship and does not stop,
I have to shut down the game and I can't deinstall the weapon after installing it.

I will try the update but my guess is I messed up the weapons slot :

Shipsize is :

<graphicData>
      <texPath>Things/Ships/GD_Ships/Cheetah_drawing</texPath>
      <graphicClass>Graphic_Single</graphicClass>
      <shaderType>Cutout</shaderType>
      <drawSize>(5,5)</drawSize>
    </graphicData>

<size>(5,2)</size>


   
And the weapons slot is defined like this, my main problem is the sudden appearance of a third variable in the positioning :


        <weaponSlots>
<li>
          <SlotName>Left Gun</SlotName>
          <slotType>LightCaliber</slotType>
          <turretPosOffset>(2,0,0)</turretPosOffset>
          <turretMinSize>(1,1)</turretMinSize>
    </li>
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

SpaceDorf

The Error Disappeared with 1.55

Installing and Uninstalling the turret works now whithout problem.

still a short explanation of "<turretPosOffset>(2,0,0)</turretPosOffset>"
would be cool.
I allready dentified the first as x-axis, but would like to know if I can use "real"-values or
if I am bound to integer.
And which values can I use for z.
Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

Minnigin

Quote from: SpaceDorf on September 11, 2017, 08:03:46 AM
And which values can I use for z.

I think its like the Cartesian coordinate system, the center number will always be 0 since its supposed to represent the z axis

SpaceDorf

Quote from: Minnigin on September 11, 2017, 08:19:56 AM
Quote from: SpaceDorf on September 11, 2017, 08:03:46 AM
And which values can I use for z.

I think its like the Cartesian coordinate system, the center number will always be 0 since its supposed to represent the z axis

I know :)
But in this case the z-Axis stands for graphic layers. Above the wing, under the wing .. etc.

Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

Cpt.Ohu

X and Z are in actual coordinates in the cartesian 2d system. Y is the height of the object, so a negative value renders the turret underneath the plane, a positive or zero value above. You can use floating numbers for this entry.

The other position offset defines the tile in which the turret will spawn.

SpaceDorf

Maxim 1   : Pillage, then burn
Maxim 37 : There is no overkill. There is only open fire and reload.
Rule 34 of Rimworld :There is a mod for that.
Avatar Made by Chickenplucker

EpicGunBlast

#404
Just updated the mod and it was all working fine, did some runs to settlements came back and now the drop ship has nothing i can select (launch, load etc). Also when i try constructing one it just disapears once the construction bill is done, heres the error it shoots out:

System.NullReferenceException: Object reference not set to an instance of an object
  at OHUShips.ShipTracker+<>c__DisplayClass21_0.<ShipsInFleet>b__0 (OHUShips.ShipBase x) [0x00000] in <filename unknown>:0
  at System.Collections.Generic.List`1[OHUShips.ShipBase].FindAllStackBits (System.Predicate`1 match) [0x00000] in <filename unknown>:0
  at System.Collections.Generic.List`1[OHUShips.ShipBase].FindAll (System.Predicate`1 match) [0x00000] in <filename unknown>:0
  at OHUShips.ShipTracker.ShipsInFleet (Int32 ID) [0x00000] in <filename unknown>:0
  at OHUShips.ShipBase+<GetGizmos>d__76.MoveNext () [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()

Edit:  Also when i use godmode to try and spawn one in i get this error

Object reference not set to an instance of an object
  at OHUShips.ShipBase.InitiateInstalledTurrets () [0x00000] in <filename unknown>:0
  at OHUShips.ShipBase.InitiateShipProperties () [0x00000] in <filename unknown>:0
  at OHUShips.ShipBase.PostMake () [0x00000] in <filename unknown>:0
  at Verse.ThingMaker.MakeThing (Verse.ThingDef def, Verse.ThingDef stuff) [0x00000] in <filename unknown>:0
  at RimWorld.Designator_Build.DesignateSingleCell (IntVec3 c) [0x00000] in <filename unknown>:0
  at Verse.DesignatorManager.ProcessInputEvents () [0x00000] in <filename unknown>:0
  at RimWorld.MapInterface.HandleMapClicks () [0x00000] in <filename unknown>:0
  at RimWorld.UIRoot_Play.UIRootOnGUI () [0x00000] in <filename unknown>:0
  at Verse.Root.OnGUI () [0x00000] in <filename unknown>:0