Project Universal Astronaut and Cargo System (UACS)

Abdullah Radwan

Addon Developer
Addon Developer
Joined
Aug 20, 2017
Messages
314
Reaction score
284
Points
78
Location
Cairo
thank you for latest version
may I ask - what are .pdb files in Modules folder ?

-------------------------------------------
btw
got ctd with first in Earth orbit scenario

============================ ERROR: ===========================
Failed loading module Modules\Plugin\OrbiterSkyboltClient.dll (code 193)
[Orbiter::LoadModule | .\Orbiter.cpp | 600]
===============================================================
============================ ERROR: ===========================
Failed loading module Modules\Plugin\LaunchMFD.dll (code 126)
[Orbiter::LoadModule | .\Orbiter.cpp | 600]
===============================================================


after disabling those two scenario loads fine.
then got ctd on Moon scenario, with this

============================ ERROR: ===========================
Parse error from base definition file for Cape Canaveral: Block: TEXn: expected 3 values (*char, scalar, scalar)
[BaseObject::parseError | .\Baseobj.cpp | 184]
===============================================================


:confused:
The PDB files contain debug information, useful for other developers to track calls and identify bugs.

As for the CTD, it seems like it has nothing to do with UACS. Maybe your Orbiter installation is broken. Try a new installation and report back.
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,715
Reaction score
2,684
Points
203
Location
Dallas, TX
Trying to figure this out.
SLOT = seats/places in the vessel in UMMU crew #
But trying to figure out how to tell the person which airlock to egress from?
 

Abdullah Radwan

Addon Developer
Addon Developer
Joined
Aug 20, 2017
Messages
314
Reaction score
284
Points
78
Location
Cairo
New release: https://github.com/abdullah-radwan/UACS/releases/download/v1.0-prerelease6/v1.0.Pre-release.6.zip

Changelog:

Added​

  • Action areas.

Changed​

  • Ingress range are now specified by the vessel.
  • Renamed InBreathableArea to InBreathable. Astronauts can specify whether to check atmosphere or not.
  • Ability to specify whether the airlock must be open or vessel has at least one empty station in GetNearestAirlock.
  • Default astronaut HUD.

Fixed​

  • Airlock ground position ignored in Ingress and GetNearestAirlock methods.
 

Abdullah Radwan

Addon Developer
Addon Developer
Joined
Aug 20, 2017
Messages
314
Reaction score
284
Points
78
Location
Cairo
Trying to figure this out.
SLOT = seats/places in the vessel in UMMU crew #
But trying to figure out how to tell the person which airlock to egress from?
Stations are the seats for astronauts. Slots are for cargo.

You can specify which airlock to egress from in the EgressAstronaut method with the airlockIdx parameter, or pass nullopt and the API will use the first one available.
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,715
Reaction score
2,684
Points
203
Location
Dallas, TX
Looking thru the doc. Can you provide a sample of the action area? I believe in UMMU3 it had a box that if the guy was in it and you pressed a key then a action occurred.

In the API it looks like you have that pos, range.

For example. The guy walks to a moonbase and presses a key it tells the animation state to open /close the door. and airlock is open/closed. I need to figure out out to add sound back in.
 
Last edited:

Abdullah Radwan

Addon Developer
Addon Developer
Joined
Aug 20, 2017
Messages
314
Reaction score
284
Points
78
Location
Cairo
Looking thru the doc. Can you provide a sample of the action area? I believe in UMMU3 it had a box that if the guy was in it and you pressed a key then a action occurred.

In the API it looks like you have that pos, range.

For example. The guy walks to a moonbase and presses a key it tells the animation state to open /close the door. and airlock is open/closed. I need to figure out out to add sound back in.
Action areas are very similar to airlocks. Here is a simple sample:
C++:
void Vessel::clbkSetClassCaps(FILEHANDLE cfg)
{
    UACS::ActionInfo actionInfo;
    actionInfo.name = "Action area";
    actionInfo.pos = { 4,0,-1.3 };
    
    vslAstrInfo.actionAreas.push_back(actionInfo);
}

int Vessel::clbkGeneric(int msgid, int prm, void* context)
{
    if (msgid == UACS::MSG)
    {
        switch (prm)
        {
                case UACS::ACTN_TRIG:
                {
                    size_t actionIdx = *static_cast<size_t*>(context);
                    const auto& actionInfo = vslAstrInfo.actionAreas.at(actionIdx);
                    
                    // Write code based on action
                    
                    return 1;
                }
        }
    }
}
 

gamer19

Well-known member
Joined
Jul 16, 2016
Messages
224
Reaction score
357
Points
78
Salam Abdullah, say, is this supposed to be like this ?

SuitHeight = 1.228 ; The height when the suit is on in meters.
BodyHeight = 1.206 ; The height when the suit is off in meters.

feels like I play Hobbiter
or like I borrow one character from Kerbal
 

Abdullah Radwan

Addon Developer
Addon Developer
Joined
Aug 20, 2017
Messages
314
Reaction score
284
Points
78
Location
Cairo
Salam Abdullah, say, is this supposed to be like this ?



feels like I play Hobbiter
or like I borrow one character from Kerbal
I didn't get what the issue it. If you attached a photo, it didn't appear for some reason.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,617
Reaction score
2,337
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
I didn't get what the issue it. If you attached a photo, it didn't appear for some reason.

He means the height of the astronaut in meters. 122 cm with suit on appears to be quite small, like a child or a dwarf. But I guess the real reason is that it is the height divided by two for acting as Orbiters size parameter.
 

Abdullah Radwan

Addon Developer
Addon Developer
Joined
Aug 20, 2017
Messages
314
Reaction score
284
Points
78
Location
Cairo
He means the height of the astronaut in meters. 122 cm with suit on appears to be quite small, like a child or a dwarf. But I guess the real reason is that it is the height divided by two for acting as Orbiters size parameter.
I got it now. This value is simply the distance from the zero Y level to the astronaut feet. So if the mesh is positioned so that the astronaut feet is at zero Y, the value should be zero. Likewise, if the mesh is positioned so that the astronaut head is at zero Y, the value should be the astronaut height. If the mesh is positioned so that the astronaut waist is at zero Y, the value should be half the astronaut height. I will clarify this in the manual.

The actual height of the default astronaut mesh is 190cm with the suit on and 182cm with the suit off.
 

gamer19

Well-known member
Joined
Jul 16, 2016
Messages
224
Reaction score
357
Points
78
oh I see now, thank you
thank you @Urwumpe for jumping in and clear it up ;)
I'm making my own astronaut (so I don't have to bother Abdullah avatar every time I want to play;)) and now I know the numbers. I'm about 184cm and 80kg
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,715
Reaction score
2,684
Points
203
Location
Dallas, TX
Thanks. I got the action areas to kinda work. So I did one with the default range of 5? But set the range to 2

But it says I am not in range. But the HUD says I am

[ICODE] //UACS Action area { UACS::ActionInfo actionInfo, actionInfo1, actionInfo2, actionInfo3; actionInfo.name = "Left Door"; actionInfo.pos = { -4,-1.948,0 }; actionInfo.range = 2; vslAstrInfo.actionAreas.push_back(actionInfo); actionInfo1.name = "Right Door"; actionInfo1.pos = { 4,-1.948,0 }; actionInfo1.range = 2; vslAstrInfo.actionAreas.push_back(actionInfo1); actionInfo2.name = "Front Door"; actionInfo2.pos = { 0,-1.948,4 }; actionInfo2.range = 2; vslAstrInfo.actionAreas.push_back(actionInfo2); actionInfo3.name = "Aft Door"; actionInfo3.pos = { 0,-1.948,-4 }; actionInfo3.range = 2; vslAstrInfo.actionAreas.push_back(actionInfo3); }
if (msgid == UACS::MSG)
{
switch (prm)
{
case UACS::ACTN_TRIG:
{
size_t actionIdx= static_cast<size_t>(context);
switch (actionIdx)
{
case 0:
RevertDD1();

break;
case 1:
RevertDD0();
break;
case 2:
RevertDD2();
break;
case 3:
RevertDD3();
break;
}
const auto& actionInfo = vslAstrInfo.actionAreas.at(actionIdx);
//RevertDD1();
return 1;
}

[/ICODE]

 

Attachments

  • UACSRANGE1.jpg
    UACSRANGE1.jpg
    61.2 KB · Views: 10
  • UACSRANGE.jpg
    UACSRANGE.jpg
    71.4 KB · Views: 10

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,715
Reaction score
2,684
Points
203
Location
Dallas, TX
So how to save the Suit status? I had a guy on Earth Suit 0 and got in a vessel and exit and had the Suit on.
ALIVE 1
SUIT_ON 0 no space suit on

So I noticed when the guy was on board:
ASTR_STATION 0
ASTR_NAME John_Koenig
ASTR_ROLE Commander
ASTR_MASS 70.000000
ASTR_OXYGEN 0.999056
ASTR_FUEL 1.000000
ASTR_ALIVE 1
ASTR_CLASSNAME UACS\Astronauts\SPACE1999-C

How to save the suit status?
 

Abdullah Radwan

Addon Developer
Addon Developer
Joined
Aug 20, 2017
Messages
314
Reaction score
284
Points
78
Location
Cairo
So how to save the Suit status? I had a guy on Earth Suit 0 and got in a vessel and exit and had the Suit on.
ALIVE 1
SUIT_ON 0 no space suit on

So I noticed when the guy was on board:
ASTR_STATION 0
ASTR_NAME John_Koenig
ASTR_ROLE Commander
ASTR_MASS 70.000000
ASTR_OXYGEN 0.999056
ASTR_FUEL 1.000000
ASTR_ALIVE 1
ASTR_CLASSNAME UACS\Astronauts\SPACE1999-C

How to save the suit status?
Currently, the astronaut always egresses with the suit on, regardless of the suit status at ingress. I will make the suit on at astronaut creation only if in unbreathable area in the next update.
 

gattispilot

Addon Developer
Addon Developer
Joined
Oct 17, 2007
Messages
8,715
Reaction score
2,684
Points
203
Location
Dallas, TX
Not sure if I have this correct. Here I added a guy but not seen until I reload?
FLEX:FLEXUACS ASTR_STATION 0 ASTR_NAME John G. ASTR_ROLE Pilot ASTR_MASS 70.000000 ASTR_OXYGEN 0.999275 ASTR_FUEL 1.000000 ASTR_ALIVE 1 ASTR_CLASSNAME UACS\Astronauts\Xemuredbroke ASTR_STATION 1 ASTR_NAME Abdullah Radwan ASTR_ROLE Commander ASTR_MASS 70.000000 ASTR_OXYGEN 1.000000 ASTR_FUEL 1.000000 ASTR_ALIVE 1 ASTR_CLASSNAME UACS\Astronauts\Xemured
void FLEXUACS::clbkPostCreation () { mdlAPI.clbkPostCreation(); for (size_t idx{}; idx < vslAstrInfo.stations.size(); ++idx) { if (!vslAstrInfo.stations.at(idx).astrInfo) continue; const auto& astrInfo = *vslAstrInfo.stations.at(idx).astrInfo; SetEmptyMass(GetEmptyMass() + astrInfo.mass); SetStationMesh(idx, astrInfo.role, true); } } void FLEXUACS::SetStationMesh(size_t stationIdx, std::string_view role, bool show) { switch (stationIdx) { case 0://left // Show first station commander mesh if (role == "Commander") SetMeshVisibilityMode(6, show ? MESHVIS_ALWAYS : MESHVIS_NEVER); // Show first station pilot mesh else if (role == "Pilot") SetMeshVisibilityMode(5, show ? MESHVIS_ALWAYS : MESHVIS_NEVER); break; case 1://right // Show second station commander mesh if (role == "Commander") SetMeshVisibilityMode(4, show ? MESHVIS_ALWAYS : MESHVIS_NEVER); // Show second station pilot mesh else if (role == "Pilot") SetMeshVisibilityMode(7, show ? MESHVIS_ALWAYS : MESHVIS_NEVER); break; } }
 

Attachments

  • evaadded1.jpg
    evaadded1.jpg
    87.1 KB · Views: 8
  • evaadded.jpg
    evaadded.jpg
    86.7 KB · Views: 8
Top