Page 1 of 1

[2.0.11] Items that can place Empty Space break most Space Platform Foundation behaviors

Posted: Sun Oct 27, 2024 3:42 pm
by somethingtohide
What did you do?
I introduced an Item Prototype that can place Empty Space tiles. This is a reduced scope example of what I did that still causes the issues:

Code: Select all

local space_tile = data.raw["tile"]["empty-space"]
data:extend({
    {
        type = "item",
        name = space_tile.name,
        localised_name = space_tile.localised_name,
        icon = "__core__/graphics/icons/close.png",
        icon_size = 32,
        order = space_tile.order,
        hidden_in_factoriopedia = true,
        stack_size = 1000,
        place_as_tile = {
            result = space_tile.name,
            condition = { layers = {} },
            tile_condition = { "lab-dark-1", "lab-dark-2" },
            condition_size = 1,
        },
    },
})
What happened?
The good part is that it does what I primarily wanted it to: provide an item that can replace some Lab Tiles with Empty Space tiles.

The bad part is that it essentially broke real Space Platforms, in at least two important ways:
  1. Space Platforms can no longer delete/remove portions of their Platform Foundations. Instead, they are marked with the red-x and remain that way.
  2. Space Platforms allow "non-doughnut" shapes; they will build all newly placed/requested Platform Foundations in any shape.
What did you expect to happen instead?
I did not expect the Space Platform Foundation functionality to be affected in any way.

Does it happen always, once, or sometimes?
I play with a few settings of the item, particularly its layer conditions, but it seems to always happen. It only seems to happen with the empty-space tile; I tried out-of-map in case it related to the layer-group of zero, but that did not harm anything.

Log file

Code: Select all

   0.000 2024-10-27 09:26:53; Factorio 2.0.11 (build 79682, linux64, full, space-age)
   0.007 Operating system: Linux (Arch rolling)
   0.007 Program arguments: "/home/cameron/src/factorio/factorio-space-age/bin/x64/factorio" "--instrument-mod" "debugadapter" "--enable-unsafe-lua-debug-api" "--check-unused-prototype-data" 
   0.007 Config path: /home/cameron/src/factorio/factorio-space-age/config/config.ini
   0.007 Read data path: /home/cameron/src/factorio/factorio-space-age/data
   0.007 Write data path: /home/cameron/src/factorio/factorio-space-age [357280/1031018MB]
   0.007 Binaries path: /home/cameron/src/factorio/factorio-space-age/bin
   0.014 System info: [CPU: 12th Gen Intel(R) Core(TM) i9-12900KF, 24 cores, RAM: 128684 MB]
   0.014 Environment: DISPLAY=:0 WAYLAND_DISPLAY=<unset> DESKTOP_SESSION=i3 XDG_SESSION_DESKTOP=i3 XDG_CURRENT_DESKTOP=i3 SDL_VIDEODRIVER=<unset> __GL_FSAA_MODE=<unset> __GL_LOG_MAX_ANISO=<unset> __GL_SYNC_TO_VBLANK=<unset> __GL_SORT_FBCONFIGS=<unset> __GL_YIELD=<unset>
   0.015 Display options: [FullScreen: false] [VSync: true] [UIScale: manual-pixels (200.0%)] [Native DPI: true] [Screen: 255] [Special: lmw] [Lang: en]
   0.030 Video driver: x11
   0.030 Available displays: 1
   0.030  [0]: LG HDR 4K 27" - {[0,0], 3840x2160, SDL_PIXELFORMAT_RGB888, 60Hz}
   0.578 Initialised OpenGL:[0] NVIDIA GeForce RTX 4090/PCIe/SSE2; driver: 3.3.0 NVIDIA 560.35.03
   0.578   [Extensions] s3tc:yes; KHR_debug:yes; ARB_clear_texture:yes, ARB_copy_image:yes, ARB_pipeline_statistics_query:yes, ARB_gl_spirv:yes, ARB_ES2_compatibility:yes
   0.578   [Version] 3.3
   0.578 Graphics settings preset: very-high
   0.578   Dedicated video memory size 24564 MB
   0.827 Graphics options: [Graphics quality: high] [Video memory usage: all] [DXT: high-quality]
   0.827                   [Max threads (load/render): 32/24] [Max texture size: 0] [Tex.Stream.: false] [Rotation quality: normal] [Other: STDCWT] [B:0,C:0,S:100]
   0.841 [Audio] Driver:pulseaudio, Device:Default device, Depth:16, Channels:2, Frequency:44100
   0.945 Info ModManager.cpp:434: FeatureFlag expansion-shaders = true
   0.945 Info ModManager.cpp:434: FeatureFlag freezing = true
   0.945 Info ModManager.cpp:434: FeatureFlag quality = true
   0.945 Info ModManager.cpp:434: FeatureFlag rail-bridges = true
   0.945 Info ModManager.cpp:434: FeatureFlag segmented-units = true
   0.945 Info ModManager.cpp:434: FeatureFlag space-travel = true
   0.945 Info ModManager.cpp:434: FeatureFlag spoiling = true
   0.946 Loading mod settings debugadapter 2.0.0 (instrument-settings.lua)
   0.950 Loading mod settings debugadapter 2.0.0 (settings.lua)
   0.950 Loading mod settings blueprint-sandboxes 2.1.2 (settings.lua)
   0.951 Loading mod settings blueprint-sandboxes 2.1.2 (settings-final-fixes.lua)
   0.952 Loading mod core 0.0.0 (data.lua)
   0.961 Loading mod settings debugadapter 2.0.0 (instrument-data.lua)
   0.962 Loading mod base 2.0.11 (data.lua)
   1.042 Loading mod blueprint-sandboxes 2.1.2 (data.lua)
   1.047 Loading mod elevated-rails 2.0.11 (data.lua)
   1.058 Loading mod quality 2.0.11 (data.lua)
   1.063 Loading mod space-age 2.0.11 (data.lua)
   1.159 Loading mod base 2.0.11 (data-updates.lua)
   1.165 Loading mod blueprint-sandboxes 2.1.2 (data-updates.lua)
   1.171 Loading mod quality 2.0.11 (data-updates.lua)
   1.182 Loading mod space-age 2.0.11 (data-updates.lua)
   1.189 Loading mod blueprint-sandboxes 2.1.2 (data-final-fixes.lua)
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[ammo-turret][se-meteor-defence-container] not found; cannot create Illusion
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[ammo-turret][se-meteor-point-defence-container] not found; cannot create Illusion
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[assembling-machine][se-delivery-cannon] not found; cannot create Illusion
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[assembling-machine][se-delivery-cannon-weapon] not found; cannot create Illusion
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[assembling-machine][se-energy-transmitter-injector] not found; cannot create Illusion
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[assembling-machine][se-energy-transmitter-emitter] not found; cannot create Illusion
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[assembling-machine][se-space-elevator] not found; cannot create Illusion
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[boiler][se-energy-transmitter-chamber] not found; cannot create Illusion
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[container][se-rocket-launch-pad] not found; cannot create Illusion
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[container][se-rocket-landing-pad] not found; cannot create Illusion
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[electric-energy-interface][se-energy-beam-defence] not found; cannot create Illusion
   1.190 Script @__blueprint-sandboxes__/prototypes/illusions-final-fixes.lua:45: data[mining-drill][se-core-miner-drill] not found; cannot create Illusion
   1.248 Checksum for core: 1043092351
   1.248 Checksum of base: 708330460
   1.248 Checksum of debugadapter: 1888325578
   1.248 Checksum of blueprint-sandboxes: 2570730652
   1.248 Checksum of elevated-rails: 1891730324
   1.248 Checksum of quality: 4264147466
   1.248 Checksum of space-age: 4032004066
   1.463 Finished checking unused prototype data in 0.005148 seconds. Number of properties that were used: 632344
   1.512 Prototype list checksum: 3381502675
   1.559 Loading sounds...
   1.692 Info PlayerData.cpp:66: Local player-data.json available, timestamp 1730042810
   1.692 Info PlayerData.cpp:73: Cloud player-data.json unavailable
   1.857 Initial atlas bitmap size is 16384
   1.870 Created an atlas bitmap (size 16384x16356) [none]
   1.887 Created an atlas bitmap (size 16384x16376) [none]
   1.910 Created an atlas bitmap (size 16384x16384) [none]
   1.911 Created an atlas bitmap (size 16384x15420) [none]
   1.911 Created an atlas bitmap (size 16384x8392) [decal]
   1.915 Created an atlas bitmap (size 16384x16384) [low-object]
   1.915 Created an atlas bitmap (size 4096x1376) [low-object]
   1.915 Created an atlas bitmap (size 16384x13456) [corpse-decay]
   1.915 Created an atlas bitmap (size 16384x5596) [none]
   1.915 Created an atlas bitmap (size 1676x79) [not-compressed]
   1.915 Created an atlas bitmap (size 8192x6096) [mipmap, linear-minification, linear-magnification, linear-mip-level]
   1.922 Created an atlas bitmap (size 16384x16320) [terrain, mipmap, linear-minification, linear-mip-level]
   1.922 Created an atlas bitmap (size 16384x4832) [terrain, mipmap, linear-minification, linear-mip-level]
   1.922 Created an atlas bitmap (size 8192x3872) [terrain-effect-map, mipmap, linear-minification, linear-mip-level]
   1.922 Created an atlas bitmap (size 4096x3088) [smoke, mipmap, linear-minification, linear-magnification]
   1.922 Created an atlas bitmap (size 8192x2576) [mipmap]
   1.922 Created an atlas bitmap (size 2048x1520) [mipmap]
   1.922 Created an atlas bitmap (size 4096x3152) [mipmap]
   1.922 Created an atlas bitmap (size 4096x3152) [mipmap]
   1.922 Created an atlas bitmap (size 4096x3152) [mipmap]
   1.922 Created an atlas bitmap (size 8192x3808) [icon, not-compressed, mipmap, linear-minification, linear-magnification, linear-mip-level]
   1.923 Created an atlas bitmap (size 16384x6120) [alpha-mask]
   1.942 Created an atlas bitmap (size 16384x16380) [shadow, linear-magnification, alpha-mask]
   1.947 Created an atlas bitmap (size 16384x16384) [shadow, linear-magnification, alpha-mask]
   1.947 Created an atlas bitmap (size 16384x8356) [shadow, linear-magnification, alpha-mask]
   1.947 Created an atlas bitmap (size 8192x2352) [shadow, mipmap, linear-magnification, alpha-mask]
   1.947 Created an atlas bitmap (size 2048x520) [icon-background, not-compressed, mipmap, linear-minification, linear-magnification, linear-mip-level, ]
   1.947 Loading 3D bitmaps.
   1.953 Texture processor created (2048). GPU accelerated compression Supported: yes, Enabled: yes/yes. Test passed. YCoCgDXT PSNR: 35.83, BC3 PSNR: 33.82
   1.984 Parallel sprite loader initialized (threads: 23, bitmaps: 8229)
  11.922 Sprites loaded
  11.946 Generated mipmaps (4) for atlas [5] of size 16384x16384   
  11.949 Generated mipmaps (4) for atlas [6] of size 4096x1376   
  11.956 Generated mipmaps (3) for atlas [10] of size 8192x6096   
  11.984 Generated mipmaps (3) for atlas [11] of size 16384x16320   
  11.995 Generated mipmaps (3) for atlas [12] of size 16384x4832   
  11.999 Generated mipmaps (3) for atlas [13] of size 8192x3872   
  12.002 Generated mipmaps (3) for atlas [14] of size 4096x3088   
  12.027 Generated mipmaps (3) for atlas [15] of size 8192x2576   
  12.032 Generated mipmaps (3) for atlas [16] of size 2048x1520   
  12.034 Generated mipmaps (3) for atlas [17] of size 4096x3152   
  12.048 Generated mipmaps (3) for atlas [18] of size 4096x3152   
  12.050 Generated mipmaps (3) for atlas [19] of size 4096x3152   
  12.093 Generated mipmaps (5) for atlas [20] of size 8192x3808   
  12.100 Generated mipmaps (3) for atlas [25] of size 8192x2352   
  12.127 Custom mipmaps uploaded (3258)
  12.148 Custom inputs active: 3
  12.197 Factorio initialised
  12.198 Info HttpSharedState.cpp:55: Downloading https://updater.factorio.com/updater/get-available-versions?username=somethingtohide&token=<private>&apiVersion=2
  12.510 0 packages available to download (experimental updates disabled).
  13.813 Loading map /home/cameron/src/factorio/factorio-space-age/saves/bpsp-cheats-020100.zip: 2916094 bytes.
  13.820 Loading level.dat: 7086269 bytes.
  13.823 Info Scenario.cpp:178: Map version 2.0.11-3
  13.852 Blueprint storage "blueprint-storage-2.dat" was not found, trying to load previous version storage "blueprint-storage.dat"
  13.852 Loading script.dat: 2150 bytes.
  13.863 Checksum for script __level__/control.lua: 966399835
  13.871 Checksum for script __debugadapter__/control.lua: 3938038067
  13.906 Checksum for script __blueprint-sandboxes__/control.lua: 3291369593

Re: [2.0.11] Items that can place Empty Space break most Space Platform Foundation behaviors

Posted: Sun Oct 27, 2024 4:05 pm
by Rseding91
Thanks for the report. I'm not sure if we want to spend the time to address these things. If it's not crashing, at best I would say "don't do that" and maybe another developer wants to spend the time to write tests and address these behaviors.

Re: [2.0.11] Items that can place Empty Space break most Space Platform Foundation behaviors

Posted: Sun Oct 27, 2024 4:21 pm
by somethingtohide
I see; I can imagine a few ways to work around this, so I'll get to it.