keinniemand / factorio-ghostonwater Goto Github PK
View Code? Open in Web Editor NEWFactorio mod to make it possible to paste blueprints on water in one go
Home Page: https://mods.factorio.com/mod/GhostOnWater
License: MIT License
Factorio mod to make it possible to paste blueprints on water in one go
Home Page: https://mods.factorio.com/mod/GhostOnWater
License: MIT License
Space scaffolding get's added to entities that can already be placed in space add an additional check to make sure an entity actually collides with space/water before placing landfill/scaffolding or convert water ghosts to real ghosts (when possible) before trying to place landfill.
Assuming that during placement it is possible to:
Then changing the entity id for any blueprint entity that is hovered completely over land to the entity id of the placed version on land should fix issues with red collision placement highlighting. It also has the additional upside of making all ghosts placed on land with a water placeable blueprint compatible with regular, non water placeable blueprints.
Would be usefull feature, but probably not easy to implement
Things that would need to be done:
Apprently accoding to the report on the forums it's probably just a load order issue and can be fixed by adding space exploration post process as optional dependency so this mod loads after.
I am not sure if this is fixable, and there are workarounds.
But if GOW print of just chain signals is placed next to rails, they do not engage the rail properly.
A full blueprint works.
Currently nothing in the mod has a localized name, at minimum the mod settings and shortcut button need a localized name (hardcoded or in a locale) so settings have a proper name.
Related to this bug report on the discussion page: https://mods.factorio.com/mod/GhostOnWater/discussion/63fd1290873b4763b37e4763
May or may not actually be related to Industrial Revolution 3 (could be some other mod)
Mod page discussion link: https://mods.factorio.com/mod/GhostOnWater/discussion/638d163e53224d794ae72c94
Seems to be some kind of issue with the stack size of the item for water ghsot merging chests beeing to low, look at how merging chests itself fixes this.
When I convert a blueprint book in my inventory to water placeable (using either the toolbar button or the keyboard shortcut, a non-recoverable error occurs with the following error message.
This doesn't seem to be the case for other blueprint books, just this one.
Instead of searching all entitles for water ghosts every time the mod updates, store water ghosts in a table in global and use that table when processing.
Add water ghosts to this table trough events like on_built_entity or script_raised_built or any other possible build events. Scan for water ghosts entities when initializing the global table, and maybe do infrequent scans refilling the table, if there are any issues regarding water ghost entities not ending up in the table.
probably just a matter of adding it as an optional dependency (it probably creates it's inserters in data-final-fixes so I just have to make sure this mod loads later)
Found an issue playing Space Exploration, using Endgame Combat. GoW does not seem to upg tower so tries to place standard towers and since all the tower are upged there are none to place.
A minor thing but inconvinient
Error ModManager.cpp:1560: Error while sorting items-to-place for entity prototype "waterGhost-wooden-trashdump-10x10" (container): item-to-place "waterGhost-wooden-chest" count (100) can't be larger than the the item stack size (50).
Requires mod to be disabled to load.
Please advise
Add Support for landfill types from the Platform mod (https://mods.factorio.com/mod/platforms) suggested via Discord.
The changes in collision masks when SE is also installed break the Selection priority for the Vehicle Depot from AAI, to fix this a patch has to be added that changes the selection priority of the different vehicle depot entitles when both mods are installed to ensure the right entity (the container and maybe the signal) can be selected.
Can't think of a generic way to fix this so I guess a fix would have to be added for every multi entity that breaks due to collision mask/selection priority problems.
As title
When placing ghost landfill under curved rails, ghost landfill is not placed under every tile required to place the curved rail.
Mod currently only checks ghosts on nauvis it should check all surfaces.
If you have a blueprint with rail and/or chain signals then the ghost on water version is not marking trees or rocks for deconstruction. They are just sitting there and waiting until the tree/rock is manually removed. Happens with vanilla and only ghost on water installed.
Maybe related to this issue: https://mods.factorio.com/mod/GhostOnWater/discussion/63598d137533c4faf851108c
Changes in collision masks cause rails to be selected over trains when hovering over trains, to fix this either increase selection priority of trains or maybe decrees selection priority for rails from the default of 50.
Factorio Forum Thread: https://mods.factorio.com/mod/GhostOnWater/discussion/63f8b045aabdeb98aa9351b6
Shallow water collides with floor layer when space exploration is installed so if possible remove that from water ghosts, make sure that landfill placements still works. Without SE vanilla shallow water apperntly collides with object layer, but this might be irrelevent as shallow water my not appear in vanilla normally.
Add a Subcategory (regular category is aperrently not enough) for water ghost items and entities so they are separate from other things in some menus like the editor.
Get Blueprint Entitys returns nil when the blueprint has no entities (tile only blueprints), there needs to be a check to prevvent crashes if that's the case.
Currently offshore pumps are not supported, because they require special logic to work. Add support for offshore pumps (including modded offshore pumps) landfill should only be placed on the part of the offshore pump that needs to be on land.
If possible add also place ghost water fill (if a water fill mod is installed) to the part of pumps that needs to be in water.
Probably missing a check to check if the entity converted back is actually a water ghost.
I don't know if this is a bug with Nanobots or GhostOnWater.
In case it matters, I've tested as follows (using Factorio 1.1.78, Nanobots 3.2.19 and GhostOnWater 0.11.4):
/c game.player.insert{name="gun-nano-emitter", count=1}
/c game.player.insert{name="ammo-nano-constructors", count=100}
/c game.player.insert{name="landfill", count=100}
Shift-placing a stone furnace has nanobots build it, as well as shift-placing landfill on water.
If I cheat in the necessary bits to have vanilla construction bots, the GhostOnWater-ified blueprint gets built.
Existing blueprints cannot be made water placeable, only blueprints created since the mod was installed. The blue highlighting of entities which overlap a ghost in a "compatible" way only work with objects placed since the mod was installed. Otherwise the collision is red, even if the objects would normally highlight blue.
empty space in space exploration collides with "object-layer" and a few custom layers(check if those need to be added as well) in addition to what water collides with. to prevent building building on top of each other, some kind of custom layer probably needs to be added to both ghosts and original entities that collide with object layer or any of the custom SE layers that have to be removed.
22631.442 Error MainLoop.cpp:1284: Exception at tick 30033103: Мод Ghost On Water (0.11.2) вызвал неустранимую ошибку.
Пожалуйста, сообщите об этой ошибке автору мода.
Error while running event GhostOnWater::InputWaterGhostBlueprintUpdate (ID 180)
__GhostOnWater__/modules/blueprints.lua:14: attempt to index field 'cursor_stack' (a nil value)
stack traceback:
__GhostOnWater__/modules/blueprints.lua:14: in function 'updateBlueprint'
__GhostOnWater__/control.lua:83: in function 'handler'
__stdlib__/stdlib/event/event.lua:342: in function 'pcall'
__stdlib__/stdlib/event/event.lua:362: in function 'dispatch_event'
__stdlib__/stdlib/event/event.lua:438: in function <__stdlib__/stdlib/event/event.lua:396>
22631.442 Error ServerMultiplayerManager.cpp:92: MultiplayerManager failed: "Мод Ghost On Water (0.11.2) вызвал неустранимую ошибку.
Пожалуйста, сообщите об этой ошибке автору мода.
Error while running event GhostOnWater::InputWaterGhostBlueprintUpdate (ID 180)
__GhostOnWater__/modules/blueprints.lua:14: attempt to index field 'cursor_stack' (a nil value)
stack traceback:
__GhostOnWater__/modules/blueprints.lua:14: in function 'updateBlueprint'
__GhostOnWater__/control.lua:83: in function 'handler'
__stdlib__/stdlib/event/event.lua:342: in function 'pcall'
__stdlib__/stdlib/event/event.lua:362: in function 'dispatch_event'
__stdlib__/stdlib/event/event.lua:438: in function <__stdlib__/stdlib/event/event.lua:396>"
Space Exploration has an item called Constrcution Pylon and Radar Constrcution Pylon. These are basically a roboprt and a power pole at once. If you blueprint a single one, then the blueprint actually shows, that it requires two of them. Without #20 only one of them has a dummy. With that PR both have a dummy.
Issue happens in both versions. Everything works fine when placed on land. But when placed on water, it will break, because robots will place at least one of the ghost. If that happens before the landfill is placed, then it will stay forever a dummy item and the other ghost will also stay there forever.
Probably happens with every multi-entity (or however the technical term is for these).
balanced-waterfill breaks the ability to place water ghosts in space for space exploration, probably balanced-waterfill messing with collision masks in some way.
First thank you for your mod.
Second, I found a small issue. GoW seems to not place the proper land for this mod.
https://github.com/nikolai-matijevic/ImprovedCombinatorSE
I think it has to do with the left and right wire connector areas on the Improved combinators needing land under them, but your GoW does not detect that.
Thank you for your time.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.