BonfireGame class

Is a customGame where all magic of the Bonfire happen.

Inheritance
Implemented types
Available extensions

Constructors

BonfireGame({required BuildContext context, required GameMap map, List<PlayerController>? playerControllers, Player? player, GameInterface? interface, List<GameComponent>? components, List<GameComponent>? hudComponents, GameBackground? background, bool debugMode = false, bool showCollisionArea = false, Color? collisionAreaColor, Color? lightingColorGame, ValueChanged<BonfireGame>? onReady, Color? backgroundColor, GameColorFilter? colorFilter, CameraConfig? cameraConfig, List<Force2D>? globalForces})

Properties

assets AssetsCache
The cache of all (non-image) assets loaded into the game. This defaults to the global Flame.assets cache, but you can replace this with another instance if needed.
getter/setter pairinherited
background GameBackground?
Background of the game. This can be a color or custom component
final
buildContext BuildContext?
Currently attached build context. Can be null if not attached.
no setterinherited
camera BonfireCamera
The component that is responsible for rendering your world.
getter/setter pair
canvasSize Vector2
no setterinherited
children ComponentSet
The children components of this component.
no setterinherited
collisionAreaColor Color?
Color of the collision area when showCollisionArea is true
final
collisionDetection QuadTreeCollisionDetection
getter/setter pairinherited
colorFilter ColorFilterInterface
no setteroverride
context BuildContext
Context used to access all Flutter power in your game.
final
debugColor Color
The color that the debug output should be rendered with.
getter/setter pairinherited
debugCoordinatesPrecision int?
How many decimal digits to print when displaying coordinates in the debug mode. Setting this to null will suppress all coordinates from the output.
getter/setter pairinherited
debugMode bool
Returns whether this Component is in debug mode or not. When a child is added to the Component it gets the same debugMode as its parent has when it is prepared.
getter/setter pairinherited
debugPaint Paint
The debugColor represented as a Paint object.
no setterinherited
debugTextPaint TextPaint
Returns a TextPaint object with the debugColor set as color for the text.
no setterinherited
enabledGestures bool
getter/setter pairinherited
enabledKeyboard bool
getter/setter pairinherited
gameStateListeners List<VoidCallback>
finalinherited
gestureDetectors → GestureDetectorBuilder
Used internally by various mixins that need to use gesture detection functionality in Flutter.
latefinalinherited
globalForces List<Force2D>
final
hasChildren bool
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
hasLayout bool
Indicates if this game instance is connected to a GameWidget that is live in the flutter widget tree. Once this is true, the game is ready to have its size used or in the case of a FlameGame, to receive components.
no setterinherited
hasLifecycleEvents bool
no setterinherited
highestPriority int
Get of the _highestPriority
no setteroverride
images Images
The cache of all images loaded into the game. This defaults to the global Flame.images cache, but you can replace it with a new cache instance if needed.
getter/setter pairinherited
interface GameInterface?
The way you can draw things like life bars, stamina and settings. In another words, anything that you may add to the interface to the game.
final
isAttached bool
Whether the game widget was attached to the Flutter tree.
no setterinherited
isLoaded bool
Whether this component has completed its onLoad step.
no setterinherited
isLoading bool
Whether the component is currently executing its onLoad step.
no setterinherited
isMounted bool
Whether this component is currently added to a component tree.
no setterinherited
isMounting bool
no setterinherited
isRemoved bool
Whether the component has been removed. Originally this flag is false, but it becomes true after the component was mounted and then removed from its parent. The flag becomes false again when the component is mounted to a new parent.
no setterinherited
isRemoving bool
Whether the component is scheduled to be removed.
no setterinherited
key ComponentKey?
A key that can be used to identify this component in the tree.
finalinherited
lighting LightingInterface
no setteroverride
lightingColorGame Color?
Used to configure lighting in the game
final
loaded Future<void>
A future that completes when this component finishes loading.
no setterinherited
map GameMap
Represents a map (or world) where the game occurs.
final
minimumDistance double?
getter/setter pairinherited
mounted Future<void>
A future that will complete once the component is mounted on its parent.
no setterinherited
mouseCursor MouseCursor
Used to change the mouse cursor of the GameWidget running this game. Setting the value to null will make the GameWidget defer the choice of the cursor to the closest region available on the tree.
getter/setter pairinherited
mouseDetector ↔ void Function(PointerHoverEvent event)?
Set by the PointerMoveDispatcher to receive mouse events from the game widget.
getter/setter pairinherited
notifiers List<ComponentsNotifier<Component>>
latefinalinherited
onReady ValueChanged<BonfireGame>?
getter/setter pair
overlays → OverlayManager
A property that stores an OverlayManager
latefinalinherited
parent Component?
Who owns this component in the component tree.
getter/setter pairinherited
paused bool
Returns is the engine if currently paused or running
getter/setter pairinherited
pauseWhenBackgrounded bool
Whether the game should pause when the app is backgrounded.
getter/setter pairinherited
player Player?
Represents the character controlled by the user in the game. Instances of this class has actions and movements ready to be used and configured.
final
playerControllers List<PlayerController>?
The player-controlling component.
final
priority int
Render priority of this component. This allows you to control the order in which your components are rendered.
getter/setter pairinherited
removed Future<void>
A future that completes when this component is removed from its parent.
no setterinherited
renderBox → GameRenderBox
Just a reference back to the render box that is kept up to date by the engine.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
sceneBuilderStatus SceneBuilderStatus
getter/setter pairoverride
showCollisionArea bool
Used to draw area collision in objects.
final
size Vector2
This is overwritten to consider the viewport transformation.
no setterinherited
timeScale double
Returns the current time scale.
getter/setter pairinherited
world World
The World that the camera is rendering. Inside of this world is where most of your components should be added.
getter/setter pairinherited
worldsize Vector2
no setteroverride

Methods

add(Component component) FutureOr<void>
Schedules component to be added as a child to this component.
override
addAll(Iterable<Component> components) Future<void>
A convenience method to add multiple children at once.
override
addGameStateListener(VoidCallback callback) → void
inherited
addHud(Component component) FutureOr<void>
Used to add hud component in the game.
override
addJoystickObserver(PlayerControllerListener target, {bool cleanObservers = false, bool moveCameraToTarget = false}) → void
Use this method to change default observer of the Joystick events.
override
addToParent(Component parent) FutureOr<void>
Adds this component as a child of parent (see add for details).
inherited
addVisible(GameComponent obj) → void
ancestors({bool includeSelf = false}) Iterable<Component>
An iterator producing this component's parent, then its parent's parent, then the great-grand-parent, and so on, until it reaches a component without a parent.
inherited
assertHasLayout() → void
inherited
attach(PipelineOwner owner, GameRenderBox gameRenderBox) → void
Marks game as attached to any Flutter widget tree.
inherited
attackables({bool onlyVisible = false}) Iterable<Attackable>
Used to get all "Attackables" or oly visibles.
override
backgroundColor() Color
Returns the game background color. By default it will return a black color. It cannot be changed at runtime, because the game widget does not get rebuild when this value changes.
collisions({bool onlyVisible = false}) Iterable<ShapeHitbox>
Used to get all "ShapeHitbox".
override
componentsAtLocation<T>(T locationContext, List<T>? nestedContexts, T? transformContext(CoordinateTransform, T), bool checkContains(Component, T)) Iterable<Component>
This is a generic implementation of componentsAtPoint; refer to those docs for context.
inherited
componentsAtPoint(Vector2 point, [List<Vector2>? nestedPoints]) Iterable<Component>
An iterable of descendant components intersecting the given point. The point is in the local coordinate space.
inherited
componentsNotifier<T extends Component>() ComponentsNotifier<T>
Returns a ComponentsNotifier for the given type W.
inherited
configCollisionDetection(Rect mapDimensions) → void
override
contains(Component c) bool
Whether the children list contains the given component.
inherited
containsLocalPoint(Vector2 point) bool
Whether a point is within the boundaries of the visible part of the game.
inherited
containsPoint(Vector2 point) bool
Same as containsLocalPoint, but for a "global" point.
inherited
convertGlobalToLocalCoordinate(Vector2 point) Vector2
Converts a global coordinate (i.e. w.r.t. the app itself) to a local coordinate (i.e. w.r.t. he game widget). If the widget occupies the whole app ("full screen" games), or is not attached to Flutter, this operation is the identity.
inherited
convertLocalToGlobalCoordinate(Vector2 point) Vector2
Converts a local coordinate (i.e. w.r.t. the game widget) to a global coordinate (i.e. w.r.t. the app itself). If the widget occupies the whole app ("full screen" games), or is not attached to Flutter, this operation is the identity.
inherited
createComponentSet() ComponentSet
This method creates the children container for the current component. Override this method if you need to have a custom ComponentSet within a particular class.
inherited
currentTime() double
Returns the current time in seconds with microseconds precision.
inherited
decorations({bool onlyVisible = false}) Iterable<GameDecoration>
Used to get all "Decoration" or oly visibles.
override
dequeueAdd(Component child, Component parent) → void
inherited
dequeueRemove(Component child) → void
inherited
descendants({bool includeSelf = false, bool reversed = false}) Iterable<Component>
Recursively enumerates all nested children.
inherited
detach() → void
Marks game as no longer attached to any Flutter widget tree.
inherited
enableGestures(bool enable) → void
override
enableKeyboard(bool enable) → void
override
enemies({bool onlyVisible = false}) Iterable<Enemy>
Used to get all "Enemies" or oly visibles.
override
enqueueAdd(Component child, Component parent) → void
inherited
enqueueMove(Component child, Component newParent) → void
inherited
enqueueRebalance(Component parent) → void
inherited
enqueueRemove(Component child, Component parent) → void
inherited
finalizeRemoval() → void
inherited
findByKey<T extends Component>(ComponentKey key) → T?
inherited
findByKeyName<T extends Component>(String name) → T?
inherited
findGame() → FlameGame<World>?
Fetches the nearest FlameGame ancestor to the component.
inherited
findParent<T extends Component>({bool includeSelf = false}) → T?
Returns the closest parent further up the hierarchy that satisfies type=T, or null if no such parent can be found.
inherited
findRootGame() → FlameGame<World>?
Fetches the root FlameGame ancestor to the component.
inherited
firstChild<T extends Component>() → T?
Returns the first child that matches the given type T, or null if there are no such children.
inherited
generateValues(Duration duration, {double begin = 0.0, double end = 1.0, Curve curve = Curves.linear, Curve? reverseCurve, bool autoStart = true, bool infinite = false, VoidCallback? onFinish, ValueChanged<double>? onChange}) ValueGeneratorComponent
Used to generate numbers to create your animations or anythings
override
globalToViewportPosition(Vector2 position) Vector2
This method convert viewport position to word position
override
handleLifecycleEventAdd(Component parent) → LifecycleEventStatus
inherited
handleLifecycleEventMove(Component newParent) → LifecycleEventStatus
inherited
handleLifecycleEventRemove(Component parent) → LifecycleEventStatus
inherited
handleResize(Vector2 size) → void
inherited
initializeCollisionDetection({required Rect mapDimensions, double? minimumDistance, int maxObjects = 25, int maxLevels = 10}) → void
Initialize the QuadTree.
inherited
isVisibleInCamera(GameComponent c) bool
Used to check if a component is visible in the camera.
override
lastChild<T extends Component>() → T?
Returns the last child that matches the given type T, or null if there are no such children.
inherited
lifecycleStateChange(AppLifecycleState state) → void
This is the lifecycle state change hook; every time the game is resumed, paused or suspended, this is called.
inherited
livingEnemies({bool onlyVisible = false}) Iterable<Enemy>
Used to get living "Enemies" or oly visibles.
override
load() FutureOr<void>
inherited
loadSprite(String path, {Vector2? srcSize, Vector2? srcPosition}) Future<Sprite>
Utility method to load and cache the image for a sprite based on its options.
inherited
loadSpriteAnimation(String path, SpriteAnimationData data) Future<SpriteAnimation>
Utility method to load and cache the image for a sprite animation based on its options.
inherited
minimumDistanceCheck(Vector2 activeItemCenter, Vector2 potentialCenter) bool
inherited
mount() → void
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onAttach() → void
Called when the game has been attached. This can be overridden to add logic that requires the game to already be attached to the widget tree.
inherited
onChildrenChanged(Component child, ChildrenChangeType type) → void
This method will be invoked from lifecycle if child has been added to or removed from its parent children list.
inherited
onComponentTypeCheck(ShapeHitbox first, ShapeHitbox second) bool
inherited
onDetach() → void
Called after the game has left the widget tree. This can be overridden to add logic that requires the game not be on the flutter widget tree anymore.
onDispose() → void
Called when the GameWidget is disposed by Flutter.
inherited
onGameResize(Vector2 size) → void
This passes the new size along to every component in the tree via their Component.onGameResize method, enabling each one to make their decision of how to handle the resize event.
inherited
onKeyEvent(KeyEvent event, Set<LogicalKeyboardKey> keysPressed) KeyEventResult
inherited
onLoad() FutureOr<void>
Late initialization method for Component.
override
onMount() → void
inherited
onParentResize(Vector2 maxSize) → void
Called whenever the parent of this component changes size; and also once before onMount.
inherited
onPointerCancel(PointerCancelEvent event) → void
inherited
onPointerDown(PointerDownEvent event) → void
inherited
onPointerHover(PointerHoverEvent event) → void
inherited
onPointerMove(PointerMoveEvent event) → void
inherited
onPointerSignal(PointerSignalEvent event) → void
inherited
onPointerUp(PointerUpEvent event) → void
inherited
onRemove() → void
Called right before the component is removed from the game.
inherited
pauseEngine() → void
Pauses the engine game loop execution.
inherited
processLifecycleEvents() → void
inherited
processRebalanceEvents() → void
inherited
propagateToApplicableNotifiers(Component component, void callback(ComponentsNotifier<Component>)) → void
inherited
propagateToChildren<T extends Component>(bool handler(T), {bool includeSelf = false}) bool
This method first calls the passed handler on the leaves in the tree, the children without any children of their own. Then it continues through all other children. The propagation continues until the handler returns false, which means "do not continue", or when the handler has been called with all children.
inherited
query<T extends Component>({bool onlyVisible = false}) Iterable<T>
Used to find component by type visible or not.
override
queryHud<T extends Component>() Iterable<T>
Used to get hud components.
override
raycast(Ray2 ray, {double? maxDistance, List<ShapeHitbox>? ignoreHitboxes, RaycastResult<ShapeHitbox>? out}) RaycastResult<ShapeHitbox>?
override
raycastAll(Vector2 origin, {required int numberOfRays, double startAngle = 0, double sweepAngle = tau, double? maxDistance, List<Ray2>? rays, List<ShapeHitbox>? ignoreHitboxes, List<RaycastResult<ShapeHitbox>>? out}) List<RaycastResult<ShapeHitbox>>
override
raytrace(Ray2 ray, {int maxDepth = 10, List<ShapeHitbox>? ignoreHitboxes, List<RaycastResult<ShapeHitbox>>? out}) Iterable<RaycastResult<ShapeHitbox>>
override
ready() Future<void>
Ensure that all pending tree operations finish.
inherited
refreshWidget({bool isInternalRefresh = true}) → void
When a Game is attached to a GameWidget, this method will force that widget to be rebuilt. This can be used when updating any property which is implemented within the Flutter tree.
inherited
registerKey(ComponentKey key, Component component) → void
inherited
remove(Component component) → void
Removes a component from the component tree.
inherited
removeAll(Iterable<Component> components) → void
Removes all the children in the list and calls onRemove for all of them and their children.
inherited
removeFromParent() → void
Remove the component from its parent in the next tick.
inherited
removeGameStateListener(VoidCallback callback) → void
inherited
removeVisible(GameComponent obj) → void
removeWhere(bool test(Component component)) → void
Removes all the children for which the test function returns true.
inherited
render(Canvas canvas) → void
This implementation of render renders each component, making sure the canvas is reset for each one.
inherited
renderDebugMode(Canvas canvas) → void
inherited
renderTree(Canvas canvas) → void
inherited
requestUpdatePriority() → void
resumeEngine() → void
Resumes the engine game loop execution.
inherited
screenToWorld(Vector2 position) Vector2
This method convert screen position to word position
override
setLoaded() → void
Used by the FlameGame to set the loaded state of the component, since the game isn't going through the whole normal component life cycle.
inherited
setMounted() → void
Used by the FlameGame to set the mounted state of the component, since the game isn't going through the whole normal component life cycle.
inherited
setRemoved() → void
Used by the FlameGame to set the removed state of the component, since the game isn't going through the whole normal component life cycle.
inherited
startScene(List<SceneAction> actions, {void onComplete()?}) → void
override
stepEngine({double stepTime = 1 / 60}) → void
Steps the engine game loop by one frame. Works only if the engine is in paused state. By default step time is assumed to be 1/60th of a second.
inherited
stopScene() → void
override
toBeLoaded() FutureOr<void>
To be used for tests that needs to evaluate the game after it has been loaded by the game widget.
inherited
toString() String
A string representation of this object.
inherited
unregisterKey(ComponentKey key) → void
inherited
update(double dt) → void
This method is called periodically by the game engine to request that your component updates itself.
updateTree(double dt) → void
This method traverses the component tree and calls update on all its children according to their priority order, relative to the priority of the direct siblings, not the children or the ancestors.
inherited
viewportPositionToGlobal(Vector2 position) Vector2
This method convert viewport position to screen position
override
visibles<T extends GameComponent>() Iterable<T>
Used to get visible "Components".
override
worldToScreen(Vector2 position) Vector2
This method convert word position to screen position
override

Operators

operator ==(Object other) bool
The equality operator.
inherited

Constants

INTERVAL_OPTIMIZE_TREE → const int
INTERVAL_UPDATE_ORDER → const int