Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] First steps towards modernization [NOT WORKING YET] #10

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions game/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
*.ipr
*.iws
.idea/
.vscode/

# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
Expand All @@ -35,3 +36,5 @@ lib/generated_plugin_registrant.dart
# Exceptions to above rules.
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
.flutter-plugins-dependencies

macos/
24 changes: 22 additions & 2 deletions game/.metadata
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,27 @@
# This file should be version controlled and should not be manually edited.

version:
revision: e70236e36ce1d32067dc68eb55519ec3e14b6b01
channel: beta
revision: "2feea7a4071e25c1e3aac9c17016531bc4442f2a"
channel: "beta"

project_type: app

# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 2feea7a4071e25c1e3aac9c17016531bc4442f2a
base_revision: 2feea7a4071e25c1e3aac9c17016531bc4442f2a
- platform: macos
create_revision: 2feea7a4071e25c1e3aac9c17016531bc4442f2a
base_revision: 2feea7a4071e25c1e3aac9c17016531bc4442f2a

# User provided section

# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'
2 changes: 2 additions & 0 deletions game/analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ include: package:flame_lint/analysis_options.yaml
analyzer:
exclude:
- "**/*.g.dart"
errors:
avoid_print: ignore

linter:
rules:
Expand Down
File renamed without changes
9 changes: 4 additions & 5 deletions game/lib/game/ads.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@ import 'dart:async';

import 'package:flutter/foundation.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:gravitational_waves/game/analytics.dart';
import 'package:gravitational_waves/game/util.dart';
import 'package:oktoast/oktoast.dart';

import 'analytics.dart';
import 'util.dart';

class Ads {
static bool _loaded = false;
static RewardedAd? _preloadedAd;
Expand Down Expand Up @@ -79,11 +78,11 @@ class Ads {
}
ad.fullScreenContentCallback = null;
ad.show(
onUserEarnedReward: (RewardedAd ad, RewardItem rewardItem) {
onUserEarnedReward: (_, __) {
promise.complete(true);
},
);
} catch (ex) {
} on Exception catch (ex) {
print('Unexpected error while loading ad: $ex');
showToast('Unexpected error while loading the ad.');
promise.complete(false);
Expand Down
8 changes: 5 additions & 3 deletions game/lib/game/analytics.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@ String enumName(EventName enumVal) {
class Analytics {
static void log(EventName eventName) {
try {
FirebaseAnalytics().logEvent(name: enumName(eventName).toLowerCase());
} catch (ex) {
print('Unexpected error sending alalytics:');
FirebaseAnalytics.instance.logEvent(
name: enumName(eventName).toLowerCase(),
);
} on Exception catch (ex) {
print('Unexpected error sending analytics:');
print(ex);
}
}
Expand Down
5 changes: 2 additions & 3 deletions game/lib/game/assets/char.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'package:flame/sprite.dart';

import '../skin.dart';
import 'spritesheet.dart';
import 'package:gravitational_waves/game/assets/spritesheet.dart';
import 'package:gravitational_waves/game/skin.dart';

class Char {
static late Spritesheet _sheet;
Expand Down
3 changes: 1 addition & 2 deletions game/lib/game/assets/poofs.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import 'package:flame/components.dart';

import 'spritesheet.dart';
import 'package:gravitational_waves/game/assets/spritesheet.dart';

class Poofs {
static late Spritesheet _sheet;
Expand Down
7 changes: 6 additions & 1 deletion game/lib/game/assets/spritesheet.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@ const double _SRC_SIZE = 16.0;

@JsonSerializable()
class AnimationElement {
final int x, y, w, h, length, millis;
final int x;
final int y;
final int w;
final int h;
final int length;
final int millis;

AnimationElement(this.x, this.y, this.w, this.h, this.length, this.millis);

Expand Down
7 changes: 3 additions & 4 deletions game/lib/game/assets/tileset.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import 'package:dartlin/dartlin.dart';
import 'package:flame/extensions.dart';
import 'package:flame/sprite.dart';

import '../collections.dart';
import '../util.dart';
import 'spritesheet.dart';
import 'package:gravitational_waves/game/assets/spritesheet.dart';
import 'package:gravitational_waves/game/collections.dart';
import 'package:gravitational_waves/game/util.dart';

enum OuterTilePosition {
topLeft,
Expand Down
35 changes: 17 additions & 18 deletions game/lib/game/audio.dart
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
import 'package:audioplayers/audioplayers.dart';
import 'package:flame_audio/flame_audio.dart';

import 'preferences.dart';
import 'util.dart';
import 'package:gravitational_waves/game/preferences.dart';
import 'package:gravitational_waves/game/util.dart';

class Audio {
static final AudioCache musicPlayer = _createLoopingPlayer(
static final AudioPlayer musicPlayer = _createLoopingPlayer(
prefix: 'assets/audio/',
);

static AudioCache _createLoopingPlayer({required String prefix}) {
static AudioPlayer _createLoopingPlayer({required String prefix}) {
final player = AudioPlayer();
player.setReleaseMode(ReleaseMode.LOOP);
return AudioCache(prefix: prefix, fixedPlayer: player);
player.audioCache = AudioCache(prefix: prefix);
player.setReleaseMode(ReleaseMode.loop);
return player;
}

static Future init() async {
Expand Down Expand Up @@ -40,33 +39,33 @@ class Audio {
FlameAudio.play('sfx/$sound');
}

static void music(String song) async {
static Future<void> music(String song) async {
if (!ENABLE_AUDIO) {
return;
}
if (!Preferences.instance.musicOn) {
return;
}
await musicPlayer.play('music/$song');
await musicPlayer.play(AssetSource('music/$song'));
}

static void stopMusic() async {
await musicPlayer.fixedPlayer?.stop();
static Future<void> stopMusic() async {
await musicPlayer.stop();
}

static void pauseMusic() async {
await musicPlayer.fixedPlayer?.pause();
static Future<void> pauseMusic() async {
await musicPlayer.pause();
}

static void resumeMusic() async {
await musicPlayer.fixedPlayer?.resume();
static Future<void> resumeMusic() async {
await musicPlayer.resume();
}

static void gameMusic() async {
static Future<void> gameMusic() async {
return music('dark-moon.mp3');
}

static void menuMusic() async {
static Future<void> menuMusic() async {
return music('contemplative-breaks.mp3');
}
}
10 changes: 6 additions & 4 deletions game/lib/game/column.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import 'assets/tileset.dart';
import 'util.dart';
import 'package:gravitational_waves/game/assets/tileset.dart';
import 'package:gravitational_waves/game/util.dart';

class Column {
static const OFFSET = 5;

int bottom, top;
late int bottomVariant, topVariant;
int bottom;
int top;
late int bottomVariant;
late int topVariant;

Column(this.bottom, this.top) {
bottomVariant = Tileset.randomVariant();
Expand Down
27 changes: 15 additions & 12 deletions game/lib/game/components/background.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@ import 'dart:ui';

import 'package:dartlin/collections.dart';
import 'package:flame/components.dart';

import '../assets/tileset.dart';
import '../column.dart';
import '../game.dart';
import '../palette.dart';
import '../util.dart';
import 'tutorial.dart';
import 'package:gravitational_waves/game/assets/tileset.dart';
import 'package:gravitational_waves/game/column.dart';
import 'package:gravitational_waves/game/components/tutorial.dart';
import 'package:gravitational_waves/game/game.dart';
import 'package:gravitational_waves/game/palette.dart';
import 'package:gravitational_waves/game/util.dart';

class Background extends PositionComponent with HasGameRef<MyGame> {
static final Paint _bg = Palette.background.paint();
Expand All @@ -17,7 +16,7 @@ class Background extends PositionComponent with HasGameRef<MyGame> {

Background(double x) {
this.x = x;
columns = _generateChunck(CHUNK_SIZE).toList();
columns = _generateChunk(CHUNK_SIZE).toList();
}

Background.plains(double x) {
Expand All @@ -34,9 +33,13 @@ class Background extends PositionComponent with HasGameRef<MyGame> {
return List.generate(size, (_) => Column(0, 0));
}

static Iterable<Column> _generateChunck(int size) sync* {
int? beforeTop, beforeBottom;
var changesTop = 0, changesBottom = 0;
static Iterable<Column> _generateChunk(int size) sync* {
int? beforeTop;
int? beforeBottom;

var changesTop = 0;
var changesBottom = 0;

for (var i = 0; i < size; i++) {
if (i < 3 || i >= size - 3) {
yield Column(0, 0);
Expand Down Expand Up @@ -192,7 +195,7 @@ class Background extends PositionComponent with HasGameRef<MyGame> {
@override
void update(double dt) {
super.update(dt);
if (endX < gameRef.camera.position.x - gameRef.size.x) {
if (endX < gameRef.cameraX - gameRef.size.x) {
removeFromParent();
}
}
Expand Down
6 changes: 3 additions & 3 deletions game/lib/game/components/coin.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import 'dart:ui';

import 'package:flame/components.dart';

import '../game.dart';
import '../util.dart';
import 'package:gravitational_waves/game/game.dart';
import 'package:gravitational_waves/game/util.dart';

class Coin extends SpriteAnimationComponent with HasGameRef<MyGame> {
static const double SRC_SIZE = 16.0;
Expand Down Expand Up @@ -57,7 +57,7 @@ class Coin extends SpriteAnimationComponent with HasGameRef<MyGame> {
return (x - this.x).abs() < 4 * SIZE;
}

bool get offscreen => x < gameRef.camera.position.x - gameRef.size.x;
bool get offscreen => x < gameRef.cameraX - gameRef.size.x;

@override
int get priority => 4;
Expand Down
10 changes: 3 additions & 7 deletions game/lib/game/components/hud.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import 'dart:ui';

import 'package:flame/components.dart';

import '../game.dart';
import '../util.dart';
import 'coin.dart';
import 'package:gravitational_waves/game/components/coin.dart';
import 'package:gravitational_waves/game/game.dart';
import 'package:gravitational_waves/game/util.dart';

class Hud extends Component with HasGameRef<MyGame> {
static const double MARGIN = 8.0;
Expand Down Expand Up @@ -54,9 +53,6 @@ class Hud extends Component with HasGameRef<MyGame> {
Fonts.hud.render(c, p2, Vector2(x3, MARGIN));
}

@override
PositionType get positionType => PositionType.viewport;

@override
int get priority => 6;
}
12 changes: 4 additions & 8 deletions game/lib/game/components/planet.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import 'package:flame/components.dart';

import '../assets/tileset.dart';
import '../collections.dart';
import '../game.dart';
import '../util.dart';
import 'package:gravitational_waves/game/assets/tileset.dart';
import 'package:gravitational_waves/game/collections.dart';
import 'package:gravitational_waves/game/game.dart';
import 'package:gravitational_waves/game/util.dart';

class Planet extends SpriteComponent with HasGameRef<MyGame> {
Planet() {
Expand Down Expand Up @@ -31,7 +30,4 @@ class Planet extends SpriteComponent with HasGameRef<MyGame> {

@override
int get priority => 1;

@override
PositionType get positionType => PositionType.viewport;
}
Loading
Loading