Releases: GMDU/code-of-copper
Releases · GMDU/code-of-copper
Code of Copper v0.3.4
[0.3.4] - 2024-07-21
Fixed some bugs
Changed
- Updated the
place_blocks.glm
example program, with new syntax. - Updated the resource pack such that the golem now faces direction of travel (positive X).
Fixed
- Place no longer duplicates blocks when there's only one left.
- Place no longer deletes fresh pickaxes if a pickaxe has been broken before.
- Waxing a golem no longer runs the golem as well.
Code of Copper v0.3.3
[0.3.3] - 2024-06-19
Update to 1.21
Changed
- The datapack now requires 1.21.
Code of Copper v0.3.2
[0.3.2] - 2024-04-27
Update to 1.20.5
Changed
- The datapack now requires 1.20.5
Fixed
- The golem now starts a program from the beginning every time it is run
Code of Copper v0.3.1
[0.3.1] - 2024-01-29
The big split
Added
- The background of the text above the golem is now coloured based on its oxidisation level
Changed
- The GolemScript language has been split from this datapack
- It is now its own separate pack
- This datapack uses its API to run programs and control the golems
- Empty and same programs now rerun the previous program
- Broken golems now store their oxidisation level, and whether they had been waxed
Removed
- All code that processes the GolemScript language
- This can now all be found in the GolemScript datapack
- Code of Copper is now a runtime for GolemScript, and only contains code for manipulating golems
- The experimental API
- This is now part of the GolemScript API
Code of Copper v0.3.0
[0.3.0] - 2023-11-26
Overhauled the entire language.
Added
- Custom Functions
- Function definitions
- Function calls
- return keyword
- Stdlib Functions
- random: to genereate random numbers
- time: to get the current gametime
- Var keyword for global variables
- Assignment operators such as += and -=
- Booleans
- Constants
- Resource literal
- << and >> operators
- Objects can be indexed with dot (.) notation
- Other miscellaneous operators
Changed
- Rewrote all documentation
- Now contains every language feature
- Better documented and easier to understand
- Available here
- Many instructions are now built in functions
- You can now use functions such as getblock inside expressions
- $INVENTORY and $POS are now functions: inventory() and pos()
- pos() now returns an object, instead of an array
- inventory() now returns a array of resources, rather than strings
- Variables only exist within the scope that they are created
- Predicates updated to use 1.20 format
- The entire interpreter was re-written from the ground up
- It should now be far more reliable going forwards
- Place now takes a resource rather than a slot number
- Minus operator no longer removes items from objects/arrays
Fixed
- Regex matcher is now correctly passed a string's value
- Backslashes, unless escaping
/
, no longer need to be escaped themselves.
Code of Copper v0.3.0-beta-2
[0.3.0-beta-2] - 2023-05-25
We rewrote the entire interpreter.
Added
- Resource literal
- Added << and >> operators
- Objects can be indexed with dot (.) notation
Changed
- Predicates updated to use 1.20 format
- The entire interpreter was re-written from the ground up
- It should now be far more reliable going forwards
- Place now takes a resource rather than a slot number
- Minus operator no longer removes items from objects/arrays
Fixed
- Custom functions now can be called from expressions.
Code of Copper v0.2.2
[0.2.2] - 2023-02-27
Pipelines and progression
Added
- Oxidisation Based Progression
- Golems will oxidise over time whilst executing programs
- This can be prevented by waxing a Golem with honeycomb
- Wax, and oxidisation, can be scraped off a Golem with an axe
- When scraping rust off a fully oxidised golem, the player is rewarded with the next example program
- Golems will oxidise over time whilst executing programs
Changed
- Refactor of the interpreter
- Golems now uses a pipeline, saving on lag
- Golems now execute instructions at 10Hz
- Modified loot tables to work with new progression system
Code of Copper v0.2.1
[0.2.1] - 2022-02-24
Escaping, interaction improvements, position variable, and break instruction.
Added
$POS
variablebreak
instruction\
as escape for strings and regexes- Escaped
"
are replaced by”
as to not break tellraw
- Escaped
Changed
- README has now been greatly improved
- Golem now uses item and text display entities
- Golem model and texture revamp
- New interaction system:
- Right click to run a Golem, or with a book to assign a program.
- Left click to stop a Golem
- Crouching whilst looking at the Golem allows it's inventory to be
accessed, or for it to be broken.
Fixed
- Containers not dropping their contents when broken by a golem
- Items not dropping when the golem's inventory is full
Code of Copper v0.2.0
[0.2.0] - 2023-02-21
Two new literal types, and cleanup of syntax.
Added
- Object variant of literal
- Alphanumeric pseudo-variant of literal
- Only allows [A-Za-z0-9_]
- First character must match [A-Za-z]
- Regex variant of literal
- String-regex matching using the
match
function
- String-regex matching using the
Changed
- Let now takes an alphanumeric literal in the name field, rather than a string.
- Variables no longer need a "$" in front of the name
Fixed
- Fixed blocks not dropping while the golem was running the break command
- Tools can no longer go below zero durability
Code of Copper v0.1.4
[0.1.4] - 2023-02-07
Refactor of the parser, fixing many compiler bugs.
Changed
- Major refactor of the parser:
- Variables within arrays no longer need brackets if they use only alphanumeric characters.
- Operators no longer need a space between them and literals.
- Lots of behind-the-scenes improvements which will allow for later enhancements.
- Most instructions will allow expressions as their parameters.
- Golems now don't print quotes when printing plain strings.
Fixed
- Golems no longer fall through non-full blocks.
- Golems now reset their variables when the program reruns.
- Items no longer disappear weirdly when placing from the second slot.