Releases: ceramic-engine/ceramic
Ceramic v1.6.0
This release brings a lot of small bugfixes and improvements. It also bumps Haxe version to 4.3.6
(latest on this day) as well as latest HXCPP (from git).
How to update Ceramic
Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git
Changelog
- [android] Update project template to target API 34
- [runtime] Add
Utils.sign()
- [android] Add gamepad support to Android 🎮
- [android] Add support of
--run-apk
option when usingclay run android
: builds an apk and runs it with adb. Displays clean and coloured logs like other platforms - [runtime] Add
eagerTween()
andeagerTransition()
to start tweens and transitions that update using current frame delta instead of 0 - [runtime] Reuse start vertices when looping arc, and do not change mesh size from
MeshExtensions
- [runtime] Add
GeometryUtils.intersectCircles()
- [tools] Better output when running Ceramic via vscode
- [runtime] A few
Camera
improvements - [tools] Better vscode launch.json
- Add
text.glyphCode
optional callback used to override the char code of each glyph to be displayed. #140 - Allow to track down meshes with invalid
colors
orfloatColors
array using debug build orceramic_debug_mesh_colors
as well asceramic_debug_entity_allocs
defines. Fix #141 - [runtime] Remove the use of
data
field (can still use it withceramic_entity_data
define) - [runtime] Add
EntityData
util to manage data associated with an entity (usingDynamicData
component internally) - [tilemap] Add
hasTileAtPosition()
- [arcade] Explicitly fail when giving invalid tile size
- [tools] Use absolute paths when debugging, use relative paths for release builds but make tools smarter to resolve paths when displaying them in vscode and similar
- [ldtk] Fixes (thanks @carlito767 !)
- [runtime] Fix variant asset not being removed properly in some situations
- [runtime] Additional checks when adding a visual child
Dependency updates
- Update to
haxe
4.3.6 - Update
tracker
- Update
ase
- Move to
hxcpp
from git
New Contributors
- @carlito767 made their first contribution in #142
Full Changelog: v1.5.0...v1.6.0
Release v1.5.0
This release fixes several bugs and brings new features, mostly on the observable data model side of things (tracker library)
How to update Ceramic
Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git
Changelog
- [runtime] A few API improvements to
MeshExtensions
andMeshUtils
- [runtime] Fix an edge case where using a texture in a shared wouldn't make it a dependency of the render target, which could lead to wrong rendering order
- [tilemap] Fix wrong tile texture frame rendering when using tileset with spacing
- [runtime] Add
ceramic_no_log
define to disable logging (could be improved by actually removing the log calls from the resulting code), andceramic_mute_logs
that doesn't print logs but still fire log events - [runtime] Update
soloud
to make it work on recent versions of macos - [elements] Give more control to scrollbar visibility with immediate GUI with
Im.scrollbar()
- [tools] Change default icons for mac
- [elements] Support bold font (if assigned to theme) and point size with
Im.bold()
andIm.pointSize()
- [elements] Various improvements to make
Im.list
more versatile and work better when nested in a scrollable window - [runtime] Add support of
@stateMachine({checkFields: false})
to allow disabling check of{STATE}_enter/update/exit
field names - [runtime] Fix
bindToNativeScreenSize()
not updating size when screen native size changes without changing the matrix (when usingRESIZE
screen scaling) - [elements] Better handling of
disabled
state in TextFieldView - [elements] Add a way to know if an
Im.editText()
field has been blurred (unfocused) - [runtime] Add a fix/workaround to prevent rendering to eat too much CPU even if not much is happening
- [runtime] Add
cease()
anduntil()
in shortcuts - [runtime] When a
@component
field is destroyed, auto-set it tonull
- [ui] Slightly improve view layout system to make it reuse computed values in more situations
- [elements] Various improvements in elements UI
- [runtime] Compatibility with new
.fragments
file format - [runtime] Add
EnumAbstractMacro.fromStringSwitch()
- [http] Add download support on headless (node)
- [ui] Try to avoid marking a parent view as dirty layout in situations where it's not necessary
- [elements] Fix blurred status being fired too many times
- [runtime] Fix runtime assets not premultiplying images all the time
- [runtime] Smarter
Equal.equal()
- [runtime] Add
Fragment.get()
overload to get typed entity - [http] Fix bad resolution of binary response on iOS and Android
- [runtime] Allow implicit cast from ReadOnlyArray to Array
- [runtime] Add
SeedRandom.shuffle()
New Contributors
Full Changelog: v1.4.0...v1.5.0
Release v1.4.0
This release brings various fixes and additions. Haxe has also been updated to 4.3.3!
How to update Ceramic
Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git
Changelog
- [ldtk] Fix tile field type name by @Gaboose in #130
- [runtime] Add initial implementation of RoundedRect by @l0go in #128
- [ios] Fix build error with more recent version of cocoapods
- [runtime]
depth
can now be used withVisualTransition
- [runtime] Add
Visual.childWithType()
helper - [runtime] Add helpers to know if we are running on iOS or Android (true on web running on ios/android browsers, or when running as native ios/android app)
- [runtime] Add
darkColor
field to quad and the possibility to add custom float attributes to quad vertices (requiresceramic_quad_dark_color
andceramic_quad_float_attributes
defines) - [tools] Do not use hardcoded hxml output path anymore (usage with vscode extension)
- [tools] Add
select: auto
option on ide variant - [runtime] Add
Filter.neverEmpty
property - [web] Fix async loading failing when watching a directory via electron
- [sprite] Fix
Sprite.timeScale
being inverted (⚠️ breaking change) - [runtime] Add
Scroller.pagingEnabled
field, to enable snap to page feature - [ui] Expose scroller paging options to
ScrollView
- [ui] Add missing parameters to
CollectionView
's smooth scroll to item - [runtime] Correct missing vertical implementation of scroller paging and optimise CollectionView a bit
- [ui] Add an implementation of
PagerView
, with page looping support - [runtime] Add
ceramic_fake_ios
andceramic_fake_android
defines to force Utils.isAndroid/isIos() to return truc for debug purposes - [runtime] Add pinch gesture detector
- [runtime] Add
Scroller.dragThreshold
to make it wait for a drag to the correct direction before scrolling - [runtime] Provide a
Transform
object as a convenience from theCamera
instance - [runtime] Remove
Rect
class (not really used) - Update haxe to 4.3.3
New Contributors
Full Changelog: v1.3.3...v1.4.0
Release v1.3.3
One more release that adds a few contributions (thanks!) and fixes.
How to update Ceramic
Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git
Changelog
- [windows] Fix a compile error on windows after adding the preloader feature
- [ldtk] Support pixel offsets in gridTiles and autoLayerTiles (by @Gaboose)
- [spine] Allow to export to a custom output directory (by @goldenPiGames)
- [runtime] Fix a compile error when using
EditText
from native
Full Changelog: v1.3.2...v1.3.3
Release v1.3.2
This release brings more fixes and nice to have improvements.
You can now use ceramic.Preloader
to create a nice preloader with a progress bar when the assets of your scene are loading.
Let's say you were setting your main scene with:
app.scenes.main = new MainScene();
Adding a preloader is easy, simply replace this line with:
app.scenes.main = new Preloader(() -> new MainScene());
You can also create a subclass of Preloader
if you want to change how it looks like!
Another addition is the support of text input on web target when running on a mobile device. Previously, this wouldn't work because the on screen/virtual keyboard wouldn't show without a regular DOM <input>
element. This new version makes it work by creating <input>
elements on the fly from your EditText
components.
How to update Ceramic
Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git
Changelog
- [runtime] Make
hscript
a dependency only whenscript
plugin is enabled - [runtime] Add an option to only triangulate a subset of vertices with
Triangulate.triangulate()
- [runtime] Fix wireframe colors not being mapped correctly on mesh with per-indice colors
- [runtime] Try to use a better bezier easing cache key
- [runtime] Add
CeramicLogo
visual class that you can use to display a Ceramic logo anywhere you want! - [runtime] Add a method to move asset from one
Assets
instance to another (moveAll()
) - [runtime] Allow a root scene to be moved under a different slot (and overwrite target slot if used already)
- [runtime] Add
ceramic.Preloader
class to facilitate showing a preloader with a progress bar - [runtime] Improve implicit entity subclass constructor generation so that it can support arguments
- [runtime] Make Ceramic compatible with haxe's thread event loop
- [runtime] Fix parent asset not being resolved in some cases
- [runtime] Allow to change edit text cursor width
- [http] Fix 408 status not being taken into account on desktop targets
- [elements] More forgiving color field view input
- [runtime] Add support of text input on web target when running on a mobile devices
Full Changelog: v1.3.1...v1.3.2
Release v1.3.1
A new release with several fixes, including some that come from new contributors, thanks!
How to update Ceramic
Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git
Changelog
- [ldtk] Ensure tiles without alpha property are treated as opaque
- [runtime] Fix Files.getBytes on web target by @inc0der in #120
- [ldtk] Set the def field in LdtkFieldInstance by @Gaboose in #122
- [ldtk] parse array type values in LdtkFieldInstance by @Gaboose in #123
- [spine] Spine.hx clipping attachments by @goldenPiGames in #121
New Contributors
- @inc0der made their first contribution in #120
- @Gaboose made their first contribution in #122
- @goldenPiGames made their first contribution in #121
Full Changelog: v1.3.0...v1.3.1
Release v1.3.0
Another release that fixes several bugs and adds some new features to improve Ceramic usage in general.
How to update Ceramic
Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git
Changelog
- [tilemap] Add support of per-tile alpha, including when using LDtk
- [runtime] Add
Visual.wireframe
to render it as wireframe (disabled by default, enable withceramic_wireframe
define) - [runtime] Ensure Scene
load()
andcreate()
are called from a different callstack than asset load callback to prevent weird stack traces - [runtime] Add new mesh extensions:
createVerticesGrid()
,createIndicesGrid()
andcreateUVsGrid()
- [runtime] Add
mesh
field toFilter
, to allow rendering a texture managed by a filter with a more advanced layout of vertices, not only quads - [runtime] Improve entity macro to support
@content
meta: fields marked with this meta will setcontentDirty
totrue
(note: only visuals have that field, but you can create your own on customEntity
subclasses) - [runtime] Add
Utils.lerp()
- [runtime] Add assets variants concept, to allow loading the same source asset multiple times under different names, with different options
- [arcade] Ensure collision events won't explode if editing a group from a callback
- [ase] Premultiply alpha of resulting pixels by default: fixes alpha not displaying properly
- [ldtk] Fix compile error when targeting native
- [sprite] Sprite quad should inherit alpha by default
- [runtime] Accept width and height options when loading image from ase data
- [runtime] Support displaying an lcd-style grid when using
PixelArt
filter (see it in action: https://jeremyfa.itch.io/six-spaceships) - [unity] Find a workaround to make
Particles<T>
compile fine with C# target... - [runtime] Fix
Visual.destroy()
creating a dependency toscreen.focusedVisual
if object was destroyed under and autorun
Full Changelog: v1.2.0...v1.3.0
Release v1.2.0
This release fixes a few bugs and adds features here and there to improve Ceramic usage in various situations.
How to update Ceramic
Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git
Changelog
- [runtime] Fix StateMachine macro not calling entity state methods if inside
components
package - [elements] Add
Im.currentTheme
to get the current (computed) theme - [sprite] Remove
SpriteBase<T>
in favor ofSprite<T>
with default type param toString
- [ase] Fix a few edge cases in ase parsing
- [ldtk] More accurate loading of ase assets, to reflect the same layout as in LDtk
- [ldtk] Add an option to skip loading of an image referenced in an LDtk project
- [tilemap] Add
TilemapLayer.checkCollisionWithComputedTiles
andTilemapLayer.checkCollisionValues
to have more control on what to collide to on the layer - [sprite] Add
frameOffset
to offset frame with x and y values - [ldtk] Expose
LdtkEntityDefinition.tags
- [tools] Remove
-D no_inline
from completion hxml (HaxeFoundation/haxe#11102) - [ldtk] Add various helpers to
LdtkData
to make it easier to walk through it - [sprite] Add
SpriteSheetAnimation.duration
(computed/observable) - [sprite] Add
timeScale
andeasing
properties toSprite
#112 - [runtime] Add macros to easily generate
toString()
method on enum abstracts as well as iterating through each possible value - [tilemap] Instead of doing an actual quad rotation transform, use
rotateFrame
, because it's cheaper (internal) - [tilemap] Add
flipX()
,flipY()
,rotateRight()
androtateLeft()
helpers toTilemapTile
- [tilemap] Add
explicitDepth
field toTilemapLayerData
to allow setting an exact target depth to a tilemap layer - [tilemap] Add
TilemapData.tileset()
helper to get a tileset by its name
New Contributors
Full Changelog: v1.1.1...v1.2.0
Release v1.1.1
This release includes some bugfixes and a few additional shortcuts to make observable and computed fields usage more convenient, as well as autorun()
. It comes with a new guide about observables.
How to update Ceramic
Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git
Changelog
- [ios] Exclude arm64 arch from simulator target because it doesn't build correctly
- [web] Auto-block default scroll if default is scroll allowed but scrolling from inside a ceramic scroller
- [runtime] Update tracker and expose
unobserve()
/reobserve()
fromShortcuts
Full Changelog: v1.1.0...v1.1.1
Release v1.1.0
With a new major version of Haxe comes a new version of Ceramic! It now uses Haxe 4.3.0 and HXCPP 4.3.2. This update also includes various bugfixes and some API improvements.
How to update Ceramic
Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git
Changelog
- [http] Fix some contents being treated as binary instead of textual
- [runtime] Add new built-in shaders: gaussian blur and inner light
- [tpl] Default project now has more commented plugin entries in
ceramic.yml
for convenience - [runtime] Add
Color
andAlphaColor
properties:hueHsluv
,saturationHsluv
,lightnessHsluv
with internal cache for performances - [runtime] Make
ChildrenDepth
an enum abstract and addCUSTOM
value - [mac] On mac, make
targetFps
default to 60 to prevent eating all CPU because of failed vsync - [elements] Add
Im.theme()
,Im.tint()
,Im.background()
andIm.textColor()
to better customise Im windows - Update to Haxe 4.3.0
- Update to HXCPP 4.3.2
Full Changelog: v1.0.0...v1.1.0