Skip to content

Block saves, a nice way to save block data.

Compare
Choose a tag to compare
@TheLimeGlass TheLimeGlass released this 17 Nov 15:25
· 78 commits to master since this release
  • Added block saves block save[s] of %blocks% or %blocks%'[s] block save more below.
  • Added automatic github actions, so you can now grab nightly builds at https://github.com/TheLimeGlass/Skellett/actions
  • Fixed collidable condition not being proper grammar.
  • Removed item frame syntaxes, they're going to be going into Khoryl.
  • Removed spawner synatxes, they're going to be going into Khoryl.
  • Removed Jukebox syntaxes, they're going to be going into Khoryl.
  • Removed LLama syntaxes, they're going to be going into Khoryl.
  • Removed Repeater syntaxes, they're going to be going into Khoryl.
  • Removed slime size syntaxes, they're going to be going into Khoryl.

Finally a better way of handling blocks and their types/data! Skellett has a utility expression called block saves, what this does is the return type will be a custom object, that's also serializable yay! That can be saved to a variable. So you can save a block save to a variable and set the block to the exact block save later, example script used to save and load areas:

command /pos1:
	trigger:
		if target block is set:
			set {pos::%player%::1} to location of target block
		else:
			set {pos::%player%::1} to location of player
		message "pos1 set to %{pos::%player%::1}%"

command /pos2:
	trigger:
		if target block is set:
			set {pos::%player%::2} to location of target block
		else:
			set {pos::%player%::2} to location of player
		message "pos2 set to %{pos::%player%::2}%"

command /save <string>:
	trigger:
		{pos::%player%::2} is set
		{pos::%player%::1} is set
		set {saves::%player%::%argument%::*} to block saves of blocks within {pos::%player%::2} to {pos::%player%::1}
		clear {pos::%player%::1} and {pos::%player%::2}
		message "Saved blocks to save %argument%"

command /load <string>:
	trigger:
		{saves::%player%::%argument%::*} is set
		loop {saves::%player%::%argument%::*}:
			set block at loop-value to loop-value
		message "Loaded blocks from save %argument%"

command /delete [<string>]:
	trigger:
		if argument is set:
			delete {saves::%player%::%argument%::*}
			message "Deleted save %argument%"
			stop
		delete {saves::%player%::*}
		message "Deleted all saves"

command /listSaves:
	trigger:
		message indexes of {saves::%player%::*}

on quit:
	delete {pos::%player%::*}

on script unload:
	delete {pos::*}