SquidDev
44ba4069c1
Print stack traces/add logging messages in several places
...
This will hopefully make it easier to track down various issues which
might otherwise go unnoticed or provide little information.
The main areas modified are those that external APIs may provide values
for or interact with: various providers and ILuaObject/IPeripheral
implementations. However, we do also log in a couple of other places
which indicate a problem with this, or another, mod.
2017-05-16 15:49:55 +01:00
SquidDev
bdc438fc62
Add a basic logging system
...
This adds a common ILogger interface and two built-in loggers - one
which prints to stdout, the other using a Log4J logger. These are split
up as not to cause dependency issues for emulators.
The stdout logger is enabled by default, but the ComputerCraft mod class
will swap over to using FML's mod specific logger, which provides a more
consistent look with the rest of Minecraft.
2017-05-16 15:49:55 +01:00
Restioson
b3c49db761
Made Speaker threadsafe & fix warnings
2017-05-15 17:42:29 +02:00
Restioson
7ff4631a9f
@gegy1000 strikes again
2017-05-15 17:42:29 +02:00
Restioson
aad81bead7
Fix style
...
@gegy1000 don't say *I* get distracted
2017-05-15 17:42:29 +02:00
Restioson
88b55934c7
Fix castException
2017-05-15 17:42:29 +02:00
Restioson
42962dcd48
Fix Noisy turtles not in creative - Thanks @SquidDev
2017-05-15 17:42:29 +02:00
Restioson
093d2ea89f
Added PocketSpeaker & corrected blockmodel for turtle speaker
2017-05-15 17:42:29 +02:00
Restioson
97a6679510
Dammit, I hope my git history works now!
2017-05-15 17:38:50 +02:00
Restioson
a3b0e4e993
Added speaker as turtle peripheral
2017-05-15 17:38:50 +02:00
Restioson
3bf15a3798
Added speaker model - potentially glitched
2017-05-15 17:38:50 +02:00
Restioson
dc96f2121a
Fix Speaker not playing sounds on break and replace for entire Lua session
2017-05-15 17:38:50 +02:00
Restioson
2899246dbc
Fix speaker peripheral API
2017-05-15 17:38:50 +02:00
gegy1000
2444245b80
Speaker rendering and name
2017-05-15 17:38:50 +02:00
Restioson
a748d0167b
Fixed Speaker being recognized as Disk Drive. Massive thanks to @SquidDev
2017-05-15 17:38:50 +02:00
Restioson
6cf1801f7e
Changed method names to camelCaser
2017-05-15 17:38:50 +02:00
Restioson
61c08afc7f
Implemented speaker. It's broken though - thinks it's a Disk Drive
...
~~Damn Tile Entities these days, always with their identity crises~~
2017-05-15 17:38:50 +02:00
Restioson
61dc61d356
Attempt to fix git history #2
2017-05-15 17:36:29 +02:00
Daniel Ratcliffe
7f365c5102
Merge pull request #232 from SquidDev-CC/feature/remove-duplicate-history
...
Do not insert empty or duplicate entries into shell history
2017-05-15 14:00:15 +01:00
SquidDev
63cdc7a72e
Replace reflection with access transformers
...
This makes the code slightly neater and allows us to catch places where
the variable/function has been renamed between versions.
2017-05-14 17:01:14 +01:00
SquidDev
cf7308dbc8
Fix holes appearing in coloured turtles
...
There was a very small gap between the turtle frame and the top of the
turtle body. This increases the height of the body by one pixel, adding
a little bit of overlap and ensuring the frame renders on top fixes
this issue.
2017-05-14 16:02:15 +01:00
SquidDev
b37dbbd0af
Allow dying pocket computers too
...
This splits up the pocket computer textures and models into the frame
(off, on, blinking), colour layer (normal, advanced, custom) and modem
light.
2017-05-14 15:02:56 +01:00
SquidDev
a6b870dfbb
Expand IPocketAccess.getLight/setLight to use RGB colours
...
This allows us to restore the modem light to its original colour.
2017-05-14 14:22:20 +01:00
SquidDev
6426255bd4
Remove getColour and setColour methods from ITurtleAccess
...
This allows us to remove the m_Colour field from TurtleBrain
2017-05-14 14:17:55 +01:00
SquidDev
8c36eccfef
Allow dying turtles arbitrary colours
...
- Makes ITurtleItem implement IColourableItem
- Only cache one turtle item model for all colours, rather than one for
each colour.
- Allow ITurtleAccess to set an arbitrary colour.
2017-05-14 14:17:55 +01:00
SquidDev
88de097c1c
Add more general item colouring system
...
This allows for other items, such as turtles, to be dyed in the future.
This also adds support for the ore dictionary, meaning you can use other
mod's dyes to colour items.
2017-05-14 14:17:54 +01:00
SquidDev
6ccffe9742
Refactor the filesystem and HTTP code
...
- Move the encoding/decoding from the Filesystem implementation to the
individual handles.
- Move each handle into an core.apis.handles package from the main fs
API.
- Move the HTTP response to inherit from these handles.
- Allow binary handles' read function to accept a number, specifying
how many characters to read - these will be returned as a Lua string.
- Add readAll to binary handles
- Allow binary handles' write function to accept a string which is
decoded into the individual bytes.
- Add "binary" argument to http.request and friends in order to return
a binary handle.
- Ensure file handles are open when reading from/writing to them.
- Return the error message when opening a file fails.
2017-05-13 22:47:28 +01:00
Daniel Ratcliffe
2fd01b2adf
Merge pull request #233 from SquidDev-CC/feature/file-handle-errors
...
Provide various error messages for file handles
2017-05-13 21:55:37 +01:00
Daniel Ratcliffe
ea0d688345
Merge pull request #234 from SquidDev-CC/feature/remap-ids
...
Remap all blocks and items to underscore_case
2017-05-13 21:44:10 +01:00
Daniel Ratcliffe
891666c8bf
Merge pull request #220 from SquidDev-CC/feature/item-handler
...
Replace most inventory handling code with IItemHandlers
2017-05-13 21:31:58 +01:00
SquidDev
a328308f67
Switch from using INetwork to IPacketNetwork
2017-05-13 20:43:12 +01:00
SquidDev
e6ef1cfadd
Add packet network API
...
This provides a publically accessible way of interacting with wireless
networks, hopefully extending to wired networks in the future.
Unlike the original INetwork/IReceiver system, networked devices listen
on all channels, filtering when they recieve the packet. This allows
other peripheral mods to be more flexible in their packet handling.
2017-05-13 20:43:10 +01:00
ObloxCC
7f754f33bb
Updated (C) from 2016 to 2017 ( #229 )
...
* Updated (C)
* Fixed Whitespace
bugs, bugs, and more bugs
* Fixed Whitespaces 1/2
* Fixed Whitespaces 2/2
* Fixed Whitespaces 3/2
2017-05-13 19:20:39 +01:00
Wilma456
516bd8cf03
Make shell.programs filter .lua extension
2017-05-13 13:37:18 +02:00
SquidDev
add046cbda
Remap all blocks and items to underscore_case
...
This makes block/model names a little mode consistent and should help
with porting to 1.11.2.
- Prefix all tile entities with "computercraft:".
- Change all "pascalCase" and "CC-*" items to use underscore_case
- Listen to the missing mappings event and gracefully convert
blocks/items.
2017-05-12 13:29:56 +01:00
SquidDev
9908f8c289
Do not insert empty or duplicate entries into shell history
...
If a string is empty or the same as the previous command then it will
not be inserted into history.
2017-05-11 21:01:23 +01:00
Lignum
259fe4b6b4
Remove unnecessary shell.resolveProgram call
2017-05-11 18:12:58 +02:00
SquidDev
b07f28c30c
Replace most inventory handling code with IItemHandlers
...
- Make InventoryUtil deal with item handlers instead. This
significantly simplifies the implementation, the interface now
does most of the hard work.
- Add InvWrapper item handlers to printers, disk drives and turtles
- Add IItemHandlerModifiable accessor to ITurtleAccess
- Migrate all other inventory code (mostly turtle commands) to use
item handlers instead.
2017-05-11 00:00:10 +01:00
Lignum
8acf43256c
Don't sort startup files
...
fs.list is already sorted, making this unnecessary.
2017-05-10 23:27:07 +02:00
Lignum
962e419098
Allow having a startup directory and a startup.lua file simultaneously
2017-05-10 23:21:04 +02:00
Lignum
2e7c9b163d
Enable the use of startup directories
2017-05-10 23:02:08 +02:00
SquidDev
2c63a5f9a3
Provide various error messages for file handles
...
- fs.open will return an error message if the handle cannot be read
- fs and http handles will error when reading from a closed file
2017-05-10 10:52:35 +01:00
Daniel Ratcliffe
25128dfb66
Merge pull request #224 from SquidDev-CC/feature/lowercase-models
...
Lower case most resource names
2017-05-09 20:31:24 +01:00
Daniel Ratcliffe
c049de6939
Merge pull request #221 from SquidDev-CC/feature/nullable-annotations
...
Fix several crashes caused by incorrect NonNull annotations.
2017-05-09 20:00:02 +01:00
SquidDev
82dbaece41
Lower case all resource names
...
- Lower case all model and texture names
- Move model registration code into preInit - this ensures we don't
get texture/model errors in the preInit stage.
2017-05-09 16:37:32 +01:00
SquidDev
93aea371a7
Shovel upgrade converts grass to path blocks
...
Using turtle.dig() with a shovel upgrade on a grass block will create a
path block.
Closes #127
2017-05-09 13:03:12 +01:00
SquidDev
dd63fac8af
Register TurtlePlayer in the entity registry
...
Fixes #143
2017-05-09 12:16:32 +01:00
SquidDev
8b411387f1
Fix several craches caused by incorrect NonNull annotations.
...
Awfully sorry about this. It appears that Minecraft's annotations are
occasionally wrong. IntelliJ will automatically add "not-null" checks on
these annotations, resulting in crashes when they are actually null.
2017-05-09 00:54:15 +01:00
ObloxCC
922818dfa5
Add setPaletteColor and rgb8 to help files ( #214 )
...
* Added rgb8 help
* Update colours
* Added rgb8 help
* Added setPaletteColor help
* Added setPaletteColor help
* Added setColorPalette and rgb8 to change log
* Fixed formatting
* Fixed formatting
* Fixed formatting
* Fixed formatting
* Added changes to change log
* Added changes to whatsnew
* Fixed changelog
* Fixed whatsnew
* Added setPalatteColor
* Fixed Palette spelling
* Added space after 'b'
* Added getPaletteColor
* Ddded getPaletteColor
* Added getPaletteColor()
* Added getPaletteColor
* Update changelog
* Added getPaletteColor
2017-05-07 22:24:32 +01:00
Daniel Ratcliffe
0308ec555a
Merge pull request #207 from SquidDev-CC/feature/cleanup
...
Fix a couple of warnings
2017-05-07 18:26:07 +01:00
Daniel Ratcliffe
008663c0e1
Lua fix
2017-05-07 17:42:39 +01:00
Daniel Ratcliffe
38e09920fa
Lua fix
2017-05-07 17:40:23 +01:00
Daniel Ratcliffe
6fba381a4e
Merge pull request #211 from Lignum/shell-run-lua
...
Make shell.resolveProgram pick up on *.lua files
2017-05-07 17:33:44 +01:00
Daniel Ratcliffe
e063f5a6b8
Merge pull request #197 from Lignum/colour-palettes
...
Modifiable terminal colour palette
2017-05-07 17:31:14 +01:00
Daniel Ratcliffe
0b8b39ced0
colours.rgb8(r,g,b) and colours.rgb8(c) are now the inverse of each other
2017-05-07 17:29:59 +01:00
Daniel Ratcliffe
5f22d8bac6
Enabled setTextColour/setBackgroundColour with all colours on greyscale monitors
...
It's fine, now that we have greyscale rendering
2017-05-07 17:24:45 +01:00
Daniel Ratcliffe
a5e1dad5fc
Enabled term.setText/BackgroundColour with non grey colours on greyscale monitors
...
As rendering is greyscale now, this is fine.
2017-05-07 17:22:49 +01:00
Daniel Ratcliffe
ebb7d7a8d9
Enabled window.setText/BackgroundColour with no grey colours. Some small optimisations
2017-05-07 17:19:21 +01:00
Lignum
c6abf0b890
Make shell.resolveProgram pick up on *.lua files
2017-05-07 16:21:15 +02:00
Lignum
c10e1ba78c
Get rid of setPaletteColour table overload
2017-05-07 15:04:09 +02:00
SquidDev
2e901a063d
Remove accessibility modifiers from all enums and interfaces
2017-05-07 13:35:18 +01:00
SquidDev
5a60818c99
Make many fields final
2017-05-07 13:35:18 +01:00
SquidDev
a3400ecf26
Fix all the deprecated warnings
2017-05-07 13:35:05 +01:00
SquidDev
a2fd0b1f7f
Use block comment instead of Javadoc for license
2017-05-07 13:30:10 +01:00
SquidDev
db9cd15fb3
Remove most raw types
...
This means we can remove even more casts and what not.
2017-05-07 13:30:05 +01:00
SquidDev
9af15d1e30
Remove some unnecessary constructs
...
- Replace for and while loops with for iterators
- Remove unused casts
2017-05-07 13:29:52 +01:00
SquidDev
dc5517303f
Add @Nullable and @NonNull annotations
2017-05-07 13:29:49 +01:00
Lignum
941d47908f
Oh bother
2017-05-07 13:09:51 +02:00
Lignum
0164032a4a
Allow greyscale palettes on basic computers
2017-05-07 13:04:54 +02:00
Lignum
70c2f50aa8
Un-break the non-table setPaletteColour overload
2017-05-07 12:55:16 +02:00
Lignum
54273fc6e5
Add Palette.DEFAULT
2017-05-07 12:51:06 +02:00
Lignum
4e55e03c8b
Don't sync the whole palette in window.setPaletteColour
2017-05-07 12:46:23 +02:00
Lignum
156e74b69c
setColour -> setPaletteColour
2017-05-07 12:40:31 +02:00
SquidDev
8ba5edb6e4
Minor cleanup of pocket computer upgrades
...
- General improvements of the docs.
- Move all ItemStack code to the ItemPocketComputer class
- Make PocketAPI execute on the server thread, rather than the computer
thread
2017-05-07 08:09:36 +01:00
SquidDev
5a4375f6ac
Allow changing the colour of the modem light
...
This now uses an integer between 0 and 15 to represent a colour, rather
than a simple on/off flag.
2017-05-07 08:09:36 +01:00
SquidDev
6020cd55b1
Added documentation and updated changelog/whatsnew
2017-05-07 08:09:36 +01:00
SquidDev
7f8100ae0f
Check the offhand inventory too when searching for upgrades
2017-05-07 08:08:09 +01:00
SquidDev
22631cfc63
Add .equip and .unequip methods to pocket API.
2017-05-07 08:08:09 +01:00
SquidDev
5faceac7ba
Add registry for pocket computer upgrades
2017-05-07 08:08:09 +01:00
Daniel Ratcliffe
ff16868dd8
Merge pull request #206 from Lignum/update-craftos-version
...
Set CraftOS version to 1.8
2017-05-07 00:41:58 +01:00
Lignum
287c6f172c
Allow passing RGB8 hex values to term.setColour
2017-05-07 01:16:48 +02:00
Daniel Ratcliffe
cad10fa2c7
Fixed incorrectness in os.day(). Added os.epoch()
2017-05-06 23:56:28 +01:00
Daniel Ratcliffe
58713caa73
Merge pull request #203 from SquidDev-CC/feature/turtle-models
...
Convert turtle rendering to use tinting
2017-05-06 23:56:13 +01:00
Daniel Ratcliffe
a6e3d4fd26
Merge pull request #195 from SquidDev-CC/hotfix/selection-boxes
...
Fix selection boxes not being shown
2017-05-06 23:55:45 +01:00
SquidDev
f34a319b79
Make cable collision boxes more accurate for cables
...
Each cable segment is added to the list, meaning you can get close and
snugly with the cables.
2017-05-06 23:45:15 +01:00
Lignum
1cc403191f
Add colours.rgb8(r, g, b)/colours.rgb8(hex)
2017-05-07 00:13:36 +02:00
Lignum
2c7ee1d7e7
Bump CraftOS version to 1.8
2017-05-06 23:26:45 +02:00
Daniel Ratcliffe
4b4e041f6f
Merge branch 'master' into master
2017-05-06 22:25:46 +01:00
Daniel Ratcliffe
423d5af87f
Merge pull request #191 from SquidDev-CC/feature/text-illumination
...
Make monitor text glow in the dark
2017-05-06 22:11:28 +01:00
Daniel Ratcliffe
5b6bbc3cbf
Merge pull request #200 from Lignum/fs-weak-set
...
Replace WeakHashMap for open files with a weak set
2017-05-06 21:44:28 +01:00
Lignum
a9e7acbec5
Fix monitors fetching palette when there is no terminal
2017-05-06 20:23:44 +02:00
Lignum
ac2382a861
Add setColour overload with table parameter
2017-05-06 20:22:16 +02:00
SquidDev
2f93354981
Remove dye block state property
...
It doesn't make sense to have it now as the coloured models do not exist
any more, and so would just produce errors should we try to load them.
2017-05-06 17:41:49 +01:00
SquidDev
c7f5d039b2
Use IBlockState instead of Block methods
...
There was a crash in RedstoneUtil when redstone state was changing next
to a full block due to the incorrect state being passed. By using
IBlockState methods we ensure that this cannot happen again.
The old IBlockState methods were also deprecated, so this reduces the
warning count a little. I've also moved string translation into
StringUtils, to reduce the number of deprecation warnings from there.
2017-05-06 15:31:06 +01:00
SquidDev
d652bdb0b0
Convert turtle rendering to use tinting
...
This uses Minecraft's colour tinting system in order to change the
colour of turtle models. This removes the need to have 16 models and
textures for each colour, reducing texture atlas space and hopefully
memory consumption.
See #145
2017-05-06 15:06:02 +01:00
Tim Ittermann
f1c4634dfa
os.time( ... ) now returns float
2017-05-06 14:52:02 +02:00
Tim Ittermann
f89bbeee54
Remove import
2017-05-06 14:30:19 +02:00
Tim Ittermann
e0e81a9b18
Put time functions into the OS API
2017-05-06 14:24:48 +02:00
Lignum
bfa5f6ec9c
Make palettes work properly with the window API
2017-05-05 20:23:57 +02:00
Lignum
988e9f10db
Fix compiler error
2017-05-05 19:13:52 +02:00
Lignum
b0ac48b9a3
Use some sweet tricks to have a weak set to store open files
2017-05-05 19:11:59 +02:00
Lignum
3de674dfb1
Simplify the palette payload to an int array
2017-05-05 18:47:43 +02:00
Lignum
39a56c8e55
Get rid of the PaletteColour class
...
It just took up a bunch of space. We're storing an array of float[3] now.
2017-05-05 18:22:48 +02:00
Daniel Ratcliffe
06b63980eb
Merge pull request #196 from SquidDev-CC/feature/docs
...
Fix several documentation warnings
2017-05-05 17:19:26 +01:00
Lignum
6997471280
Add palette functions to monitor peripheral
2017-05-05 18:12:33 +02:00
SquidDev
4b95ed5d53
Do not reset redstone inputs when adding peripherals
...
As of 8abff95441
, peripherals no longer
block redstone input. As this is no longer the case, redstone levels
should not be reset.
2017-05-05 17:00:44 +01:00
Lignum
088dab799e
Network the colour palette
...
Which means it actually has a visible effect! 🎉
2017-05-05 17:21:53 +02:00
SquidDev
0cdd0ea21a
Change license headers to block comments
...
This means they do not get picked up by Javadoc and friends
2017-05-05 16:16:09 +01:00
SquidDev
76e926c090
Document several undocumented arguments and exceptions
2017-05-05 16:07:18 +01:00
SquidDev
d87b0e9435
Fix selection boxes not being shown
...
getSelectedBoundingBox expects a bounding box relative to (0, 0, 0) but
we were returning one relative to the current block. Instead we allow
the default behaviour to continue, which will call getBoundingBox and
offset it.
2017-05-05 15:25:07 +01:00
Lignum
b0f0d8fd71
Add getColour/setColour to the window api
2017-05-05 16:14:13 +02:00
SquidDev
7b07921a73
General improvements to the documentation
...
- Add documentation for all undocumented methods and enums.
- Use @code, @link and @see where appropriate.
- Fix spelling in a couple of cases.
2017-05-05 14:59:11 +01:00
Lignum
56c9dec687
Add term.setColour/term.getColour
2017-05-05 15:52:21 +02:00
Lignum
936a531cd5
Add a palette class and use it for rendering
2017-05-05 15:24:29 +02:00
Daniel Ratcliffe
09215daa03
FileSystem uses a WeakHashMap to store it's open file handles
...
This means if lua code forgets to free a handle, the java GC will still
be able to collect the stream (andclose the file in the finaliser in the
process)
2017-05-05 00:54:24 +01:00
Daniel Ratcliffe
42f2235d45
Made the black colour on monitors, terminals, block and item graphics darker
...
0x111111 is now used throughout, previously there was quite a bit of
variance
2017-05-05 00:54:24 +01:00
Daniel Ratcliffe
2436d813e6
Treat a maximumFilesOpen values of 0 as unlimited
2017-05-05 00:54:23 +01:00
Lignum
4b8493baab
Terminal cursor bounds checking
2017-05-05 00:08:10 +02:00
Lignum
4e3def39e0
Render terminal cursor in a less awkward way
...
The previous way seemed weird enough to seem to have had a purpose, but I can't tell. Revert this if it turns out that there was.
2017-05-04 23:53:43 +02:00
Lignum
7e71045c7b
Remove texture coordinates from text background part
2017-05-04 23:49:08 +02:00
Lignum
2d5d5e3a9e
Use GL_TRIANGLES in FixedWidthFontRenderer
2017-05-04 23:43:05 +02:00
Lignum
c104eabcdd
Use GlStateManager where necessary, replace GL_QUADS with GL_TRIANGLE_STRIP
2017-05-04 23:38:24 +02:00
SquidDev
933bdcc6b7
Make monitor text glow in the dark
2017-05-04 22:24:39 +01:00
Tim Ittermann
45803e4a49
Replace get...() functions with properties. NOT ALL TESTED YET!
2017-05-04 23:18:03 +02:00
Daniel Ratcliffe
8abff95441
Peripherals no longer break turtle<->redstone connectivity
...
I can't think of a good reason for this feature tbh
2017-05-04 22:13:14 +01:00
Daniel Ratcliffe
f99caed4f2
Merge pull request #169 from Lignum/fd-limit
...
Configurable file descriptor limit
2017-05-04 22:12:50 +01:00
Daniel Ratcliffe
4b0a976bd6
Merge pull request #182 from SquidDev-CC/feature/turtle-upgrade-both
...
Allow turtle upgrades to act as tools and peripherals
2017-05-04 22:02:09 +01:00
Lignum
30d191df0b
Avoid casts with generic type args
2017-05-04 23:00:02 +02:00
Daniel Ratcliffe
17a3e120e8
Merge pull request #180 from boq/master
...
Handle tile entity changes
2017-05-04 21:42:34 +01:00
Daniel Ratcliffe
55b160e1bb
Merge pull request #164 from SquidDev-CC/hotfix/turtle-connectivity
...
Fix redstone connectivity on turtles
2017-05-04 21:28:08 +01:00
Daniel Ratcliffe
fa99305914
Merge pull request #168 from SquidDev-CC/hotfix/modem-model-rotation
...
Various model improvements
2017-05-04 21:08:51 +01:00
Daniel Ratcliffe
27ef182294
Merge pull request #158 from SquidDev-CC/feature/require-container
...
Require the player to be interacting with the computer when typing
2017-05-04 21:08:34 +01:00
Daniel Ratcliffe
82e76d9872
Merge pull request #184 from SquidDev-CC/hotfix/sort-list
...
Sort the result of FileSystem.list
2017-05-04 21:06:26 +01:00
Daniel Ratcliffe
2a0556fa4c
Merge pull request #185 from SquidDev-CC/hotfix/unpack-length
...
Manually specify the number of values to unpack
2017-05-04 21:05:14 +01:00
Daniel Ratcliffe
22e36fc35d
Merge pull request #178 from boq/patch-1
...
Fix compilation error
2017-05-04 21:04:14 +01:00
Daniel Ratcliffe
655a328b86
Merge pull request #174 from SquidDev-CC/hotfix/shutdown-abort
...
Send termination signals unless the computer is off
2017-05-04 21:03:40 +01:00
SquidDev
bd14223ea8
Manually specify the number of values to unpack
...
table.unpack will often stop at the first nil value, meaning some event
arguments may be discarded. By storing the number of arguments through
table.pack, and then using that count when unpacking, we can ensure all
values are returned/resumed with.
2017-05-04 10:49:41 +01:00
SquidDev
72dfb0e7cc
Sort the result of FileSystem.list
...
This ensures fs.list and fs.find always return the same result.
For some reason, the ComputerCraft jar was being packaged differently on
some platforms, causing files to appear in a different order. As
computers depend on the colors API being loaded before colours, we need
to ensure that they are loaded in a consistent order.
2017-05-03 22:29:57 +01:00
Tim Ittermann
b2cc6ec82a
Add TimeAPI to Computers APIs
2017-05-03 23:12:48 +02:00
Tim Ittermann
c1d5ae2a09
Rename src/main/java/dan200.computercraft/core/apis/TimeAPI.java to src/main/java/dan200/computercraft/core/apis/TimeAPI.java
2017-05-03 23:11:52 +02:00
Tim Ittermann
627524dcb7
Create TimeAPI.java
2017-05-03 23:10:58 +02:00
SquidDev
6b6829e22b
Use tonumber when validating message format
2017-05-03 18:39:32 +01:00
SquidDev
67eecd4b1c
Use tonumber instead of checking type
2017-05-03 18:21:14 +01:00
SquidDev
a021a072b5
Allow turtle upgrades to act as tools and peripherals
...
This may be useful when you want your tool to also provide additional
methods. For instance, a pickaxe could provide methods to check whether
it can break the block in front.
2017-05-03 17:28:54 +01:00
SquidDev
7e5970673f
Ensure GPS coordinates are numbers
...
Fixes #138
2017-05-03 16:35:45 +01:00
Bartek Bok
4eb4bb933f
Different fix for shadow turtles
2017-05-03 16:03:47 +02:00
Bartek Bok
5284b145f8
Handle tile entity changes
2017-05-03 11:36:55 +02:00
Bartek Bok
bd8769f300
Fix compilation error
2017-05-02 23:40:31 +02:00
Lignum
994dcd9f58
Localise the maximumFilesOpen setting
2017-05-02 18:29:50 +02:00
Lignum
2bfb53227a
Merge master into fd-limit
2017-05-02 18:26:45 +02:00
SquidDev
ba761a15b6
Send termination signals unless the computer is off
...
If a shutdown has been queued, then the abort message was not set. This
allowed for programs to run for a significantly longer period of time.
2017-05-02 14:04:48 +01:00
Daniel Ratcliffe
58e6e9ea46
Fixed a typo
2017-05-02 13:56:24 +01:00
Daniel Ratcliffe
4825aefccf
Merge pull request #167 from SquidDev-CC/hotfix/limit-label
...
Impose additional limitations on disk and computer labels
2017-05-02 13:54:43 +01:00
Daniel Ratcliffe
3a360a50b0
Merge pull request #166 from SquidDev-CC/feature/config-gui
...
Add config GUI
2017-05-02 13:46:01 +01:00
SquidDev
65ef8a0937
Add config GUI description to changelog/whatsnew
2017-05-02 13:35:05 +01:00
SquidDev
14d3a182d9
Fix NPE when clearing disk label
2017-05-02 13:32:53 +01:00
Daniel Ratcliffe
800e448264
Improved the wording of some of the labels in the Config UI
2017-05-02 13:28:54 +01:00
SquidDev
2fef772f3d
Use '?' for unprintable characters
2017-05-02 13:24:42 +01:00
SquidDev
c537c4fa78
Swap from builtin/generated to item/generated
...
This model has more sane defaults, meaning items are scaled to the
appropriate size.
2017-05-02 02:12:51 +01:00
Jonathan Leitschuh
2a01883177
Make threads daemon threads
...
Threads that aren't daemon threads can keep the JVM from shutting down.
I'm certain that this doesn't happen very often but if one of these
threads hangs it can cause the rest of the JVM to not shut down
when the main thread exits.
By making all threads daemon threads if the main thread terminates
the rest of these threads will shut down.
2017-05-01 20:34:28 -04:00
SquidDev
c190ec5147
Do not limit labels to the ASCII range.
...
This should accept all printable characters that ComputerCraft can
handle.
2017-05-02 00:20:46 +01:00
Lignum
6ff9db89cc
Fix file handle leak
2017-05-02 00:44:33 +02:00
Lignum
2a1e110a65
Make the file descriptor limit configurable
2017-05-02 00:17:16 +02:00
SquidDev
d08b47db93
Preserve default values in configuration
...
Before we were setting the default as the previous value each time. Here
we store each property in a separate field, allowing us to access them
without setting a default.
2017-05-01 23:14:06 +01:00
Lignum
2d0690e625
Add file descriptor limit
2017-05-02 00:05:42 +02:00
SquidDev
876df68294
Rotate modem models 180 degrees
...
Or pi radians. Or tau/2 radians.
This ensures the main modem texture is facing towards the screen.
2017-05-01 22:39:18 +01:00
SquidDev
b1efbdad95
Impose additional limitations on disk and computer labels
...
Closes #147
2017-05-01 22:23:54 +01:00
SquidDev
230b578a98
Add config GUI
...
This allows you to modify various settings in-game.
2017-05-01 22:14:45 +01:00
SquidDev
02ce111d9e
Invert side when checking connectivity
...
The side marks the direction relative to the wire, rather than the side
of the block it is attempting to connect to. Therefore needs to be
flipped.
Closes #149
2017-05-01 21:44:48 +01:00
SquidDev
ae04070915
Update documentation to include HTTP API changes
2017-05-01 18:05:04 +01:00
SquidDev
f2596a8547
Return string->string headers instead, joining fields with a comma.
2017-05-01 18:00:53 +01:00
SquidDev
29952d5b4f
Various extensions to the HTTP API
...
- A response is returned on the event of a HTTP error (such as 404).
- Responses include the response headers.
2017-05-01 17:35:06 +01:00
SquidDev
b2542289f0
Require the player to be interacting with the computer when typing
...
Packets will be discarded if the sending player is not currently
interacting with the appropriate computer. This ensures players cannot
control other people's computers.
This is enforced by checking if the current container is a "computer
container", and this container holds the correct computer.
2017-05-01 17:07:32 +01:00
SquidDev
b3760f58e6
Performance improvements to fs.find
...
If the path includes no wildcards then it just checks it exists.
If it does, instead of scanning the entire tree, it works out the last
directory before the wildcard and starts scanning from there.
Closes #89
2017-05-01 16:45:41 +01:00
SquidDev
bbbbccf63d
Fire all entity interaction events in TurtlePlaceCommand
...
This allows turtles to interact with entities correctly.
2017-05-01 16:14:05 +01:00
SquidDev
d050ca9849
Fix advanced computer's item model
2017-05-01 16:10:45 +01:00
SquidDev
77d225d1fe
Listen to correct block update
...
We now listen to neighborChanged instead of onNeighborChange. This means
computers correctly detect redstone updates.
However, this leads to issues when moving turtles, so we defer the block
update until the turtle has finished moving.
2017-05-01 16:08:27 +01:00
SquidDev
9b5f4a877c
Fix null bounding box being returned
...
Its usage is not always checked for null, so it is safer to return a
full block.
2017-05-01 16:04:42 +01:00
SquidDev
34cb75dfc3
Fix various tile entities not syncing correctly
...
This ensures the tile state is sent and received when it changes. This
fixes turtles facing the wrong direction and computers not turning on.
2017-05-01 16:04:36 +01:00
SquidDev
43d68db349
Add missing classes
2017-05-01 16:02:47 +01:00
Daniel Ratcliffe
b202b7b8a5
Converted tabs to spaces throughout
2017-05-01 15:48:44 +01:00
Daniel Ratcliffe
7d497f2835
ComputerCraft 1.80pr0
...
Updated the source code to the version shipped as the 1.80pr0 alpha
release. Also removed some unnecessary files from the LuaJ subfolder
which were bulking up the repository.
2017-05-01 14:51:26 +01:00
Daniel Ratcliffe
e85cdacbc5
ComputerCraft 1.79 initial upload
...
Added the complete source code to ComputerCraft 1.79 for Minecraft
1.8.9, plus newly written README and LICENSE files for the open source
release.
2017-05-01 14:32:39 +01:00