Giter Site home page Giter Site logo

glassbricks / stagedblueprintplanning Goto Github PK

View Code? Open in Web Editor NEW
8.0 3.0 2.0 41.75 MB

The ultimate Factorio mod for advanced blueprint planning.

License: GNU Lesser General Public License v3.0

TypeScript 100.00%
factorio factorio-blueprints mod

stagedblueprintplanning's Introduction

Staged blueprint planning

A factorio mod for designing advanced staged blueprints, e.g. for 100% speedruns.

For more info, see the mod portal page (https://mods.factorio.com/mod/bp100).

Contributing

If you're interested in contributing to this project yourself (or just want to play around), see the setup instructions in Contributing.md.

Support this project

If you find this mod useful, consider tipping me on Ko-fi!

Buy Me a Coffee at ko-fi.com

stagedblueprintplanning's People

Contributors

glassbricks avatar jarg-compilatron avatar marwes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

marwes moller21

stagedblueprintplanning's Issues

Bob's Adjustable inserters can't be rotated or flipped

When using https://mods.factorio.com/mod/bobinserters and trying to rotate or flip an inserter which has had its pickup and dropoff locations altered the rotation or flip doesn't get applied to the pickup or dropoff location. (Except sometimes it seems to, it is really inconsistent).

This happens for both ghosts and real entities. Changing the inserter settings back to be a "normal" inserter makes the dropoff and pickup location rotate again.

Feature request - blueprint descriptions in book templates

I use blueprint descriptions to keep track of certain things (how much mineral sludge does this build produce, etc.) and I'm finding the only way to update these blueprints is to either manually copy across the description every time I update them, or ignore the mod's built-in blueprint creator (extremely useful, btw, love that feature) and just select new contents for each blueprint. The problem with that is that if I make changes to grid settings, I have to redo them all manually and if just one entity is removed from the edge of a blueprint, it screws the grid alignment between them up (when scrolling through the book).

This mod is awesome btw, I haven't said that yet. Keep it up! Very intuitive for the most part and really powerful. Makes designing blueprints with multiple aspects sooooo much easier than it was before.

Allow specifying "default icon settings"

The default icon settings are currently ignored because (I assume) you generally want different icon settings for each individual blueprint to number them. I do think it could be a useful "default" setting anyway though I can think of two different ways to implement it.

  • Append the icons of the default settings to the individual blueprints. This would let numbering still work, and you could add more icons to individual blueprints if needed while still allowing for a broad icon to mark the book at large (say a steam engine for a power plant).
  • Have the default icon settings provide the icons for the generated book. Not really a default, but it would allow configuring the icons of the book which would make it easy to differentiate different blueprint books on the hotbar.

It is a minor issue in the grand scheme of things but I figure it is better to create the issue and have it closed than not creating an issue at all.

Allow using set seed/map settings

Feature

This mod is sometimes used in set-seed settings (e.g. speedruns using blueprints).

This feature would be to explicitly support using these settings instead of always having a lab tiles (instead of workarounds).

Feature request - auto decon entities

In my current Seablock planning save, I upgrade buildings/builds to different processes between stages. I want to be able to add/remove entities that interact/overlap with future stages. Could this happen with a toggleable option?

The toggleable option being: Auto-deconstruct the overlapping entity - the one(s) on any lower stage - in the nearest (above) stage that has the overlapping entity. Does this make sense?

So I have a building on a later stage, and I want to place an inserter on a lower stage into the same space. As of a recent update, this is no longer possible (yay for bugfix, nay for my workaround no longer works :( ). So my solution to this would be that the inserter I'm placing would be auto-decon'd on the stage with the building that is blocking it.

Upgraded entities leave behind undeletable entity preview

If in one stage you upgrade any entity to a higher tier and then subsequently need to remove said entity completely (i.e. from the first stage it appears in), right-click only removes the non-upgraded version of the entity. It leaves behind a preview that appears in all stages. Force deleting doesn't work and outputs an error to the factorio-current.log file.

Undeletable underground belts
Underground belt (before right-click removal)

Crash on stage name change

On fresh map with lab tiles, without any other mods, renaming Stage for blueprint crashes the script:

  20.848 Checksum for script __bp100__/control.lua: 3240698080
  21.029 Script @__bp100__/entity/entity-prototype-info.lua:20: Processing blueprint-able entity prototypes
  24.116 Script @__bp100__/lib/protected-action.lua:13: Protected action: unexpected error occurred:
LuaGuiElement API call when LuaGuiElement was invalid.
stack traceback:
    __bp100__/ui/StageSelector.lua:86: in function <__bp100__/ui/StageSelector.lua:85>
    (...tail calls...)
    __bp100__/lib/event/Event.lua:34: in function 'raise'
    __bp100__/lib/event/Property.lua:138: in function 'set'
    __bp100__/lib/factoriojsx/render.lua:29: in function <__bp100__/lib/factoriojsx/render.lua:28>
    (...tail calls...)
    [C]: in function 'xpcall'
    __bp100__/lib/protected-action.lua:17: in function 'protectedAction'
    __bp100__/lib/factoriojsx/render.lua:489: in function <__bp100__/lib/factoriojsx/render.lua:478>

Doesn't work with concrete

Concrete placed at an earlier stage, doesn't appear on later stages. This basically makes it unusable.

This is the case whether or not "use next stage tiles" is checked or not checked.

Blueprint book "templates" for more custom export options

Feature

Blueprint book "templates", which allows users to customize their exported books.

These are blueprint books that may have "template" blueprints referencing stages. On export, the templates are replaced with the actual blueprints.

Books may also contain other things (decon planners, normal blueprints, etc.)

Properties gui

A gui on each entity showing the changed properties at the current layer, and options to modify.

Re-opening gui on corresponding entity when moving between layers.

Better GUI for setting blueprint filters

Feature

Instead of using a deconstruction planner, use a custom gui for setting blueprint filters and showing hidden items.
This also gets rid of the confusing tiles tab and unused blacklist/whitelist button.

Possibly, "stage overrides" in changed filters can be made more obvious/configured.

๐Ÿ› Upgrading belts doesn't upgrade belts

Version 1.1.103 of the game and 0.27.4 of the mod.

Create a new game and make a new project and get into /editor mode.

  1. Place some yellow belt in stage 1
  2. In stage 2, use the upgrade planner to upgrade the belt to red belt
  3. Notice in stage 3 that the upgraded section(s) of belt are yellow

Exporting the blueprints also reflects this as well. While in most cases it's not a major issue, it will highlight red in the game and could make people think something is wrong. It also results in bad throughput in planning since belt will not be correct.

Krastorio 2 inserter drop location compatibility

In Krastorio 2, it's possible (via hotkey or added UI) to change whether inserters target the near or far side of the destination tile. However, this state is lost when the stage is rebuilt, and not propagated to later stages.

I don't know much about Factorio modding, but the K2 code that does it appears to be here.

Reading the API docs, I think you need to check for allow_custom_vectors on inserter prototypes and, when it's truthy, explicitly track the state of entity drop_position when rebuilding or copying entities to a later stage?

(I don't have it installed anywhere but I would not be surprised to learn this also affects Bob's Adjustable Inserters)

(suggestion) save description text for each stage

At the same place where icons and grid settings for the current stage can be customized, please add the function to save the description text.
I'd really like to add some explanations for each stage.
Writing them in the mod would save some time.
Thanks for this awesome mod.

Belt optimizer

Automatic undergrounds-optimization (for straight lines only).

Staged Cut/Copy/Delete

Feature

Introduce cut/copy tools which also preserve entity's staging info.
This allows users to move entire sections of builds while keeping stages.

A "delete" tool (that deletes all entities regardless of stage) can also be added for completeness.

Landfill is unncessarily generated under blacklisted entities

Since blacklisted entities aren't part of the generated blueprint I'd expect that landfill isn't generated under those entities since they are not part of the final blueprint. Though it would still need to generate when doing the landfill generation via the gui in the project.

[suggestion] Make the upgrade-on-paste feature available outside of staged builds as a separate mod.

As this: https://forums.factorio.com/viewtopic.php?f=6&t=80563 and many other similar Factorio forum posts show, the ability to upgrade or downgrade machines that can be fast-replaced by using a matching blueprint would be a welcome feature.

Since the feature is not planned (as far as I know) to be added to the base game, and the StagedBlueprintPlanning mod already allows this behavior (but only for staged builds), it would be great if the functionality of marking blueprinted fast-replaceable entities for upgrade on blueprint paste could be added to the game as a separate mod.

Usage with seablock

I have been experimenting with this a bit for use with seablock and while it works pretty well there are some issues I found.

  • The landfill feature is great but it is hardcoded to use the "landfill" tile which isn't available in seablock. I hacked around it by changing the hardcoded "landfill" tile names to "sand-3" which is the default in seablock. Having an mod option or a per stage option which lets you set which tile to use for landfill would be great (even if you have to find the name of the tile via debug info yourself).
  • The option to only include entities changed in the last N stages doesn't seem to apply to tiles, so the blueprint will effectively just become larger and larger as every single landfill tile placed will be included in all subsequent stages. Not a real issue for me yet (still a small blueprint) but still. (Edit: Workaround might be to split up into multiple projects, maybe)

Angel's petrochem valves pasting issue

Using the Seablock modpack (or just Angel's Petrochemical processing mod, it doesn't really matter), the valves don't get correctly registered by the mod (i.e. staged blueprinting) when blueprinted or cut/copied and pasted.

To reproduce:

  • Ensure you're in editor mode for instant blueprinting
  • Open a game with Angel's Petrochemical Processing mod installed
  • Place down any of the valves (i.e. top-up, overflow, inspector or non-return), one in each orientation
  • Take a blueprint/copy/cut of this configuration and paste it down
  • Either click "Rebuild stage" or make a new one

The 2 valves with orientation facing upwards and rightwards get erased.
This is consistent with all 4 of Angel's Petrochem valves.

Edit:
This also affects the Petrochem small inline tank.

Could this please be fixed?
Thank you :) x

Entities are erased when creating new stage

When inserting a new stage after one that has entities marked for staged-deconstruction, those marked entities are erased from the newly inserted stage, instead of retaining their soon-to-be-deconstructed status. Attached a video for reference.
Can this be fixed?
Thank you!

"Revert" button for blueprint settings

Feature

It can be easier to use "stage overrides" mechanic for blueprint settings if there is also a "revert" button for overridden settings, especially for complex settings (like filters)

๐Ÿ› Auto-landfill places landfill unnecessarily

Config:

Factorio 1.1.102, Mod version 0.27.3

Reproduction steps:

  1. Create a new game
  2. Create a new stage
  3. For the auto-selected stage, go to Blueprints -> Settings: Default, enable "Auto-landfill"
  4. For the auto-selected stage, go to Blueprints -> Export, select "Get blueprint for current stage"
  5. Observe that four tiles of landfill is placed under the player (perhaps more if the player moved)

The expected behaviour is that landfill is only placed under entities, not out in the general area. This can get out of hand for large bases where normal "blank space" would be covered in landfill.

Crash with Space Ex

Heya, getting a crash with space exploration mod.

Dont have the error at hand but its about bp100:passed-prototype-info has a too long localised_description key, longer than 250 if i remember correctly.

Can't blacklist Electric energy interface (and inifite pipes/chests)

The "Electric energy interface" that is available to generate infinite electricity can't be selected as part of the "Entity filters". It would be useful to place an interface in the blueprint to get rid of all the electricity warnings and easily check that everything is covered by electric poles and then omit the interface in the final blueprint (assuming here that the blueprint gets it power from elsewhere when placed).

I guess the same thing applies to infinite chests/pipes which could be useful to have in the blueprint, but they are then removed and the placed blueprint get its inputs from an actual source.

Consider a new package for factorio-jsx

Would you consider creating a separate installable package for Factorio JSX? Very cool stuff. I'd like to use it along with typed-factorio and factorio-test. Thanks for all your mods + packages :)

Integration/support with Editor Extensions

Feature

Some entities (e.g. infinity loader) with custom behavior (managed by script, not by the game) don't yet work together with StagedBlueprintPlanning.
This feature is to support Editor Extensions entities, and possibly other similar mods as well

Some kind of memory corruption or something?

Something bad happened. The following stuff is going on:

  1. Random concrete tiles appearing
  2. Can't exit to the overworld
  3. Various staged stuff isn't appearing anymore at any stage

2023-11-11 18_39_43-Factorio 1 1 94

"Test" surface

Feature

(As requested by thedoh)

Allow users to create a "test"/sandbox surface for testing staged builds.
A UI allows stages can be quickly deployed/removed while on the surface.

Improve UX for setting blueprint icons

Improvement

Setting blueprint icons are kinda awkward: they are "per-stage" settings which may not be obvious to normal users.
Changing this to defaults/stage vs overrides maybe more intuitive

Support tiles

Feature

Support tiles changing between stages, just like entities.

Support usage in "non-sandbox" saves

Feature

The mod currently assumes that it will be used in editor mode/sandbox mode.

This feature would be to allow the mod to be used in "normal" saves, by replacing the character and changing to a "test" force, similar to the Editor Extensions testing/lab surface.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.