Skip to content

Programmable Computers for Stardew Valley. Fourth attempt.

License

Notifications You must be signed in to change notification settings

nk2IsHere/computersng

Repository files navigation

Computers

Programmable computers for Stardew Valley. Fourth attempt.

title

Goals.

Generally:

Make processing of Stardew's resources a configurable function pipe-like process by introducing programming.

Specifically this mod should:

  • Add computer bigcraftable (can be placed anywhere) which

    • is interactable by player
    • has screen and input console
    • supports some interpreted programming language (python? lua? - undecided)
    • has apis that allow it to interact with other storages/machines..
    • auto-discovers machines indirectly connected to it (meaning that machines may form a group by attaching to each other and computer)
    • has peripherals
  • Add monitor bigcraftable (can be placed anywhere) which

    • will have its own api to display requested data
    • will be of different sizes
    • will have to be connected directly to computer to operate
  • Add peripherals:

    • Wireless stations - allows communication with other computers on a limited distance
    • ??? (still undecided)

TODOs

Basic item support

  • Add bigcraftable type
  • Add craftingrecipe type
  • Add support for functional redux-like store
  • Create dataStore for patcher
  • Add support for figuring out the next ids for mod's bigcraftables
  • Add dictionary (Data/BigCraftablesInformation, Data/CraftingRecipes) patching
  • Add tilesheet (TileSheets/Craftables) patching

POC of Computer in-game (DONE)

  • Make computer bigcraftable interactable on use action
  • Make computer interaction display centered window
    • Make drawable window
    • Make a set of custom draw primitives commands
    • Make draw stack with merging last drawn image to one
    • Make displayed window render custom graphics in batch using commands
    • Make an abstraction over stardew's code
  • Add support for interpretable language in-library
  • Add VMs (sandboxes) for each computer instance in world
  • Add save state mechanism for computers, make them movable and attach id tag for any obtained computer
  • Add basic console interpreter for each computer
  • Add basic stdlib apis for computers
  • Add per-save state for computers

Meaningful Computer (IN PROGRESS)

  • Add support for file system (storage encapsulation)
  • Add support for custom packages loading
  • Add support for public networking
  • Add support for layered file system
  • Add support for separate core libraries
  • Add peripherals support with event-based communication
  • Add support for computer-to-computer communication
  • Add possibility of auto-discovering machine groups with computer as controller using peripheral
  • Add package-based libraries

Kudos/Inspiration

  • Automate mod for Stardew
  • OpenComputers mod for Minecraft
  • Graphics from Stardew Valley (original computer design recycled)

References/Used resources

About

Programmable Computers for Stardew Valley. Fourth attempt.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published