Skip to content

Releases: ceramic-engine/ceramic

Ceramic v1.6.0

04 Dec 20:55
Compare
Choose a tag to compare

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 using clay run android: builds an apk and runs it with adb. Displays clean and coloured logs like other platforms
  • [runtime] Add eagerTween() and eagerTransition() 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 or floatColors array using debug build or ceramic_debug_mesh_colors as well as ceramic_debug_entity_allocs defines. Fix #141
  • [runtime] Remove the use of data field (can still use it with ceramic_entity_data define)
  • [runtime] Add EntityData util to manage data associated with an entity (using DynamicData 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

Full Changelog: v1.5.0...v1.6.0

Release v1.5.0

21 Jun 16:23
Compare
Choose a tag to compare

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 and MeshUtils
  • [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), and ceramic_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() and Im.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 using RESIZE 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() and until() in shortcuts
  • [runtime] When a @component field is destroyed, auto-set it to null
  • [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

30 Jan 22:13
Compare
Choose a tag to compare

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 with VisualTransition
  • [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 (requires ceramic_quad_dark_color and ceramic_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 and ceramic_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 the Camera instance
  • [runtime] Remove Rect class (not really used)
  • Update haxe to 4.3.3

New Contributors

  • @l0go made their first contribution in #128

Full Changelog: v1.3.3...v1.4.0

Release v1.3.3

10 Dec 16:54
Compare
Choose a tag to compare

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

23 Nov 21:39
Compare
Choose a tag to compare

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());
image

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 when script 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

01 Nov 17:51
Compare
Choose a tag to compare

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

Full Changelog: v1.3.0...v1.3.1

Release v1.3.0

18 Aug 23:01
Compare
Choose a tag to compare

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 with ceramic_wireframe define)
  • [runtime] Ensure Scene load() and create() are called from a different callstack than asset load callback to prevent weird stack traces
  • [runtime] Add new mesh extensions: createVerticesGrid(), createIndicesGrid() and createUVsGrid()
  • [runtime] Add mesh field to Filter, 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 set contentDirty to true (note: only visuals have that field, but you can create your own on custom Entity 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 to screen.focusedVisual if object was destroyed under and autorun

Full Changelog: v1.2.0...v1.3.0

Release v1.2.0

18 May 17:53
Compare
Choose a tag to compare

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 of Sprite<T> with default type param to String
  • [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 and TilemapLayer.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 and easing properties to Sprite #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() and rotateLeft() helpers to TilemapTile
  • [tilemap] Add explicitDepth field to TilemapLayerData 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

18 Apr 21:41
Compare
Choose a tag to compare

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() from Shortcuts

Full Changelog: v1.1.0...v1.1.1

Release v1.1.0

10 Apr 17:18
Compare
Choose a tag to compare

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 and AlphaColor properties: hueHsluv, saturationHsluv, lightnessHsluv with internal cache for performances
  • [runtime] Make ChildrenDepth an enum abstract and add CUSTOM 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() and Im.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