Skip to content
This repository has been archived by the owner on Jul 19, 2020. It is now read-only.

Releases: MCJack123/craftos

CraftOS-PC v1.2.2

24 May 22:12
Compare
Choose a tag to compare

Bugfix release related to keyboard events. (Re-released to patch some critical bugs.)

  • Holding Ctrl-T terminates the running program
  • Unused resized terminal space will now be the same color as the background
  • Left/right modifier keys are now discriminated in key events
  • Shift key presses now send key events
  • Pressing alt no longer loses focus
  • key_up events now send the correct key when pressing modifier keys

CraftOS-PC v1.2.1

20 Apr 04:55
Compare
Choose a tag to compare

Quick bugfix release.

  • Added a showFPS config option to enable an FPS display in the top-left corner
  • Config changes are now saved immediately instead of on shutdown
  • Old config files will now be replaced on the next save
  • os.reboot no longer shuts down the computer entirely
  • Reduced the complexity of the rendering backend, hopefully making things a bit smoother

CraftOS-PC v1.2

05 Apr 03:19
Compare
Choose a tag to compare

CraftOS-PC v1.2 is the biggest update to CraftOS-PC ever, bringing many new features to ComputerCraft that have never been seen before.

  • Added a new graphics mode, allowing individual pixel access
  • Added three new "fun" programs
    • raycast: Demo of ray casting with the graphics mode
    • gfxpaint: Demo paint program running in graphics mode
    • bmpview: Views ccbmp format image files (see /rom/programs/fun/advanced/images)
  • Added font API for software font rendering
  • Added ability to resize terminal
  • Added HTTP server with http.listen()
  • Added new icons and extra fluff on the Windows executable
  • Fixed macOS compatibility
  • Fixed other bugs
  • Improved performance & stability
  • New Mac bundle with JRE included

I plan on releasing most of the features so far as a fork of the actual ComputerCraft mod soon, so it has the same features as CraftOS-PC.

CraftOS-PC v1.2 Release Candidate 1

02 Apr 04:55
Compare
Choose a tag to compare
Pre-release

IMPORTANT: Remove your ~/.craftos/config.ser file before using this build for the first time, as I have changed the format of the file. CraftOS-PC WILL NOT BOOT unless the file is removed. This will result in the configuration variables being reset, but they weren't even being used at all so (see change 3) it's not that big of a deal.

Has all of the features in Beta 1, as well as:

  • Added ability to resize terminal
  • Removed 127.0.0.1 from the HTTP blacklist
  • Fixed bug where the configuration did nothing
  • Added HTTP server functionality
    • http.addListener(port): Tells the server to start listening on a port
    • http.removeListener(port): Tells the server to stop listening on a port
    • http.listen(port, callback(req, res)): Runs an HTTP server on a port that calls the callback when a request is made
      • Callback argument req: Read handle with the following extra methods:
        • req.getURL(): Returns the URI endpoint of the request
        • req.getMethod(): Returns the HTTP method of the request
        • req.getRequestHeaders(): Returns the headers sent by the client
      • Callback argument res: Write handle with the following extra methods:
        • res.setStatusCode(code): Sets the HTTP response code to be sent
        • res.setResponseHeader(key, value): Sets a response header
      • ALWAYS call res.close when done writing data, or the data will not be sent
    • Event http_request: Sent when an HTTP request has been made on an open port
      • port: The port the request was made on
      • req: The request object
      • res: The response object
    • Event server_stop: Send inside an http.listen callback to stop listening

I've included an HTTP server with the binaries; you can use this by making a /www directory and running server.lua.

CraftOS-PC v1.2 Beta 1

26 Feb 04:51
Compare
Choose a tag to compare
Pre-release

CraftOS-PC v1.2 demo
Some pretty big things in this update.
Added:

  • Terminal graphics mode, allowing for individual pixel addressing
    • Default screen is 306x171
    • Use term.setGraphicsMode(boolean) to switch modes
    • Use term.setPixel(x, y, color) to set pixels
    • Use term.getPixel(x, y) to get the color of a pixel
    • Mouse events will give coordinates of pixel instead of character in graphics mode
  • New API: font
    • Software font renderer for graphics mode
    • Requires graphics mode to be enabled before using
    • Allows loading custom fonts (see rom/apis/term.lua for more information, this was initially going to be built into the term API)
  • New programs for "fun"
    • gfxpaint: Demo program for simple image drawing (not as complex as paint yet)
    • raycast: Ray casting demo
      • This was shamelessly stolen from a TI-84+ CE ray casting program
    • bmpview: Displays CCBMP format images on the screen
      • You can convert a 16-color PNG under 306x171 with the included imageutils/convert_png tool
      • Some sample images are under rom/programs/fun/advanced/images

(The image at the top was taken from King's Quest IV. Here's the original:
King's Quest IV
Doesn't the CC version look pretty much the same as the original?)

CraftOS-PC v1.1

21 Nov 06:05
Compare
Choose a tag to compare

Includes everything in 1.1b1, plus bugfixes:

  • Mouse actions now respect new window borders
  • term.setPaletteColor works properly
  • Fixed HTTP requests (I think, it seems to work fine now)

CraftOS-PC v1.1 Beta 1

16 Oct 04:34
Compare
Choose a tag to compare
Pre-release

What's new

  • Added peripheral emulation
    • Uses the periphemu API
    • Also linked into peripheral API
    • Use periphemu.create(side, type[, option]) to create
    • Use periphemu.remove(side) to remove
    • Currently only monitors and printers are supported; speaker support is coming soon
  • Added config API & tool
    • config.get(name): Get value of setting
    • config.set(name, value): Set value of setting
    • config.list(): List all available settings
      • http_enable
      • disable_lua51_features
      • default_computer_settings
      • logPeripheralErrors
      • computerSpaceLimit
      • maximumFilesOpen
      • maxNotesPerTick
      • clockSpeed
    • config.getType(name): Get type of value
      • 0 = boolean
      • 1 = string
      • 2 = number
  • Added mounter API
    • mounter.mount(name, path[, readOnly]): Mount local path to name
    • mounter.unmount(name): Unmount name
    • mounter.list(): List all mounts
  • Added mount and unmount commands
  • Added margins at the edges
  • General performance improvements

Please note this is PRE-RELEASE SOFTWARE and may still have bugs. This is just a preview of what's to come.

CraftOS-PC v1.0

14 Oct 09:29
Compare
Choose a tag to compare

CraftOS-PC is a port of the CraftOS operating system from the popular Minecraft mod ComputerCraft. This is a mostly full port of the mod to desktop, removing the parts that only work in a Minecraft world.

What works

  • Full terminal interaction (mouse/keyboard)
  • Color support
  • Most programs written for ComputerCraft should work out-of-the-box

What doesn't work

  • HTTP (for now, it's a bug)
  • Peripherals (printers, disk drives, speakers, monitors)
  • Networking
  • Support for mounting external folders (WIP)

How to use

Just download and run the JAR file and the terminal will automatically start.