Compare commits
2 Commits
thermion_f
...
thermion_f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1e07486017 | ||
|
|
58da196876 |
21
CHANGELOG.md
21
CHANGELOG.md
@@ -3,6 +3,27 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## 2024-09-25
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Packages with breaking changes:
|
||||||
|
|
||||||
|
- [`thermion_flutter` - `v0.2.0-dev.6.0`](#thermion_flutter---v020-dev60)
|
||||||
|
|
||||||
|
Packages with other changes:
|
||||||
|
|
||||||
|
- There are no other changes in this release.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### `thermion_flutter` - `v0.2.0-dev.6.0`
|
||||||
|
|
||||||
|
- **BREAKING** **CHORE**: remove superseded HardwareKeyboard* classes.
|
||||||
|
|
||||||
|
|
||||||
## 2024-09-25
|
## 2024-09-25
|
||||||
|
|
||||||
### Changes
|
### Changes
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
## 0.2.0-dev.6.0
|
||||||
|
|
||||||
|
> Note: This release has breaking changes.
|
||||||
|
|
||||||
|
- **BREAKING** **CHORE**: remove superseded HardwareKeyboard* classes.
|
||||||
|
|
||||||
## 0.2.0-dev.5.0
|
## 0.2.0-dev.5.0
|
||||||
|
|
||||||
- Update a dependency to the latest release.
|
- Update a dependency to the latest release.
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
import 'package:thermion_dart/thermion_dart/entities/entity_transform_controller.dart';
|
|
||||||
import 'package:flutter/services.dart';
|
|
||||||
|
|
||||||
class HardwareKeyboardListener {
|
|
||||||
final EntityTransformController _controller;
|
|
||||||
var _listening = true;
|
|
||||||
HardwareKeyboardListener(this._controller) {
|
|
||||||
// Get the global handler.
|
|
||||||
final KeyMessageHandler? existing =
|
|
||||||
ServicesBinding.instance.keyEventManager.keyMessageHandler;
|
|
||||||
// The handler is guaranteed non-null since
|
|
||||||
// `FallbackKeyEventRegistrar.instance` is only called during
|
|
||||||
// `Focus.onFocusChange`, at which time `ServicesBinding.instance` must
|
|
||||||
// have been called somewhere.
|
|
||||||
assert(existing != null);
|
|
||||||
// Assign the global handler with a patched handler.
|
|
||||||
ServicesBinding.instance.keyEventManager.keyMessageHandler = (keyMessage) {
|
|
||||||
if (keyMessage.rawEvent == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!_listening) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
var event = keyMessage.rawEvent!;
|
|
||||||
switch (event.logicalKey) {
|
|
||||||
case LogicalKeyboardKey.escape:
|
|
||||||
_listening = false;
|
|
||||||
break;
|
|
||||||
case LogicalKeyboardKey.keyW:
|
|
||||||
(event is RawKeyDownEvent)
|
|
||||||
? _controller.forwardPressed()
|
|
||||||
: _controller.forwardReleased();
|
|
||||||
break;
|
|
||||||
case LogicalKeyboardKey.keyA:
|
|
||||||
event is RawKeyDownEvent
|
|
||||||
? _controller.strafeLeftPressed()
|
|
||||||
: _controller.strafeLeftReleased();
|
|
||||||
break;
|
|
||||||
case LogicalKeyboardKey.keyS:
|
|
||||||
event is RawKeyDownEvent
|
|
||||||
? _controller.backPressed()
|
|
||||||
: _controller.backReleased();
|
|
||||||
break;
|
|
||||||
case LogicalKeyboardKey.keyD:
|
|
||||||
event is RawKeyDownEvent
|
|
||||||
? _controller.strafeRightPressed()
|
|
||||||
: _controller.strafeRightReleased();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
void dispose() {
|
|
||||||
ServicesBinding.instance.keyEventManager.keyMessageHandler = null;
|
|
||||||
_controller.dispose();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
import 'dart:async';
|
|
||||||
import 'package:thermion_dart/thermion_dart/entities/entity_transform_controller.dart';
|
|
||||||
import 'package:flutter/services.dart';
|
|
||||||
|
|
||||||
class HardwareKeyboardPoll {
|
|
||||||
final EntityTransformController _controller;
|
|
||||||
late Timer _timer;
|
|
||||||
HardwareKeyboardPoll(this._controller) {
|
|
||||||
_timer = Timer.periodic(const Duration(milliseconds: 16), (_) {
|
|
||||||
if (RawKeyboard.instance.keysPressed.contains(LogicalKeyboardKey.keyW)) {
|
|
||||||
_controller.forwardPressed();
|
|
||||||
} else {
|
|
||||||
_controller.forwardReleased();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (RawKeyboard.instance.keysPressed.contains(LogicalKeyboardKey.keyS)) {
|
|
||||||
_controller.backPressed();
|
|
||||||
} else {
|
|
||||||
_controller.backReleased();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (RawKeyboard.instance.keysPressed.contains(LogicalKeyboardKey.keyA)) {
|
|
||||||
_controller.strafeLeftPressed();
|
|
||||||
} else {
|
|
||||||
_controller.strafeLeftReleased();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (RawKeyboard.instance.keysPressed.contains(LogicalKeyboardKey.keyD)) {
|
|
||||||
_controller.strafeRightPressed();
|
|
||||||
} else {
|
|
||||||
_controller.strafeRightReleased();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void dispose() {
|
|
||||||
_timer.cancel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
name: thermion_flutter
|
name: thermion_flutter
|
||||||
description: Flutter plugin for 3D rendering with the Thermion toolkit.
|
description: Flutter plugin for 3D rendering with the Thermion toolkit.
|
||||||
version: 0.2.0-dev.5.0
|
version: 0.2.0-dev.6.0
|
||||||
homepage: https://thermion.dev
|
homepage: https://thermion.dev
|
||||||
repository: https://github.com/nmfisher/thermion
|
repository: https://github.com/nmfisher/thermion
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user