Programmable computers for Stardew Valley. Fourth attempt.
Make processing of Stardew's resources a configurable function pipe-like process by introducing programming.
-
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)
- 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
- 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
- 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
- Automate mod for Stardew
- OpenComputers mod for Minecraft
- Graphics from Stardew Valley (original computer design recycled)
- HomeVideo CC0 font from https://ggbot.itch.io/home-video-font
- Monogram CC0 font from https://datagoblin.itch.io/monogram
- Jint library from https://github.com/sebastienros/jint
- Stardew Valley modding guide from https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started