Custom Block & Item Support!
Added
Item
extendsItemStack
PlayerEntity.getStackInMainHand
PlayerEntity.getStackInOffHand
Method
extendsCallable
Function
extendsCallable
Inventory
classList
toStringItemStack.init(item: Item, count: Integer) -> Null
\uXXXX
to stringsString.fromUnicode(unicode: Integer) -> String
GUI.onClose(player: PlayerEntity, gui: GUI) -> Null
PlayerEntity.getEnderChestInventory() -> Inventory
PlayerEntity.setEnderChestInventory(inventory: Inventory) -> Null
Inventory
constructorPlayerEntity.setInventory(inventory: Inventory) -> Null
PlayerEntity.getInventory() -> Inventory
NBTBoolean
NBTCompound
NBTElement
NBTFloat
NBTInteger
NBTList
NBTNull
NBTString
- Casting
start
script tagnonnull
access modifier- Custom item/block support
Items.register(item: Item) -> Item
ItemSettings
Blocks.register(block: Block) -> Block
Blocks.registerWithItem(block: Block) -> Block
BlockSettings
This version is probably very buggy because I added type requirements at the very end.
Added
randomInteger(min: Integer, max: Integer) -> Integer
randomFloat(min: Float, max: Float) -> Float
String.length() -> Integer
String.uppercase() -> String
String.lowercase() -> String
Number
type/class- variables/fields have optional required types
- functions have required return types
- function arguments have required types
- methods have required return types
- method arguments have required types
ItemStack.item
Changed
Events
is now accessed from a static contextEntity.addCommandTag
->Entity.addTag
Entity.getCommandTags
->Entity.getTags
Entity.removeCommandTag
->Entity.removeTag
Entity.dismountVehicle
->Entity.dismount
Entity.removeAllPassengers
->Entity.removePassengers
ServerPlayerEntity.changeGameMode
->ServerPlayerEntity.setGameMode
- Integer now extends Float instead of Float extending Integer
Events.onPlayerAttackEntity
->Events.onAttackEntity
Events.onPlayerBreakBlock
->Events.onBreakBlock
Events.onPlayerCraftItem
->Events.onCraftItem
Events.onPlayerDropItem
->Events.onDropItem
Events.onPlayerJump
->Events.onJump
Events.onPlayerPickupItem
->Events.onPickupItem
Events.onPlayerRingBell
->Events.onRingBell
Events.onPlayerSneak
->Events.whileSneaking
Events.onPlayerUseItem
->Events.onRightClickItem
Events.onPlayerSendChatMessage
->Events.onSendChatMessage
Fixed
- Dictionaries don't work in nbt elements
- Overriding
toString
does nothing - A class with no constructor takes an infinite amount of arguments
Improved
- Error messages
Removed
- Resource syntax due to conflict with variable declaration parsing
New syntax:namespace:path
->"namespace:path"
Resources are just strings.
Added
abs(number: Integer | Float): Object
String
is now iterable- Data can now be written to an entity
String.startsWith(text: String): Boolean
String.endsWith(text: String): Boolean
break
can now be used in switch statementString.split(splitter: String): List[String]
Integer.parseInteger(integer: String): Integer
Float.parseFloat(float: String): Float
ceil(number: Integer | Float): Integer
floor(number: Integer | Float): Integer
BlockHitResult
World.breakBlock(pos: BlockPos, drop_items: Boolean): Boolean
World.getBlock(pos: BlockPos): Block
List.append(object: Object): Null
Changed
events.onPlayerBreakBlock(function: Function[Boolean, PlayerEntity, Block]): Null
is nowevents.onPlayerBreakBlock(function: Function[Boolean, PlayerEntity, BlockPos, Block]): Null
World.setBlock
renamed toWorld.placeBlock
maxArguments
renamed tomaxArgumentCount
Fixed
- String concatenation
- Event registration not clearing on reload
Improved
- Error messages
Added
- Folder support for resources
foo:bar
now supportsfoo:foo/foobar
as
keyword to import statements- From statement
- Switch statement
- Switch expression
- Increment/decrement operators
x++
/x--
- Access to builtin classes
- Constructors for builtin classes
- Ternary expressions
- Division by zero error
Entity.raycast(distance: Float, target: Block, check_fluids: Boolean): Boolean
base64encode(input: String): String
base64decode(input: String): String
EntityTypes
List.contains(object: Object): Boolean
Changed
Entity.extinguish(): Null
andEntity.extinguishWithSound(): Null
have been merged into one functionEntity.extinguish(Boolean): Null
- Fix circular imports
- Reverted custom load script
- Float extends Integer
First alpha version of Sculk!
Known Bugs
- Crashes on server when any Sculk script errors occur