Fixed ASCII rasterizer, abstracted out input and audio, and created CLI client (untested)

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2026-03-16 14:47:10 +01:00
parent 6f7885a924
commit ede2c3fa31
18 changed files with 353 additions and 166 deletions

View File

@@ -0,0 +1,38 @@
import 'package:flutter/services.dart';
import 'package:wolf_3d_entities/wolf_3d_entities.dart';
import 'package:wolf_3d_input/wolf_3d_input.dart';
class Wolf3dFlutterInput extends Wolf3dInput {
Set<LogicalKeyboardKey> _previousKeys = {};
@override
void update() {
final pressedKeys = HardwareKeyboard.instance.logicalKeysPressed;
final newlyPressedKeys = pressedKeys.difference(_previousKeys);
isMovingForward = pressedKeys.contains(LogicalKeyboardKey.keyW);
isMovingBackward = pressedKeys.contains(LogicalKeyboardKey.keyS);
isTurningLeft = pressedKeys.contains(LogicalKeyboardKey.keyA);
isTurningRight = pressedKeys.contains(LogicalKeyboardKey.keyD);
isInteracting = newlyPressedKeys.contains(LogicalKeyboardKey.space);
isFiring =
pressedKeys.contains(LogicalKeyboardKey.controlLeft) &&
!pressedKeys.contains(LogicalKeyboardKey.space);
requestedWeapon = null;
for (final LogicalKeyboardKey key in newlyPressedKeys) {
if (key == LogicalKeyboardKey.digit1) requestedWeapon = WeaponType.knife;
if (key == LogicalKeyboardKey.digit2) requestedWeapon = WeaponType.pistol;
if (key == LogicalKeyboardKey.digit3) {
requestedWeapon = WeaponType.machineGun;
}
if (key == LogicalKeyboardKey.digit4) {
requestedWeapon = WeaponType.chainGun;
}
}
_previousKeys = Set.from(pressedKeys);
}
}