Commit Graph
1082 Commits
Author SHA1 Message Date
Jonathan Coates 010ebacd1a Fix mount suggestion always being printed out 2021-05-25 22:16:57 +02:00
Lupus590 9e002beed7 Add cc.expect.range (#790) 2021-05-25 22:16:57 +02:00
Jonathan Coates 6029defb20 Use a separate region for the bottom pocket computer border
This is definitely not a good solution, but it's probably the best we
can do right now given resizable computers are a thing.

Fixes #775, closes #776
2021-05-25 22:16:57 +02:00
Jonathan Coates c16aa5f247 Fix build failures
- Add license headers. Also check these during pre-commit.
 - Fix javadoc issue.
2021-05-25 22:16:57 +02:00
Jummit 8d27bdca7b Expose GenericSource to the public API
- Remove the service provider code and require people to explicitly
   register these. This is definitely more ugly, but easier than people
   pulling in AutoService or similar!
 - Add an API for registering capabilities.
 - Expand the doc comments a little. Not sure how useful they'll be, but
   let's see!

There's still so much work to be done on this, but it's a "good enough"
first step.
2021-05-25 22:16:57 +02:00
Jonathan Coates 41aa8fa163 Add example to turtle.inspect
A pretty common but non-trivial API, so worth having something. Even if
not perfect.
2021-05-25 22:16:57 +02:00
Jummit e40fb67b50 Add inventory.getItemLimit
Closes #781
2021-05-25 22:16:57 +02:00
Jonathan Coates 652b7ebba6 Use lightGrey for folders on normal computers
This way we still get some differences between files and folders on
normal computers. I did try with just green, but I think the contrast is
too low.

Closes #656
2021-05-25 22:16:57 +02:00
Jonathan Coates f0d7a1165d Don't close file handles from ResourceMounts
Unlike short handles, we don't read these immediately, and so we can't
close it right away. Otherwise the file is considered empty!

Fixes SquidDev-CC/treasure-programs#1
2021-05-25 22:16:57 +02:00
Euric 4a20eea852 Defer monitor tile update when placed by another TE 2021-05-25 22:16:57 +02:00
Jonathan Coates ccdd2bf477 Add some examples to inventory methods
Closes #761. It's not perfect, but it's a little better. Maybe??
2021-05-25 22:16:57 +02:00
Jonathan Coates 8d8f41a50b Simplify our overrides of load/loadstring
- Remove auto-prefixing of load/loadstring
 - Use Cobalt's normal load implementation, with a simple hook to
   set _ENV on the environment.
2021-05-25 22:16:57 +02:00
Jonathan Coates 72c78db28b Correctly handle sparse arrays in cc.pretty
This also swaps the order we display mixed array/maps in, so that the
array part comes first. I think this is more sensible.

Closes #777
2021-05-25 22:16:57 +02:00
Jummit bff2e81713 remove partial java and lua test suites 2021-05-25 18:17:44 +02:00
David Queneau 264dbc570f Fixed turtle tool upgrades not rendering in GUI. 2021-05-16 11:16:01 -07:00
David Queneau e4ad8bc117 Fixed turtle ability to feed/breed passive mobs. 2021-05-16 11:16:01 -07:00
David Queneau 1b31972092 Fixed turtle ability to place signs with text. 2021-05-16 11:16:01 -07:00
David Queneau 6cd9fa9fb2 Fixed turtle bone meal usage 2021-05-16 11:16:01 -07:00
David Queneau d10f297ca0 Turtles handle double chest inventories correctly. Cleaned up generic inventory code. 2021-05-16 11:16:01 -07:00
Merith-TK 9ae5636d41 update readme, add overhaul resourcepack as submodule 2021-05-16 11:12:12 -07:00
Merith 76e0507c3b Merge pull request #31 from Jummit/new-textures
Update the textures to fit Jappa's style
2021-05-16 09:58:11 -07:00
Jummit d8e2fab2b1 Update the textures and add an optional programmer art texturepack 2021-05-16 18:51:40 +02:00
Merith 5a309258af Merge branch 'fabric' into merith-1.16.5-pr 2021-05-16 09:42:11 -07:00
Jonathan Coates 46846a4fde Improve UX when a resource mount cannot be found
- Add a full example of the docs. Hopefully is a little more explicit.
 - Print a warning when the mount is empty.

Closes #762
2021-05-16 14:25:09 +02:00
Jonathan Coates d955443b21 Add citation to cc.pretty
ust to look extra pretentious.
2021-05-16 14:18:48 +02:00
Jonathan Coates 57e6c49844 Make the peripheral API examples a little clearer 2021-05-16 14:18:43 +02:00
Jonathan Coates 66dbab7a6b "Finish" documentation for several modules
- Add remaining docs for the turtle API
 - Add documentation for the fluid storage peripheral.
 - Enforce undocumented warning for most modules (only io and window
   remaining).

"Finish" in quotes, because these are clearly a long way from perfect.
I'm bad at writing docs, OK!
2021-05-16 14:17:57 +02:00
lily 558976e4ca Fixed sortCoords for draw functions (#749) 2021-05-16 14:17:01 +02:00
Jonathan Coates 3a7470a108 Add documentation for io.setvbuf
Fixes #746.

Love how "good first issue" guarantees that nobody will do it. Not
actually true, and thank you for those people who have contributed!
2021-05-16 14:16:55 +02:00
Wojbie cf2b332c3c Fix missing term.setCursorBlink(true) in edit.lua 2021-05-16 14:15:41 +02:00
Ronan Hanley 8984ebcf80 Refactor and add tests for TextBuffer (#738) 2021-05-16 14:15:35 +02:00
Jonathan Coates a28e7e2db3 Bump version to 1.95.3 2021-05-16 14:14:31 +02:00
Jonathan Coates 3860e2466c Add User-Agent to Websockets
I think, haven't actually tested this :D:. Closes #730.
2021-05-16 14:13:19 +02:00
Wojbie 5b31c2536a Make edit display errors/results of execution and handle require. (#723) 2021-05-16 14:10:53 +02:00
WeblateandMatheus Medeiros Souza 98dc7a6e58 Translations for Portuguese (Brazil)
Co-authored-by: Matheus Medeiros Souza <mmedeiros.cbp@gmail.com>
2021-05-16 14:10:48 +02:00
Jonathan Coates 5e0ceda7ce Clarify the turtle.place docs a little
Closes #714
2021-05-16 14:10:43 +02:00
SkyTheCodeMaster 7fe3ac9222 Fix redstone.getBundledInput(side) returning the output of said side. 2021-05-16 14:09:10 +02:00
Jonathan Coates a65b8ed04c Migrate all examples to use tweaked.cc
Might as well, I've got the server capacity to spare. Hopefully.
2021-05-16 14:08:25 +02:00
FensieRenaud 1710ad9861 Serialise sparse arrays into JSON (#685) 2021-05-16 14:00:29 +02:00
Jonathan Coates 9c48c99be7 Bump version to 1.95.2 2021-05-16 13:57:43 +02:00
WojbieandLupus590 70a1cf5c5a id.lua now handles more disk types (#677)
Co-authored-by: Lupus590 <lupussolitarius590@gmail.com>
2021-05-16 13:53:00 +02:00
Jonathan Coates b546a10bd6 Preserve registration order of upgrades
Makes them display in a more reasonable order within JEI. Closes #647
(note, the title is an entirley separate issue)!
2021-05-16 13:51:01 +02:00
Jonathan Coates 891dde43a9 Clarify the cc.strings.wrap docs a little
Also make the example a bit more "useful". Hopefully this should clarify
that the function returns a table rather than a single string.

Closes #678.
2021-05-16 13:24:54 +02:00
Jonathan Coates 094e0d4f33 Fix mounts being usable after a disk is ejected
This probably fails "responsible disclosure", but it's not an RCE and
frankly the whole bug is utterly hilarious so here we are...

It's possible to open a file on a disk drive and continue to read/write
to them after the disk has been removed:

    local disk = peripheral.find("drive")
    local input = fs.open(fs.combine(disk.getMountPath(), "stream"), "rb")
    local output = fs.open(fs.combine(disk.getMountPath(), "stream"), "wb")
    disk.ejectDisk()

    -- input/output can still be interacted with.

This is pretty amusing, as now it allows us to move the disk somewhere
else and repeat - we've now got a private tunnel which two computers can
use to communicate.

Fixing this is intuitively quite simple - just close any open files
belonging to this mount. However, this is where things get messy thanks
to the wonderful joy of how CC's streams are handled.

As things stand, the filesystem effectively does the following flow::
 - There is a function `open : String -> Channel' (file modes are
   irrelevant here).

 - Once a file is opened, we transform it into some <T extends
   Closeable>. This is, for instance, a BufferedReader.

 - We generate a "token" (i.e. FileSystemWrapper<T>), which we generate
   a week reference to and map it to a tuple of our Channel and T. If
   this token is ever garbage collected (someone forgot to call close()
   on a file), then we close our T and Channel.

 - This token and T are returned to the calling function, which then
   constructs a Lua object.

The problem here is that if we close the underlying Channel+T before the
Lua object calls .close(), then it won't know the underlying channel is
closed, and you get some pretty ugly errors (e.g. "Stream Closed"). So
we've moved the "is open" state into the FileSystemWrapper<T>.

The whole system is incredibly complex at this point, and I'd really
like to clean it up. Ideally we could treat the HandleGeneric as the
token instead - this way we could potentially also clean up
FileSystemWrapperMount.

BBut something to play with in the future, and not when it's 10:30pm.

---

All this wall of text, and this isn't the only bug I've found with disks
today :/.
2021-05-16 13:23:37 +02:00
Wojbie df40adce20 Make rightAlt only close menu, never open it. (#672)
Fixes #669
2021-05-16 09:22:11 +02:00
Jummit e12ce95b2d Update to 1.16.4 2021-05-16 09:18:02 +02:00
Jonathan Coates bcc0effd00 Fix impostor recipes for disks
Well, this is embarrassing. See #652
2021-05-16 07:57:06 +02:00
Jonathan Coates 64f3aa2dba Fix problem with RepeatArgumentType
The whole "flatten" thing can probably be dropped TBH. We don't use it
anywhere. Fixes #661
2021-05-16 07:48:07 +02:00
Wojbie 515ccfebd3 Added Numpad Enter Support in rom lua programs. (#657) 2021-05-16 07:43:06 +02:00
Lupus590 0b6dbe7778 Add isReadOnly to fs.attributes (#639) 2021-05-16 07:42:55 +02:00