From ce317d47d848d947fd40a45ae1a396d36de327be Mon Sep 17 00:00:00 2001 From: AlexisL61 Date: Sun, 3 Jul 2022 13:12:07 +0200 Subject: [PATCH] Ajout du rich presence Discord --- readme.md | 5 +- sot_companion/lib/class/module.dart | 22 ++ sot_companion/lib/helper/WindowManager.dart | 3 +- sot_companion/lib/main.dart | 241 ++++++------------ .../{ => modules/cook_time}/class/food.dart | 0 .../modules/cook_time/class/food_intent.dart | 6 + .../modules/cook_time/pages/food_page.dart | 170 ++++++++++++ .../discord_rpc/class/sot_activity.dart | 40 +++ .../modules/discord_rpc/enums/sot_rpc.dart | 172 +++++++++++++ .../lib/modules/discord_rpc/pages/rpc.dart | 136 ++++++++++ .../pages/select_activity_rpc.dart | 87 +++++++ .../discord_rpc/pages/select_ship_rpc.dart | 76 ++++++ .../flutter/generated_plugin_registrant.cc | 4 + .../linux/flutter/generated_plugins.cmake | 1 + sot_companion/pubspec.lock | 21 ++ sot_companion/pubspec.yaml | 1 + .../flutter/generated_plugin_registrant.cc | 3 + .../windows/flutter/generated_plugins.cmake | 1 + .../windows/runner/resources/app_icon.ico | Bin 33772 -> 75644 bytes 19 files changed, 817 insertions(+), 172 deletions(-) create mode 100644 sot_companion/lib/class/module.dart rename sot_companion/lib/{ => modules/cook_time}/class/food.dart (100%) create mode 100644 sot_companion/lib/modules/cook_time/class/food_intent.dart create mode 100644 sot_companion/lib/modules/cook_time/pages/food_page.dart create mode 100644 sot_companion/lib/modules/discord_rpc/class/sot_activity.dart create mode 100644 sot_companion/lib/modules/discord_rpc/enums/sot_rpc.dart create mode 100644 sot_companion/lib/modules/discord_rpc/pages/rpc.dart create mode 100644 sot_companion/lib/modules/discord_rpc/pages/select_activity_rpc.dart create mode 100644 sot_companion/lib/modules/discord_rpc/pages/select_ship_rpc.dart diff --git a/readme.md b/readme.md index 4b70a1f..11d5cf0 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,8 @@ # SOT_Companion -Un simple overlay sur Sea of Thieves +Un simple overlay pour Sea of Thieves ## Fonctionnalités -- Permet de savoir le temps pour cuire un aliment \ No newline at end of file +- Permet de savoir le temps pour cuire un aliment +- Permet de montrer ce que vous faites sur le jeu avec la compatibilité Rich Presence de Discord \ No newline at end of file diff --git a/sot_companion/lib/class/module.dart b/sot_companion/lib/class/module.dart new file mode 100644 index 0000000..2da5f3d --- /dev/null +++ b/sot_companion/lib/class/module.dart @@ -0,0 +1,22 @@ +import 'package:flutter/widgets.dart'; +import 'package:sot_companion/modules/cook_time/pages/food_page.dart'; +import 'package:sot_companion/modules/discord_rpc/pages/rpc.dart'; + +class Module { + String name; + String image; + Widget mainPage; + + Module(this.name, this.image, this.mainPage); + + static List moduleList = [ + Module( + "Cuisine", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/c/c6/Food.png/revision/latest/scale-to-width-down/1000?cb=20200116140939", + CookTime_Page()), + Module( + "Discord_rpc", + "https://discord.com/assets/9f6f9cd156ce35e2d94c0e62e3eff462.png", + RPC_Page()), + ]; +} diff --git a/sot_companion/lib/helper/WindowManager.dart b/sot_companion/lib/helper/WindowManager.dart index 90c7917..62e7eb4 100644 --- a/sot_companion/lib/helper/WindowManager.dart +++ b/sot_companion/lib/helper/WindowManager.dart @@ -5,7 +5,8 @@ class SOT_WindowsManager { SOT_WindowsManager(); static changeSize(Size newSize) async { - if ((await windowManager.getSize()).width != newSize.width) { + Size screenSize = await windowManager.getSize(); + if (screenSize.width != newSize.width || screenSize.height != newSize.height) { await windowManager.setSize(newSize); await windowManager.setAlignment(Alignment.topRight); //await windowManager.setBounds(Offset(1,1) & newSize, animate: true); diff --git a/sot_companion/lib/main.dart b/sot_companion/lib/main.dart index d08fd0f..44cda50 100644 --- a/sot_companion/lib/main.dart +++ b/sot_companion/lib/main.dart @@ -1,28 +1,25 @@ +import 'package:dart_discord_rpc/dart_discord_rpc.dart'; import 'package:flutter/material.dart'; import 'package:flutter_acrylic/flutter_acrylic.dart'; -import 'package:sot_companion/class/food.dart'; +import 'package:sot_companion/class/module.dart'; import 'package:sot_companion/helper/WindowManager.dart'; import 'package:window_manager/window_manager.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); + DiscordRPC.initialize(); // Must add this line. await Window.initialize(); await windowManager.ensureInitialized(); WindowOptions windowOptions = const WindowOptions( - size: Size(250, 50), - minimumSize: Size(10,10), + size: Size(100, 50), + minimumSize: Size(10, 10), center: true, skipTaskbar: true, titleBarStyle: TitleBarStyle.hidden, ); windowManager.waitUntilReadyToShow(windowOptions, () async { - await windowManager.setBounds(Rect.largest); - Size size = await windowManager.getSize(); - print(size); - await windowManager.setSize(Size(250, 50)); - await windowManager.setPosition(Offset(size.width - 280, 10)); await Window.setEffect( effect: WindowEffect.aero, dark: false, @@ -79,188 +76,94 @@ class MyHomePage extends StatefulWidget { } class _MyHomePageState extends State { - String status = "SELECT_FOOD"; - int cookingStartTime = 0; - Food? foodToCook; - Widget body = Container(); + String status = "MINIMIZE"; + Module? moduleSelected; - @override Widget build(BuildContext context) { - // This method is rerun every time setState is called, for instance as done - // by the _incrementCounter method above. - // - // The Flutter framework has been optimized to make rerunning build methods - // fast, so that you can just rebuild anything that needs updating rather - // than having to individually change instances of widgets. - switch (status) { - case "SELECT_FOOD": - body = _buildSelectFood(); - break; - case "CLOSE": - body = _buildClose(); - break; - case "COOKING": - body = _buildCooking(); - break; - default: + late Widget scaffoldChild; + if (status == "MODULES") { + scaffoldChild = _buildModules(); + } else { + scaffoldChild = _buildMinimize(); } - - return Scaffold(backgroundColor: Colors.transparent, body: body); + return Scaffold(backgroundColor: Colors.transparent, body: scaffoldChild); } - Widget _buildSelectFood() { - SOT_WindowsManager.changeSize(Size(250, 50)); - return Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ + Widget _buildModules() { + if (moduleSelected == null) { + SOT_WindowsManager.changeSize(Size(250, 50)); + } + return Column(children: [ + Row(children: [ InkWell( child: Icon(Icons.arrow_right), onTap: () { - status = "CLOSE"; - setState(() {}); + setState(() { + status = "MINIMIZE"; + }); }, ), Expanded( child: Row( - children: List.generate(Food.availableFoods.length, - (index) => _buildFoodToCook(Food.availableFoods[index])))) - ], - ); + mainAxisAlignment: MainAxisAlignment.center, + children: List.generate(Module.moduleList.length, (index) { + return Expanded(child:Row(mainAxisAlignment: MainAxisAlignment.center, children: [ _buildModuleIcon(Module.moduleList[index])])); + }))) + ]), + moduleSelected != null + ? Expanded( + child: Column(children: [ + SizedBox(height: 4,), + Container( + margin: EdgeInsets.symmetric(horizontal:10), + height: 2, + width: MediaQuery.of(context).size.width, + color: Colors.white), + SizedBox(height: 4,), + Expanded(child: moduleSelected!.mainPage) + ])) + : Container() + ]); } - Widget _buildClose() { - SOT_WindowsManager.changeSize(Size(50, 50)); - return - Row(children: [ + Widget _buildMinimize() { + print("BUILD_MINIMZE"); + moduleSelected = null; + SOT_WindowsManager.changeSize(Size(100, 50)); + return Row(children: [ InkWell( child: Icon(Icons.close), onTap: () { windowManager.close(); }, ), - Expanded(child:Row(mainAxisAlignment: MainAxisAlignment.center, children: [ - - InkWell( - child: CircleAvatar( - backgroundImage: NetworkImage( - "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/c/c6/Food.png/revision/latest/scale-to-width-down/1000?cb=20200116140939"), - ), - onTap: () { - status = "SELECT_FOOD"; - setState(() {}); - }), - ]))]); - } - - Widget _buildCooking() { - SOT_WindowsManager.changeSize(Size(250, 50)); - print(double.maxFinite); - return Container( - padding: EdgeInsets.only(right: 10), - child: TweenAnimationBuilder( - tween: Tween( - begin: (DateTime.now().millisecondsSinceEpoch / 1000) - - cookingStartTime / 1000, - end: (foodToCook!.timeToBurn).toDouble()), - duration: Duration( - seconds: (foodToCook!.timeToBurn - - ((DateTime.now().millisecondsSinceEpoch / 1000) - - cookingStartTime / 1000)) - .toInt()), - builder: (BuildContext context, double time, Widget? child) { - return Row(children: [ - InkWell( - child: Icon(Icons.arrow_right), - onTap: () { - status = "SELECT_FOOD"; - setState(() {}); - }, - ), - SizedBox( - width: 10, - ), - CircleAvatar( - backgroundImage: NetworkImage(foodToCook!.image), - ), - SizedBox( - width: 10, - ), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - Text( - time < foodToCook!.timeToCook - ? (foodToCook!.timeToCook - time.floor()) - .toString() + - "s" - : (foodToCook!.timeToBurn - time.floor()) - .toString() + - "s", - style: TextStyle( - color: time < foodToCook!.timeToBurn - ? (time < foodToCook!.timeToCook - ? Colors.white - : Colors.green) - : Colors.red, - fontSize: 20)), - Stack( - children: [ - Container( - height: 5, - width: double.maxFinite, - color: Colors.white, - ), - LayoutBuilder(builder: - (BuildContext context, BoxConstraints constraints) { - return Container( - height: 5, - width: time > foodToCook!.timeToCook - ? constraints.maxWidth - : time * - constraints.maxWidth / - foodToCook!.timeToCook, - color: Colors.green, - ); - }), - LayoutBuilder(builder: - (BuildContext context, BoxConstraints constraints) { - return Container( - height: 5, - width: time > foodToCook!.timeToCook - ? (time > foodToCook!.timeToBurn - ? constraints.maxWidth - : (time - foodToCook!.timeToCook) * - constraints.maxWidth / - (foodToCook!.timeToBurn - - foodToCook!.timeToCook)) - : 0, - color: Colors.red, - ); - }), - //Container(height:5, width:double.maxFinite,color: Colors.red,), - ], - ) - ], - )) - ]); - })); + Expanded( + child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [ + InkWell( + child: CircleAvatar( + backgroundColor: Colors.transparent, + backgroundImage: NetworkImage( + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/b/b8/Investigator_of_Dark_Intrigue_emblem.png/revision/latest/scale-to-width-down/1000?cb=20220630155533"), + ), + onTap: () { + status = "MODULES"; + setState(() {}); + }), + ])) + ]); } - Widget _buildFoodToCook(Food food) { - return Expanded( - child: InkWell( - child: CircleAvatar( - radius: 50, - backgroundImage: NetworkImage(food.image), - ), - onTap: () { - foodToCook = food; - cookingStartTime = DateTime.now().millisecondsSinceEpoch; - //print(foodToCook!.timeToCook); - status = "COOKING"; - setState(() {}); - }, - )); + Widget _buildModuleIcon(Module module) { + return InkWell( + child: CircleAvatar( + backgroundColor: Colors.transparent, + backgroundImage: NetworkImage(module.image), + ), + onTap: () { + if (moduleSelected == null || moduleSelected!.name != module.name) { + moduleSelected = module; + setState(() {}); + } + }); } } diff --git a/sot_companion/lib/class/food.dart b/sot_companion/lib/modules/cook_time/class/food.dart similarity index 100% rename from sot_companion/lib/class/food.dart rename to sot_companion/lib/modules/cook_time/class/food.dart diff --git a/sot_companion/lib/modules/cook_time/class/food_intent.dart b/sot_companion/lib/modules/cook_time/class/food_intent.dart new file mode 100644 index 0000000..118b788 --- /dev/null +++ b/sot_companion/lib/modules/cook_time/class/food_intent.dart @@ -0,0 +1,6 @@ +import 'package:flutter/widgets.dart'; + +class FoodIntent extends Intent{ + int num; + FoodIntent(this.num); +} diff --git a/sot_companion/lib/modules/cook_time/pages/food_page.dart b/sot_companion/lib/modules/cook_time/pages/food_page.dart new file mode 100644 index 0000000..b6b9229 --- /dev/null +++ b/sot_companion/lib/modules/cook_time/pages/food_page.dart @@ -0,0 +1,170 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter/widgets.dart'; +import 'package:sot_companion/helper/WindowManager.dart'; +import 'package:sot_companion/modules/cook_time/class/food.dart'; +import 'package:sot_companion/modules/cook_time/class/food_intent.dart'; + +class CookTime_Page extends StatefulWidget { + CookTime_Page({Key? key}) : super(key: key); + + @override + State createState() => _CookTime_PageState(); +} + +class _CookTime_PageState extends State { + String status = "SELECT_FOOD"; + int cookingStartTime = 0; + Food? foodToCook; + Widget body = Container(); + + @override + Widget build(BuildContext context) { + // This method is rerun every time setState is called, for instance as done + // by the _incrementCounter method above. + // + // The Flutter framework has been optimized to make rerunning build methods + // fast, so that you can just rebuild anything that needs updating rather + // than having to individually change instances of widgets. + switch (status) { + case "SELECT_FOOD": + print("SELECT_FOOD"); + body = _buildSelectFood(); + break; + case "COOKING": + print("COOKING"); + body = _buildCooking(); + break; + default: + } + + return Scaffold(backgroundColor: Colors.transparent, body: body); + } + + Widget _buildSelectFood() { + SOT_WindowsManager.changeSize(Size(250, 100)); + return Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Row( + children: List.generate( + Food.availableFoods.length, + (index) => + _buildFoodToCook(Food.availableFoods[index])))) + ], + ); + } + + Widget _buildCooking() { + SOT_WindowsManager.changeSize(Size(250, 100)); + print(double.maxFinite); + return Container( + padding: EdgeInsets.only(right: 10), + child: TweenAnimationBuilder( + tween: Tween( + begin: (DateTime.now().millisecondsSinceEpoch / 1000) - + cookingStartTime / 1000, + end: (foodToCook!.timeToBurn).toDouble()), + duration: Duration( + seconds: (foodToCook!.timeToBurn - + ((DateTime.now().millisecondsSinceEpoch / 1000) - + cookingStartTime / 1000)) + .toInt()), + builder: (BuildContext context, double time, Widget? child) { + return Row(children: [ + InkWell( + child: Icon(Icons.arrow_right), + onTap: () { + status = "SELECT_FOOD"; + setState(() {}); + }, + ), + SizedBox( + width: 10, + ), + CircleAvatar( + backgroundImage: NetworkImage(foodToCook!.image), + ), + SizedBox( + width: 10, + ), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text( + time < foodToCook!.timeToCook + ? (foodToCook!.timeToCook - time.floor()) + .toString() + + "s" + : (foodToCook!.timeToBurn - time.floor()) + .toString() + + "s", + style: TextStyle( + color: time < foodToCook!.timeToBurn + ? (time < foodToCook!.timeToCook + ? Colors.white + : Colors.green) + : Colors.red, + fontSize: 20)), + Stack( + children: [ + Container( + height: 5, + width: double.maxFinite, + color: Colors.white, + ), + LayoutBuilder(builder: + (BuildContext context, BoxConstraints constraints) { + return Container( + height: 5, + width: time > foodToCook!.timeToCook + ? constraints.maxWidth + : time * + constraints.maxWidth / + foodToCook!.timeToCook, + color: Colors.green, + ); + }), + LayoutBuilder(builder: + (BuildContext context, BoxConstraints constraints) { + return Container( + height: 5, + width: time > foodToCook!.timeToCook + ? (time > foodToCook!.timeToBurn + ? constraints.maxWidth + : (time - foodToCook!.timeToCook) * + constraints.maxWidth / + (foodToCook!.timeToBurn - + foodToCook!.timeToCook)) + : 0, + color: Colors.red, + ); + }), + //Container(height:5, width:double.maxFinite,color: Colors.red,), + ], + ) + ], + )) + ]); + })); + } + + Widget _buildFoodToCook(Food food) { + return Expanded( + child: InkWell( + child: CircleAvatar( + radius: 50, + backgroundImage: NetworkImage(food.image), + ), + onTap: () { + foodToCook = food; + cookingStartTime = DateTime.now().millisecondsSinceEpoch; + //print(foodToCook!.timeToCook); + status = "COOKING"; + setState(() {}); + }, + )); + } +} diff --git a/sot_companion/lib/modules/discord_rpc/class/sot_activity.dart b/sot_companion/lib/modules/discord_rpc/class/sot_activity.dart new file mode 100644 index 0000000..e448a23 --- /dev/null +++ b/sot_companion/lib/modules/discord_rpc/class/sot_activity.dart @@ -0,0 +1,40 @@ +import 'package:dart_discord_rpc/dart_discord_rpc.dart'; +import 'package:sot_companion/modules/discord_rpc/enums/sot_rpc.dart'; + +class SOTRPC { + SOTRPC_Ship? ship; + int crewSize = 0; + + SOTRPC_Activity? activity; + + late DiscordRPC rpc; + + static SOTRPC currentActivity = SOTRPC(); + + SOTRPC() { + rpc = DiscordRPC(applicationId: "992744165802782741"); + rpc.start(autoRegister: true); + } + + void setShip(SOTRPC_Ship ship) { + currentActivity.ship = ship; + update(); + } + + void setActivity(SOTRPC_Activity activity) { + currentActivity.activity = activity; + update(); + } + + void update() { + rpc.updatePresence(DiscordPresence( + state: activity != null ? activity!.discordText : null, + details: ship != null ? "Sur un " + ship!.name + " ("+crewSize.toString()+"/"+ship!.maxCrewSize.toString()+")" : null, + largeImageKey: activity != null ? activity!.discordKey : null, + largeImageText: activity != null ? activity!.discordText : null, + startTimeStamp: DateTime.now().millisecondsSinceEpoch, + smallImageKey: ship != null ? ship!.discordKey : null, + smallImageText: ship != null ? ship!.discordText+ " ("+crewSize.toString()+"/"+ship!.maxCrewSize.toString()+")" : null, + )); + } +} diff --git a/sot_companion/lib/modules/discord_rpc/enums/sot_rpc.dart b/sot_companion/lib/modules/discord_rpc/enums/sot_rpc.dart new file mode 100644 index 0000000..dd8bad3 --- /dev/null +++ b/sot_companion/lib/modules/discord_rpc/enums/sot_rpc.dart @@ -0,0 +1,172 @@ +enum SOTRPC_Ship { + SLOOP( + "Sloop", + 2, + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/2/23/Sloop_side.png/revision/latest/scale-to-width-down/1000?cb=20180128201317", + "sloop", + "En sloop"), + BRIGANTIN( + "Brigantin", + 3, + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/a/ae/Brigantine_side.png/revision/latest/scale-to-width-down/1000?cb=20180801224652", + "brigantine", + "En brig"), + GALLION( + "Gallion", + 4, + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/8/81/Galleon_side.png/revision/latest/scale-to-width-down/1000?cb=20180129055718", + "galleon", + "En gallion"); + + const SOTRPC_Ship(this.name, this.maxCrewSize, this.image, this.discordKey, + this.discordText); + final String name; + final int maxCrewSize; + final String image; + final String discordKey; + final String discordText; +} + +enum SOTRPC_ActivityCategory { + EVENT( + "Evenement", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/8/8c/Bilge_Rats_icon.png/revision/latest/scale-to-width-down/100?cb=20210323012132", + [ + SOTRPC_Activity.EVT_SKELETONFORT, + SOTRPC_Activity.EVT_FORTOFFORTUNE, + SOTRPC_Activity.EVT_GHOSTFLEET, + SOTRPC_Activity.EVT_SKELETONFLEET, + SOTRPC_Activity.EVT_ASHENWINDS + ]), + GOLD_HOARDERS( + "Collectionneurs d'or", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/f/f1/Gold_Hoarders_icon.png/revision/latest/scale-to-width-down/100?cb=20200512034953", + [SOTRPC_Activity.GH_TREASURES, SOTRPC_Activity.GH_VAULT]), + SOULS( + "Ordre des âmes", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/0/02/Order_of_Souls_icon.png/revision/latest/scale-to-width-down/100?cb=20200512154422", + [SOTRPC_Activity.OOS_BOUNTY, SOTRPC_Activity.OOS_GHOSTSHIP]), + MERCHANT( + "Marchands", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/9/9c/Merchant_Alliance_icon.png/revision/latest/scale-to-width-down/100?cb=20200512032051", + [SOTRPC_Activity.M_CONTRACT, SOTRPC_Activity.M_CARGO]), + HUNTERS_CALL( + "Appel du chasseurs", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/b/b1/The_Hunter%27s_Call_icon.png/revision/latest/scale-to-width-down/100?cb=20200920220917", + [SOTRPC_Activity.HC_FISHING]), + REAPERS( + "Os de la faucheuse", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/6/61/Reaper%27s_Bones_icon.png/revision/latest/scale-to-width-down/100?cb=20200512033231", + [SOTRPC_Activity.R_CHASSE]), + ATHENA( + "Athéna", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/c/c2/Athena%27s_Fortune_icon.png/revision/latest/scale-to-width-down/100?cb=20200512034100", + [SOTRPC_Activity.A_VOYAGE, SOTRPC_Activity.A_VEIL]), + OTHER( + "Autre", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/e/e2/Icon_info.png/revision/latest?cb=20190830001723", + [SOTRPC_Activity.O_SEAFORT, SOTRPC_Activity.O_SANCTUARY]); + + const SOTRPC_ActivityCategory(this.name, this.image, this.activities); + final String name; + final String image; + final List activities; +} + +enum SOTRPC_Activity { + GH_TREASURES( + "Carte aux trésors", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/2/25/Treasure_Map.png/revision/latest/scale-to-width-down/250?cb=20180305183105", + "treasure_map", + "Cherche des coffres"), + GH_VAULT( + "Cache", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/4/42/Gold_Hoarder_Treasure_Vaults.jpg/revision/latest/scale-to-width-down/250?cb=20200909190928", + "vault", + "Fait une cache"), + OOS_BOUNTY( + "Equipage squelette", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/2/26/Bounty_Map.png/revision/latest/scale-to-width-down/250?cb=20180222013351", + "skeletons", + "Se combat contre des squelettes"), + OOS_GHOSTSHIP( + "Bateaux fantômes", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/b/b1/Ghost_Ship.png/revision/latest/scale-to-width-down/250?cb=20220507113646", + "ghost_ship", + "Se combat contre des bateaux fantômes"), + HC_FISHING( + "Pêche", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/f/ff/Fishing.jpg/revision/latest/scale-to-width-down/250?cb=20191123135243", + "fishing", + "Pêche des poissons", + ), + A_VOYAGE( + "Voyage d'athéna", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/2/21/Chest_of_Legends.png/revision/latest/scale-to-width-down/1000?cb=20210306072509", + "athena", + "Fait une quête d'athéna", + ), + A_VEIL( + "Voile des anciens", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/3/3a/Ach_Veil_Seeker.png/revision/latest/scale-to-width-down/1000?cb=20220423001931", + "veil", + "Complete le voile des anciens", + ), + M_CONTRACT( + "Contrat de marchand", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/b/b3/Trade_Good_Ledger.png/revision/latest/scale-to-width-down/1000?cb=20190829211226", + "merchant_contract", + "Fait un contrat de marchand"), + M_CARGO( + "Cargo perdu", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/a/a0/Shipwreck_screenshot.png/revision/latest/scale-to-width-down/1000?cb=20171219140518", + "shipwreck", + "Recherche une cargaison perdue"), + R_CHASSE( + "Chasse", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/9/96/Reaper%E2%80%99s_Bones.jpg/revision/latest/scale-to-width-down/1000?cb=20200515123039", + "reaper_bones", + "Chasse d'autres bateaux"), + EVT_SKELETONFORT( + "Fort de squelettes", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/2/22/Fortress_Skull.png/revision/latest/scale-to-width-down/250?cb=20180313205902", + "skeleton_fort", + "Fait un fort squelette"), + EVT_FORTOFFORTUNE( + "Fort de fortune", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/3/38/Fof.png/revision/latest/scale-to-width-down/1000?cb=20210421142403", + "fort_fortune", + "Fait un fort de fortune"), + EVT_SKELETONFLEET( + "Flotte de bateaux squelette", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/4/46/SkeletonShipsCloud.png/revision/latest/scale-to-width-down/734?cb=20180902134642", + "skeleton_fleet", + "Fait une flotte de bateaux squelette"), + EVT_GHOSTFLEET( + "Flotte de bateaux fantomes", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/0/0f/Haunted_Shores.png/revision/latest/scale-to-width-down/250?cb=20200617175851", + "ghost_fleet", + "Se combat contre Flameheart"), + EVT_ASHENWINDS( + "Tornade cendrée", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/d/da/Ashen_Lords.jpg/revision/latest/scale-to-width-down/250?cb=20200729133813", + "ashen_lords", + "Se combat contre les Ashen Lords"), + O_SEAFORT( + "Forteresse", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/8/86/Sea_Forts.jpg/revision/latest/scale-to-width-down/250?cb=20220303173328", + "sea_forts", + "Attaque une forteresse marine"), + O_SANCTUARY( + "Sanctuaire", + "https://static.wikia.nocookie.net/seaofthieves_gamepedia/images/6/6f/Siren_Shrines.jpg/revision/latest/scale-to-width-down/250?cb=20210926215921", + "sanctuary", + "Visite un sanctuaire"); + + const SOTRPC_Activity( + this.name, this.image, this.discordKey, this.discordText); + final String name; + final String image; + final String discordKey; + final String discordText; +} diff --git a/sot_companion/lib/modules/discord_rpc/pages/rpc.dart b/sot_companion/lib/modules/discord_rpc/pages/rpc.dart new file mode 100644 index 0000000..a30087c --- /dev/null +++ b/sot_companion/lib/modules/discord_rpc/pages/rpc.dart @@ -0,0 +1,136 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:sot_companion/helper/WindowManager.dart'; +import 'package:sot_companion/modules/discord_rpc/class/sot_activity.dart'; +import 'package:sot_companion/modules/discord_rpc/enums/sot_rpc.dart'; +import 'package:sot_companion/modules/discord_rpc/pages/select_activity_rpc.dart'; +import 'package:sot_companion/modules/discord_rpc/pages/select_ship_rpc.dart'; + +class RPC_Page extends StatefulWidget { + RPC_Page({Key? key}) : super(key: key); + + @override + State createState() => _RPC_PageState(); +} + +class _RPC_PageState extends State { + String status = "MENU"; + Widget body = Container(); + + @override + Widget build(BuildContext context) { + // This method is rerun every time setState is called, for instance as done + // by the _incrementCounter method above. + // + // The Flutter framework has been optimized to make rerunning build methods + // fast, so that you can just rebuild anything that needs updating rather + // than having to individually change instances of widgets. + switch (status) { + case "MENU": + body = _buildMenu(); + break; + case "SELECT_SHIP": + body = SelectShipRPC_Page(); + break; + case "SELECT_ACTIVITY": + //body = _buildSelectActivity(); + break; + default: + } + + return Scaffold(backgroundColor: Colors.transparent, body: body); + } + + Widget _buildMenu() { + SOT_WindowsManager.changeSize(const Size(250, 300)); + return Row(children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "Bateau", + style: TextStyle(fontSize: 20, color: Colors.white), + ), + SizedBox( + height: 20, + ), + InkWell( + child: CircleAvatar( + backgroundColor: Colors.blue, + backgroundImage: (SOTRPC.currentActivity.ship != null) + ? NetworkImage(SOTRPC.currentActivity.ship!.image) + : null), + onTap: () async { + SOTRPC_Ship? shipChoosen = await showModalBottomSheet( + isScrollControlled: true, + backgroundColor: Colors.transparent, + context: context, + builder: (BuildContext context) => SelectShipRPC_Page(), + ) as SOTRPC_Ship; + if (shipChoosen != null) { + SOTRPC.currentActivity.setShip(shipChoosen); + setState(() {}); + } + }), + SizedBox( + height: 10, + ), + Text( + SOTRPC.currentActivity.ship != null + ? SOTRPC.currentActivity.ship!.name + : "Aucun bateau", + style: TextStyle(fontSize: 15, color: Colors.white), + textAlign: TextAlign.center, + ), + ])), + Container( + width: 3, + height: double.maxFinite, + color: Colors.white.withOpacity(0.2)), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "Aventure", + style: TextStyle(fontSize: 20, color: Colors.white), + ), + SizedBox( + height: 20, + ), + InkWell( + child: CircleAvatar( + backgroundColor: Colors.blue, + backgroundImage: (SOTRPC.currentActivity.activity != null) + ? NetworkImage(SOTRPC.currentActivity.activity!.image) + : null), + onTap: () async { + SOTRPC_Activity? activityChoosen = + await showModalBottomSheet( + isScrollControlled: true, + backgroundColor: Colors.transparent, + context: context, + builder: (BuildContext context) => SelectActivityRPC_Page(), + ) as SOTRPC_Activity; + if (activityChoosen != null) { + SOTRPC.currentActivity.setActivity(activityChoosen); + setState(() {}); + } + }), + SizedBox( + height: 10, + ), + Text( + SOTRPC.currentActivity.activity != null + ? SOTRPC.currentActivity.activity!.name + : "Aucune\naventure", + style: TextStyle(fontSize: 15, color: Colors.white), + textAlign: TextAlign.center, + ), + ])), + ]); + } +} diff --git a/sot_companion/lib/modules/discord_rpc/pages/select_activity_rpc.dart b/sot_companion/lib/modules/discord_rpc/pages/select_activity_rpc.dart new file mode 100644 index 0000000..e4d0764 --- /dev/null +++ b/sot_companion/lib/modules/discord_rpc/pages/select_activity_rpc.dart @@ -0,0 +1,87 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:sot_companion/modules/discord_rpc/enums/sot_rpc.dart'; + +class SelectActivityRPC_Page extends StatefulWidget { + SelectActivityRPC_Page({Key? key}) : super(key: key); + + @override + State createState() => _SelectActivityRPC_PageState(); +} + +class _SelectActivityRPC_PageState extends State { + @override + Widget build(BuildContext context) { + return FractionallySizedBox( + heightFactor: 0.8, + child: Container( + color: Colors.blue.withOpacity(0.8), + child: ListView( + children: List.generate( + SOTRPC_ActivityCategory.values.length, + (index) => _buildCategoryWidget( + SOTRPC_ActivityCategory.values[index]))))); + } + + Widget _buildCategoryWidget(SOTRPC_ActivityCategory category) { + return ListTile( + title: Text(category.name, style: TextStyle(color: Colors.white)), + leading: CircleAvatar( + backgroundImage: NetworkImage(category.image), + backgroundColor: Colors.transparent, + ), + onTap: () async { + SOTRPC_Activity? activityChoosen = await showModalBottomSheet( + isScrollControlled: true, + backgroundColor: Colors.transparent, + context: context, + builder: (BuildContext context) => SelectActivityInCategoryRPC_Page(category: category,), + ) as SOTRPC_Activity; + if (SOTRPC_Activity != null) { + Navigator.of(context).pop(activityChoosen); + }else{ + Navigator.of(context).pop(null); + } + }, + ); + } +} + +class SelectActivityInCategoryRPC_Page extends StatefulWidget { + SelectActivityInCategoryRPC_Page({Key? key, required this.category}) + : super(key: key); + + SOTRPC_ActivityCategory category; + @override + State createState() => + _SelectActivityInCategoryRPC_PageState(); +} + +class _SelectActivityInCategoryRPC_PageState + extends State { + @override + Widget build(BuildContext context) { + return FractionallySizedBox( + heightFactor: 0.8, + child: Container( + color: Colors.blue.withOpacity(0.8), + child: ListView( + children: List.generate( + widget.category.activities.length, + (index) => _buildActivityWidget( + widget.category.activities[index]))))); + } + + Widget _buildActivityWidget(SOTRPC_Activity activity) { + return ListTile( + title: Text(activity.name, style: TextStyle(color: Colors.white)), + leading: CircleAvatar( + backgroundImage: NetworkImage(activity.image), + backgroundColor: Colors.transparent, + ), + onTap: () { + Navigator.of(context).pop(activity); + }, + ); + } +} diff --git a/sot_companion/lib/modules/discord_rpc/pages/select_ship_rpc.dart b/sot_companion/lib/modules/discord_rpc/pages/select_ship_rpc.dart new file mode 100644 index 0000000..96829fe --- /dev/null +++ b/sot_companion/lib/modules/discord_rpc/pages/select_ship_rpc.dart @@ -0,0 +1,76 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:sot_companion/modules/discord_rpc/class/sot_activity.dart'; +import 'package:sot_companion/modules/discord_rpc/enums/sot_rpc.dart'; + +class SelectShipRPC_Page extends StatefulWidget { + SelectShipRPC_Page({Key? key}) : super(key: key); + + @override + State createState() => _SelectShipRPC_PageState(); +} + +class _SelectShipRPC_PageState extends State { + @override + Widget build(BuildContext context) { + return FractionallySizedBox( + heightFactor: 0.8, + child: Container( + color: Colors.blue.withOpacity(0.8), + child: Column( + children: List.generate(SOTRPC_Ship.values.length, + (index) => _buildShipWidget(SOTRPC_Ship.values[index]))))); + } + + Widget _buildShipWidget(SOTRPC_Ship ship) { + return ListTile( + title: Text(ship.name, style: TextStyle(color: Colors.white)), + subtitle: Text("${ship.maxCrewSize} joueurs maximum", + style: TextStyle(color: Colors.white)), + leading: CircleAvatar(backgroundImage: NetworkImage(ship.image)), + onTap: () async { + await showModalBottomSheet( + isScrollControlled: true, + backgroundColor: Colors.transparent, + context: context, + builder: (BuildContext context) => + SelectShipCrewSize_Page(ship: ship), + ); + + Navigator.of(context).pop(ship); + }, + ); + } +} + +class SelectShipCrewSize_Page extends StatefulWidget { + SelectShipCrewSize_Page({Key? key, required this.ship}) : super(key: key); + SOTRPC_Ship ship; + @override + State createState() => + _SelectShipCrewSize_PageState(); +} + +class _SelectShipCrewSize_PageState extends State { + @override + Widget build(BuildContext context) { + return FractionallySizedBox( + heightFactor: 0.8, + child: Container( + color: Colors.blue.withOpacity(0.8), + child: ListView( + children: List.generate(widget.ship.maxCrewSize, + (index) => _buildCrewSizeWidget(index + 1))))); + } + + Widget _buildCrewSizeWidget(int num) { + return ListTile( + title: Text("$num pirates", style: TextStyle(color: Colors.white)), + subtitle: Text("Vous êtes $num pirates", + style: TextStyle(color: Colors.white)), + onTap: () { + SOTRPC.currentActivity.crewSize = num; + Navigator.of(context).pop(); + }); + } +} diff --git a/sot_companion/linux/flutter/generated_plugin_registrant.cc b/sot_companion/linux/flutter/generated_plugin_registrant.cc index e466113..b7e6e84 100644 --- a/sot_companion/linux/flutter/generated_plugin_registrant.cc +++ b/sot_companion/linux/flutter/generated_plugin_registrant.cc @@ -6,11 +6,15 @@ #include "generated_plugin_registrant.h" +#include #include #include #include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) dart_discord_rpc_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "DartDiscordRpcPlugin"); + dart_discord_rpc_plugin_register_with_registrar(dart_discord_rpc_registrar); g_autoptr(FlPluginRegistrar) flutter_acrylic_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterAcrylicPlugin"); flutter_acrylic_plugin_register_with_registrar(flutter_acrylic_registrar); diff --git a/sot_companion/linux/flutter/generated_plugins.cmake b/sot_companion/linux/flutter/generated_plugins.cmake index f6c23cd..f9a3c81 100644 --- a/sot_companion/linux/flutter/generated_plugins.cmake +++ b/sot_companion/linux/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + dart_discord_rpc flutter_acrylic screen_retriever window_manager diff --git a/sot_companion/pubspec.lock b/sot_companion/pubspec.lock index 630f791..5bfbef3 100644 --- a/sot_companion/pubspec.lock +++ b/sot_companion/pubspec.lock @@ -50,6 +50,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.5" + dart_discord_rpc: + dependency: "direct main" + description: + name: dart_discord_rpc + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.2" + dart_discord_rpc_ffi: + dependency: transitive + description: + name: dart_discord_rpc_ffi + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.2" fake_async: dependency: transitive description: @@ -57,6 +71,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.3.0" + ffi: + dependency: transitive + description: + name: ffi + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" flutter: dependency: "direct main" description: flutter diff --git a/sot_companion/pubspec.yaml b/sot_companion/pubspec.yaml index 0f23f22..db72173 100644 --- a/sot_companion/pubspec.yaml +++ b/sot_companion/pubspec.yaml @@ -31,6 +31,7 @@ dependencies: sdk: flutter window_manager: ^0.2.5 flutter_acrylic: + dart_discord_rpc: # The following adds the Cupertino Icons font to your application. diff --git a/sot_companion/windows/flutter/generated_plugin_registrant.cc b/sot_companion/windows/flutter/generated_plugin_registrant.cc index 0491059..8325153 100644 --- a/sot_companion/windows/flutter/generated_plugin_registrant.cc +++ b/sot_companion/windows/flutter/generated_plugin_registrant.cc @@ -6,11 +6,14 @@ #include "generated_plugin_registrant.h" +#include #include #include #include void RegisterPlugins(flutter::PluginRegistry* registry) { + DartDiscordRpcPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("DartDiscordRpcPlugin")); FlutterAcrylicPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("FlutterAcrylicPlugin")); ScreenRetrieverPluginRegisterWithRegistrar( diff --git a/sot_companion/windows/flutter/generated_plugins.cmake b/sot_companion/windows/flutter/generated_plugins.cmake index 97dcac8..14335e5 100644 --- a/sot_companion/windows/flutter/generated_plugins.cmake +++ b/sot_companion/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + dart_discord_rpc flutter_acrylic screen_retriever window_manager diff --git a/sot_companion/windows/runner/resources/app_icon.ico b/sot_companion/windows/runner/resources/app_icon.ico index c04e20caf6370ebb9253ad831cc31de4a9c965f6..ea6c5acf7cd5c9c6aab5e28a9426c27c56780a67 100644 GIT binary patch literal 75644 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
  • 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 literal 33772 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