Giter Club home page Giter Club logo

satisgraphtory's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

satisgraphtory's Issues

Show Grid

Add a check box to 'show grid'.

UX: check box in settings, adds a slightly darker grid that indicates where objects will snap to when 'snap-to-grid' is checked. Disabled if 'snap-to-grid' is not checked.

Custom item source and output rate

When building different layouts it would useful to add a node that outputs a user selected resource at a user specified rate. Instead of having to graph out the entirety of, say, a copper ingot factory, a user could just place a source, select copper, and specify 120 per minute.

Drag and Drop

As a user I want to select multiple items and drag them all and drop them, retaining all connections within the selection and to objects outside the selection, and retaining relative positions within the selection.

Selection is the same selection as copy/paste (#4 )

UX: hold a modifier key (shift/ctrl/alt/whatever), click on anything that's NOT an object, drag around your selection, let go of everything.

Changing Mk Level

Allow users to update the MK level of an object (including belts) by select, then shift-scroll wheel. Only available when a single object is selected.

Toolbar/Quick Select

Have an area of the canvas that contains assignable quick slots where the user can hit 1 to place an object of the type that's in slot 1, 2 for slot 2, etc.

UX to suggest layout

Support for touch devices

First of all I want to thank you for creating this awesome tool, it has helped me many times. I wanted to use Satisgraphtory on my iPad but I realized that a keyboard is reqired to use it. You May want to provide a different input method for creating belts on touch devices.

Input and output numbers always visible

The number indicating maximum output for current overclock should be visible.

numbers

it should read 0/## when none of the input type is supplied, or when it cannot output anything.

Belt enhancements

In addition to 'shift-click-drag' to create a belt, add new methods of adding belts:

1> Click on the arrow coming out of an object and drag to destination

Smart splitter

Allow the output lines to be set with which product should come out.

This seems like just click on the output arrow/belt, and select the item

Image export

As a user, I am able to export an image in PNG format that includes the entire layout I have constructed.

Include a small margin around the edge so that any numbers aren't cut off, and leave a little gap outside of that for readability.

Have a screenshot button in the top bar (UX person, weigh in on location, look, etc)

Cut/Copy/Paste

As a user, I want to

select multiple items
be able to issue the command to copy (leave the original) OR
be able to issue the command to cut (remove the original)

Then, issue the command to paste, resulting in a duplicate of the original selection. This does not include connections to items outside the selection.

UX: can we do ctlr-x/ctrl-c/ctrl-v? That's the optimal pattern. Also include buttons in top bar or in the main canvas when a multi-item selection is active.

See #3 which requires the same selection tool

Save/Load

As a user, I want to save my layouts for later editing, and load them whenever I wish to edit them.

UX: Save/Load in top bar

Power calculation

Calculate power load for all items in the layout.

UX: visual indicator on display. UX designer, please weigh in.

Undo/Redo

Limit it? Tracking too many changes is memory intensive

Dark Mode

Have a settings in the settings menu to add 'Dark mode'.

UX person to detail colors for dark mode

Save feature?

Any feature for saving current graph?

The closest one I found is the share button, and it doesn't seem to work.

Help text updates

Explanation of icons, numbers next to objects or on belts, etcetera, in the (?) option. Perhaps tabs or some other easy to read help system

UX to weigh in on how to present information

Auto-merge

When you connect a belt with specific contents to an object that already contains an input with that same contents, add a merger prior to the receiving object.

For instance, you have iron ingots going into a rods constructor. You add another iron ingots belt into that constructor. Create a merger that accepts both inputs, and outputs to the constructor, moving the belt that was previously going to the constructor to the merger.

Auto analyze

Automatically re-analyze after every change to the layout

Could be computationally expensive if it's a complex layout

This is an opt-in option in the settings area

SPIKE: verify optimization algorithm

When I attempted the optimization algorithm, it led to one machine being overclocked to 237%, and another of the same type being underclocked to 25%.

All machines at a specific point in the chain (i.e. all smelters that feed from the same raw material source) should be over/underclocked to the same percentage.

splitter inputs not updating

  1. Place two containers.
  2. Set each container to be infinite source with just one item.
  3. Connect each container to a splitter or whatever, then analyze.
  4. Delete the belts connected to the containers, then analyze.
  5. Connect the containers again, then analyze.

https://satisgraphtory.com/#aDdobGs%3D

Look at the splitter inputs. The bottom one is taking in wire, but says Rubber in. The top one is taking in rubber, but says Wire in.

Rewrite optimization

As per tehalexf:

"Optimize does indeed work, but I'm rewriting it from scratch. Auto-optimize may mess with your stuff so I want to put in some options for auto-optimize otherwise people will get mad"

multiple belts from splitter to merger

Allow more than one output from a single splitter to go to a single merger.

Example: If your splitting 30 into 3 parts of 10, allow a merger to accept 2 of those to make 20.

Power generation

See #5

New objects that handle power generation (biomass burner, coal, geothermal, nuclear, fuel generator)

Auto-splitter

When the user attempts to link two objects from a non-splitter output object, create a splitter and link the original output to the splitter, and all outputs from the splitter to the various connections.

Settings modal

Create a modal or other screen that contains all settings.

Instead of the settings box in lower left of screen, have a gear icon in top bar that opens a settings modal window (with scrollbar if necessary) that contains all settings options.

Automatic optimization

Have a checkbox setting for automatically optimizing all structures in the layout.

Presumes optimization does what's intended

Calculate materials used on objects

It would be nice to know how much of a raw material a machine uses.

For instance, if you have an assembler making stitched plates, you know how much wire it's using, but you don't know how much of the original resource you used to make that wire. If it's all copper, it's one value, if you're using the iron wire recipe, it's a different value, if you're using the alternate iron ingot recipe, it's yet another value...etc. Have a tooltip or some other way of showing how much of the material furthest back in the chain is used for THIS factory and for ALL factories with this recipe. I say "furthest back in the chain" because you could have a container as your source of iron ingots, and you odn't know how those ingots were made. So you calculate the number of ingots.

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.