IMyTextSurface broke GetText() not returning player input text
There may be other issues not sure
tested on single player
tested with cockpit and programmable block
most testing was using cockpit but i suspect IMyTextSurface itself is broke
the correct surface amounts where found using SurfaceCount and GetSurface
problem
GetText() reports empty or previous WriteText() regardless of what is written in any surface by player
reproduction method
so if i type someString in a cockpit panel
GetText() returns "" aka empty string
then i use WriteText("differentString")
GetText() returns "differentString"
then i type someString in the cockpit panel
GetText() still returns "differentString"
testing performed on grid: Static Grid 9560
save listed under attached files
attached files
scriptBaseV5.cs //script used when testing
SpaceEngineers.log //log
VRageRender-DirectX11.log
creative-6.zip //save
scriptLog.png //image of programmable block log
cockpitPanels.png //image of cockpit with various texts on lcd surfaces
hardware
cpu: 23.8.2 "AMD Ryzen Threadripper 2920X 12-Core Processor
gpu: 2x Vega 10 XL/XT [Radeon RX Vega 56/64] (rev c1)
memory: 4x corsair 16GiB DIMM DDR4 Synchronous Unbuffered Unregister
os: linux running under proton-6.10-GE-1
launch options DRI_PRIME=1 %command%
Hello, John!
Thank you for providing all the information here. I have reported this internally for you.
Kind Regards
Laura, QA Department
Hello, John!
Thank you for providing all the information here. I have reported this internally for you.
Kind Regards
Laura, QA Department
This is the reason why HudLcd Multi-screen mod is not working. https://steamcommunity.com/sharedfiles/filedetails/?id=2005632342
As a workaround seems like ReadText is working fine (simplified example):
StringBuilder builder = new StringBuilder();
surface.ReadText(builder, false);
string text = builder.ToString();
This is the reason why HudLcd Multi-screen mod is not working. https://steamcommunity.com/sharedfiles/filedetails/?id=2005632342
As a workaround seems like ReadText is working fine (simplified example):
StringBuilder builder = new StringBuilder();
surface.ReadText(builder, false);
string text = builder.ToString();
Replies have been locked on this page!