1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2024-12-04 23:40:00 +00:00

Pull in the remainder of CC:T 1.109.6

This commit is contained in:
Jonathan Coates 2024-03-06 11:10:55 +00:00
parent 9f251d7b52
commit fbf64a0404
No known key found for this signature in database
GPG Key ID: B9E431FF07C98D06
5 changed files with 122 additions and 23 deletions

View File

@ -4,6 +4,6 @@
org.gradle.jvmargs=-Xmx3G org.gradle.jvmargs=-Xmx3G
modVersion=1.108.1 modVersion=1.109.6
mcVersion=1.4.7 mcVersion=1.4.7

View File

@ -353,7 +353,8 @@ end
--[[- Converts the given color to a paint/blit hex character (0-9a-f). --[[- Converts the given color to a paint/blit hex character (0-9a-f).
This is equivalent to converting floor(log_2(color)) to hexadecimal. This is equivalent to converting `floor(log_2(color))` to hexadecimal. Values
outside the range of a valid colour will error.
@tparam number color The color to convert. @tparam number color The color to convert.
@treturn string The blit hex code of the color. @treturn string The blit hex code of the color.
@ -367,7 +368,11 @@ colors.toBlit(colors.red)
]] ]]
function toBlit(color) function toBlit(color)
expect(1, color, "number") expect(1, color, "number")
return color_hex_lookup[color] or string.format("%x", math.floor(math.log(color, 2))) local hex = color_hex_lookup[color]
if hex then return hex end
if color < 0 or color > 0xffff then error("Colour out of range", 2) end
return string.format("%x", math.floor(math.log(color, 2)))
end end
--[[- Converts the given paint/blit hex character (0-9a-f) to a color. --[[- Converts the given paint/blit hex character (0-9a-f) to a color.

View File

@ -58,6 +58,17 @@ local type = type
local string_rep = string.rep local string_rep = string.rep
local string_sub = string.sub local string_sub = string.sub
--- A custom version of [`colors.toBlit`], specialised for the window API.
local function parse_color(color)
if type(color) ~= "number" then
-- By tail-calling expect, we ensure expect has the right error level.
return expect(1, color, "number")
end
if color < 0 or color > 0xffff then error("Colour out of range", 3) end
return 2 ^ math.floor(math.log(color, 2))
end
--[[- Returns a terminal object that is a space within the specified parent --[[- Returns a terminal object that is a space within the specified parent
terminal object. This can then be used (or even redirected to) in the same terminal object. This can then be used (or even redirected to) in the same
manner as eg a wrapped monitor. Refer to [the term API][`term`] for a list of manner as eg a wrapped monitor. Refer to [the term API][`term`] for a list of
@ -341,10 +352,7 @@ function create(parent, nX, nY, nWidth, nHeight, bStartVisible)
end end
local function setTextColor(color) local function setTextColor(color)
if type(color) ~= "number" then expect(1, color, "number") end if tHex[color] == nil then color = parse_color(color) end
if tHex[color] == nil then
error("Invalid color (got " .. color .. ")" , 2)
end
nTextColor = color nTextColor = color
if bVisible then if bVisible then
@ -356,11 +364,7 @@ function create(parent, nX, nY, nWidth, nHeight, bStartVisible)
window.setTextColour = setTextColor window.setTextColour = setTextColor
function window.setPaletteColour(colour, r, g, b) function window.setPaletteColour(colour, r, g, b)
if type(colour) ~= "number" then expect(1, colour, "number") end if tHex[colour] == nil then colour = parse_color(colour) end
if tHex[colour] == nil then
error("Invalid color (got " .. colour .. ")" , 2)
end
local tCol local tCol
if type(r) == "number" and g == nil and b == nil then if type(r) == "number" and g == nil and b == nil then
@ -385,10 +389,7 @@ function create(parent, nX, nY, nWidth, nHeight, bStartVisible)
window.setPaletteColor = window.setPaletteColour window.setPaletteColor = window.setPaletteColour
function window.getPaletteColour(colour) function window.getPaletteColour(colour)
if type(colour) ~= "number" then expect(1, colour, "number") end if tHex[colour] == nil then colour = parse_color(colour) end
if tHex[colour] == nil then
error("Invalid color (got " .. colour .. ")" , 2)
end
local tCol = tPalette[colour] local tCol = tPalette[colour]
return tCol[1], tCol[2], tCol[3] return tCol[1], tCol[2], tCol[3]
end end
@ -396,10 +397,7 @@ function create(parent, nX, nY, nWidth, nHeight, bStartVisible)
window.getPaletteColor = window.getPaletteColour window.getPaletteColor = window.getPaletteColour
local function setBackgroundColor(color) local function setBackgroundColor(color)
if type(color) ~= "number" then expect(1, color, "number") end if tHex[color] == nil then color = parse_color(color) end
if tHex[color] == nil then
error("Invalid color (got " .. color .. ")", 2)
end
nBackgroundColor = color nBackgroundColor = color
end end

View File

@ -1,3 +1,97 @@
# New features in CC: Tweaked 1.109.6
* Improve several Lua parser error messages.
* Allow addon mods to register `require`able modules.
Several bug fixes:
* Fix weak tables becoming malformed when keys are GCed.
# New features in CC: Tweaked 1.109.5
* Add a new `/computercraft-computer-folder` command to open a computer's folder
in singleplayer.
Several bug fixes:
* Discard characters being typed into the editor when closing `edit`'s `Run` screen.
# New features in CC: Tweaked 1.109.4
Several bug fixes:
* Don't log warnings when a computer allocates no bytes.
* Fix incorrect list index in command computer's NBT conversion (lonevox).
* Fix `endPage()` not updating the printer's block state.
* Several documentation improvements (znepb).
* Correctly mount disks before computer startup, not afterwards.
* Update to Cobalt 0.9
* Debug hooks are now correctly called for every function.
* Fix several minor inconsistencies with `debug.getinfo`.
* Fix Lua tables being sized incorrectly when created from varargs.
# New features in CC: Tweaked 1.109.3
* Command computers now display in the operator items creative tab.
Several bug fixes:
* Error if too many websocket messages are queued to be sent at once.
* Fix trailing-comma on method calls (e.g. `x:f(a, )` not using our custom error message.
* Fix internal compiler error when using `goto` as the first statement in an `if` block.
* Fix incorrect resizing of a tables' hash part when adding and removing keys.
# New features in CC: Tweaked 1.109.2
* `math.random` now uses Lua 5.4's random number generator.
Several bug fixes:
* Fix errors involving `goto` statements having the wrong line number.
# New features in CC: Tweaked 1.109.1
Several bug fixes:
* Fix `mouse_drag` event not firing for right and middle mouse buttons.
* Fix crash when syntax errors involve `goto` or `::`.
* Fix deadlock occuring when adding/removing observers.
* Allow placing seeds into compostor barrels with `turtle.place()`.
# New features in CC: Tweaked 1.109.0
* Update to Lua 5.2
* `getfenv`/`setfenv` now only work on Lua functions.
* Add support for `goto`.
* Remove support for dumping and loading binary chunks.
* File handles, HTTP requests and websocket messages now use raw bytes rather than converting to UTF-8.
* Add `allow_repetitions` option to `textutils.serialiseJSON`.
* Track memory allocated by computers.
Several bug fixes:
* Fix error when using position captures and backreferences in string patterns (e.g. `()(%1)`).
* Fix formatting non-real numbers with `%d`.
# New features in CC: Tweaked 1.108.4
* Rewrite `@LuaFunction` generation to use `MethodHandle`s instead of ASM.
* Refactor `ComputerThread` to provide a cleaner interface.
* Remove `disable_lua51_features` config option.
* Update several translations (Sammy).
Several bug fixes:
* Fix monitor peripheral becoming "detached" after breaking and replacing a monitor.
* Fix signs being empty when placed.
* Fix several inconsistencies with mount error messages.
# New features in CC: Tweaked 1.108.3
Several bug fixes:
* Fix disconnect when joining a dedicated server.
# New features in CC: Tweaked 1.108.2
* Add a tag for which blocks wired modems should ignore.
Several bug fixes:
* Fix monitors sometimes being warped after resizing.
* Fix the skull recipes using the wrong UUID format.
* Fix paint canvas not always being redrawn after a term resize.
# New features in CC: Tweaked 1.108.1 # New features in CC: Tweaked 1.108.1
Several bug fixes: Several bug fixes:

View File

@ -1,7 +1,9 @@
New features in CC: Tweaked 1.108.1 New features in CC: Tweaked 1.109.6
* Improve several Lua parser error messages.
* Allow addon mods to register `require`able modules.
Several bug fixes: Several bug fixes:
* Prevent no-opped players breaking or placing command computers. * Fix weak tables becoming malformed when keys are GCed.
* Allow using `@LuaFunction`-annotated methods on classes defined in child classloaders.
Type "help changelog" to see the full version history. Type "help changelog" to see the full version history.