Skip to content

Releases: GMDU/code-of-copper

Code of Copper v0.3.4

21 Jul 13:12
Compare
Choose a tag to compare

[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

21 Jul 13:08
Compare
Choose a tag to compare

[0.3.3] - 2024-06-19

Update to 1.21

Changed

  • The datapack now requires 1.21.

Code of Copper v0.3.2

27 Apr 15:21
Compare
Choose a tag to compare

[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

29 Jan 13:16
Compare
Choose a tag to compare

[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

26 Nov 14:30
Compare
Choose a tag to compare

[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

24 Aug 14:31
Compare
Choose a tag to compare
Pre-release

[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

26 Feb 21:22
Compare
Choose a tag to compare

[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

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

26 Feb 21:22
Compare
Choose a tag to compare

[0.2.1] - 2022-02-24

Escaping, interaction improvements, position variable, and break instruction.

Added

  • $POS variable
  • break instruction
  • \ as escape for strings and regexes
    • Escaped " are replaced by as to not break tellraw

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

21 Feb 03:59
Compare
Choose a tag to compare

[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

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

07 Feb 09:06
Compare
Choose a tag to compare

[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.