mirror of
https://github.com/rive-app/rive-flutter.git
synced 2025-06-23 23:46:42 +08:00
Cleanup and running core_generator.
This commit is contained in:
20
lib/src/asset_list.dart
Normal file
20
lib/src/asset_list.dart
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import 'dart:collection';
|
||||||
|
import 'package:rive/src/rive_core/asset.dart';
|
||||||
|
|
||||||
|
// List of assets used by the backboard.
|
||||||
|
class AssetList extends ListBase<Asset> {
|
||||||
|
final List<Asset?> _values = [];
|
||||||
|
List<Asset> get values => _values.cast<Asset>();
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get length => _values.length;
|
||||||
|
|
||||||
|
@override
|
||||||
|
set length(int value) => _values.length = value;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Asset operator [](int index) => _values[index]!;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void operator []=(int index, Asset value) => _values[index] = value;
|
||||||
|
}
|
@ -4,6 +4,7 @@ import 'package:flutter/foundation.dart';
|
|||||||
import 'package:rive/src/rive_core/runtime/exceptions/rive_format_error_exception.dart';
|
import 'package:rive/src/rive_core/runtime/exceptions/rive_format_error_exception.dart';
|
||||||
|
|
||||||
export 'package:rive/src/animation_list.dart';
|
export 'package:rive/src/animation_list.dart';
|
||||||
|
export 'package:rive/src/asset_list.dart';
|
||||||
export 'package:rive/src/blend_animations.dart';
|
export 'package:rive/src/blend_animations.dart';
|
||||||
export 'package:rive/src/container_children.dart';
|
export 'package:rive/src/container_children.dart';
|
||||||
export 'package:rive/src/core/importers/artboard_importer.dart';
|
export 'package:rive/src/core/importers/artboard_importer.dart';
|
||||||
|
12
lib/src/generated/asset_base.dart
Normal file
12
lib/src/generated/asset_base.dart
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/// Core automatically generated lib/src/generated/asset_base.dart.
|
||||||
|
/// Do not modify manually.
|
||||||
|
|
||||||
|
import 'package:rive/src/core/core.dart';
|
||||||
|
|
||||||
|
abstract class AssetBase<T extends CoreContext> extends Core<T> {
|
||||||
|
static const int typeKey = 99;
|
||||||
|
@override
|
||||||
|
int get coreType => AssetBase.typeKey;
|
||||||
|
@override
|
||||||
|
Set<int> get coreTypes => {AssetBase.typeKey};
|
||||||
|
}
|
@ -42,6 +42,7 @@ import 'package:rive/src/generated/animation/transition_number_condition_base.da
|
|||||||
import 'package:rive/src/generated/animation/transition_trigger_condition_base.dart';
|
import 'package:rive/src/generated/animation/transition_trigger_condition_base.dart';
|
||||||
import 'package:rive/src/generated/animation/transition_value_condition_base.dart';
|
import 'package:rive/src/generated/animation/transition_value_condition_base.dart';
|
||||||
import 'package:rive/src/generated/artboard_base.dart';
|
import 'package:rive/src/generated/artboard_base.dart';
|
||||||
|
import 'package:rive/src/generated/asset_base.dart';
|
||||||
import 'package:rive/src/generated/backboard_base.dart';
|
import 'package:rive/src/generated/backboard_base.dart';
|
||||||
import 'package:rive/src/generated/bones/bone_base.dart';
|
import 'package:rive/src/generated/bones/bone_base.dart';
|
||||||
import 'package:rive/src/generated/bones/cubic_weight_base.dart';
|
import 'package:rive/src/generated/bones/cubic_weight_base.dart';
|
||||||
@ -123,6 +124,7 @@ import 'package:rive/src/rive_core/animation/transition_bool_condition.dart';
|
|||||||
import 'package:rive/src/rive_core/animation/transition_number_condition.dart';
|
import 'package:rive/src/rive_core/animation/transition_number_condition.dart';
|
||||||
import 'package:rive/src/rive_core/animation/transition_trigger_condition.dart';
|
import 'package:rive/src/rive_core/animation/transition_trigger_condition.dart';
|
||||||
import 'package:rive/src/rive_core/artboard.dart';
|
import 'package:rive/src/rive_core/artboard.dart';
|
||||||
|
import 'package:rive/src/rive_core/asset.dart';
|
||||||
import 'package:rive/src/rive_core/backboard.dart';
|
import 'package:rive/src/rive_core/backboard.dart';
|
||||||
import 'package:rive/src/rive_core/bones/bone.dart';
|
import 'package:rive/src/rive_core/bones/bone.dart';
|
||||||
import 'package:rive/src/rive_core/bones/cubic_weight.dart';
|
import 'package:rive/src/rive_core/bones/cubic_weight.dart';
|
||||||
@ -298,6 +300,8 @@ class RiveCoreContext {
|
|||||||
return Skin();
|
return Skin();
|
||||||
case TendonBase.typeKey:
|
case TendonBase.typeKey:
|
||||||
return Tendon();
|
return Tendon();
|
||||||
|
case AssetBase.typeKey:
|
||||||
|
return Asset();
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
25
lib/src/rive_core/asset.dart
Normal file
25
lib/src/rive_core/asset.dart
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import 'package:rive/src/core/core.dart';
|
||||||
|
import 'package:rive/src/generated/asset_base.dart';
|
||||||
|
import 'package:rive/src/rive_core/backboard.dart';
|
||||||
|
|
||||||
|
class Asset extends AssetBase {
|
||||||
|
Backboard? _backboard;
|
||||||
|
Backboard? get backboard => _backboard;
|
||||||
|
set backboard(Backboard? value) {
|
||||||
|
if (_backboard == value) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_backboard = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void onAdded() {}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void onAddedDirty() {}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool import(ImportStack stack) {
|
||||||
|
return super.import(stack);
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +1,30 @@
|
|||||||
|
import 'package:rive/src/core/core.dart';
|
||||||
import 'package:rive/src/generated/backboard_base.dart';
|
import 'package:rive/src/generated/backboard_base.dart';
|
||||||
|
import 'package:rive/src/rive_core/asset.dart';
|
||||||
|
|
||||||
export 'package:rive/src/generated/backboard_base.dart';
|
export 'package:rive/src/generated/backboard_base.dart';
|
||||||
|
|
||||||
class Backboard extends BackboardBase {
|
class Backboard extends BackboardBase {
|
||||||
static final Backboard unknown = Backboard();
|
static final Backboard unknown = Backboard();
|
||||||
|
|
||||||
|
final AssetList _assets = AssetList();
|
||||||
|
AssetList get assets => _assets;
|
||||||
|
|
||||||
|
bool internalAddAsset(Asset asset) {
|
||||||
|
if (_assets.contains(asset)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
_assets.add(asset);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool internalRemoveAsset(Asset asset) {
|
||||||
|
bool removed = _assets.remove(asset);
|
||||||
|
|
||||||
|
return removed;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onAdded() {}
|
void onAdded() {}
|
||||||
|
|
||||||
|
@ -16,18 +16,6 @@ abstract class NestedAnimation<T extends Animation>
|
|||||||
bool get isEnabled;
|
bool get isEnabled;
|
||||||
void advance(double elapsedSeconds, MountedArtboard mountedArtboard);
|
void advance(double elapsedSeconds, MountedArtboard mountedArtboard);
|
||||||
|
|
||||||
// @override
|
|
||||||
// bool import(ImportStack stack) {
|
|
||||||
// var backboardImporter =
|
|
||||||
// stack.latest<BackboardImporter>(BackboardBase.typeKey);
|
|
||||||
// if (backboardImporter == null) {
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
// backboardImporter.addNestedArtboard(this);
|
|
||||||
|
|
||||||
// return super.import(stack);
|
|
||||||
// }
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void update(int dirt) {}
|
void update(int dirt) {}
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ abstract class MountedArtboard {
|
|||||||
AABB get bounds;
|
AABB get bounds;
|
||||||
double get renderOpacity;
|
double get renderOpacity;
|
||||||
set renderOpacity(double value);
|
set renderOpacity(double value);
|
||||||
|
void advance(double seconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
class NestedArtboard extends NestedArtboardBase {
|
class NestedArtboard extends NestedArtboardBase {
|
||||||
@ -83,6 +84,7 @@ class NestedArtboard extends NestedArtboardBase {
|
|||||||
animation.advance(elapsedSeconds, mountedArtboard!);
|
animation.advance(elapsedSeconds, mountedArtboard!);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mountedArtboard!.advance(elapsedSeconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -220,7 +220,6 @@ class StateMachineController extends RiveAnimationController<CoreContext> {
|
|||||||
void _onStateChange(LayerState layerState) =>
|
void _onStateChange(LayerState layerState) =>
|
||||||
SchedulerBinding.instance?.addPostFrameCallback((_) {
|
SchedulerBinding.instance?.addPostFrameCallback((_) {
|
||||||
String stateName = 'unknown';
|
String stateName = 'unknown';
|
||||||
print('Layer state type ${layerState.runtimeType}');
|
|
||||||
if (layerState is AnimationState && layerState.animation != null) {
|
if (layerState is AnimationState && layerState.animation != null) {
|
||||||
stateName = layerState.animation!.name;
|
stateName = layerState.animation!.name;
|
||||||
} else if (layerState is EntryState) {
|
} else if (layerState is EntryState) {
|
||||||
|
@ -116,4 +116,8 @@ class RuntimeMountedArtboard extends MountedArtboard {
|
|||||||
set renderOpacity(double value) {
|
set renderOpacity(double value) {
|
||||||
artboardInstance.opacity = value;
|
artboardInstance.opacity = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void advance(double seconds) =>
|
||||||
|
artboardInstance.advance(seconds, nested: true);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user