Cleanup and running core_generator.

This commit is contained in:
Luigi Rosso
2021-10-08 19:21:50 -07:00
committed by Luigi Rosso
parent 365910c4a0
commit 52d08cb421
10 changed files with 89 additions and 13 deletions

20
lib/src/asset_list.dart Normal file
View 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;
}

View File

@ -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';

View 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};
}

View File

@ -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;
} }

View 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);
}
}

View File

@ -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() {}

View File

@ -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) {}
} }

View File

@ -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

View File

@ -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) {

View File

@ -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);
} }