feat: Enhance rendering with pushwall and enemy color support in ASCII, Sixel, and Software renderers
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:test/test.dart';
|
||||
import 'package:wolf_3d_dart/src/entities/entities/enemies/guard.dart';
|
||||
import 'package:wolf_3d_dart/wolf_3d_data_types.dart';
|
||||
import 'package:wolf_3d_dart/wolf_3d_engine.dart';
|
||||
import 'package:wolf_3d_dart/wolf_3d_input.dart';
|
||||
@@ -11,6 +12,16 @@ void main() {
|
||||
test('software renderer draws fullscreen map overlay when enabled', () {
|
||||
final engine = _buildEngine();
|
||||
engine.init();
|
||||
expect(engine.pushwallManager.pushwalls.containsKey('5,5'), isTrue);
|
||||
engine.entities.add(
|
||||
Guard(
|
||||
x: 8.5,
|
||||
y: 8.5,
|
||||
angle: 0,
|
||||
mapId: MapObject.guardStart,
|
||||
difficulty: Difficulty.medium,
|
||||
),
|
||||
);
|
||||
|
||||
final renderer = SoftwareRenderer();
|
||||
final frameNormal = renderer.render(engine);
|
||||
@@ -28,6 +39,8 @@ void main() {
|
||||
}
|
||||
|
||||
expect(changedPixels, greaterThan(mapPixels.length ~/ 5));
|
||||
expect(mapPixels.contains(ColorPalette.vga32Bit[6]), isTrue);
|
||||
expect(mapPixels.contains(ColorPalette.vga32Bit[12]), isTrue);
|
||||
expect(mapPixels.contains(ColorPalette.vga32Bit[10]), isTrue);
|
||||
});
|
||||
});
|
||||
@@ -57,7 +70,9 @@ WolfEngine _buildEngine() {
|
||||
_fillBoundaries(wallGrid, 2);
|
||||
wallGrid[2][4] = 1;
|
||||
wallGrid[2][5] = 90;
|
||||
wallGrid[5][5] = 1;
|
||||
objectGrid[2][2] = MapObject.playerEast;
|
||||
objectGrid[5][5] = MapObject.pushwallTrigger;
|
||||
|
||||
return WolfEngine(
|
||||
data: WolfensteinData(
|
||||
|
||||
Reference in New Issue
Block a user