当前位置: 首页 > news >正文

Stardew Valley(星露谷物语)Mod开发之路 1环境配置

首先来说明一下,我写这个章节本身也是对学习过程的记录,主要参考了http://canimod.com/guides/creating-a-smapi-mod中的内容。也推荐大家看看。

*这些是我的开发环境*

  操作系统:

    macOS

  SDK:

       1 MonoFramework-MDK-4.6.2.16.macos10.xamarin.universal.pkg (貌似是.net平台)

     2 XamarinStudio-6.1.2.44.dmg (这个应该是IDE)

  ps:具体的版本依照实际的操作系统来定,或者安装vs。同时你也可以向上面那个英文教程学习~ 

*正式*

  然而在正式配置环境之前,是的,你得保证游戏正常运行。然后依次安装上面两个软件(我相信这是一个很容易的过程,谢谢)。

*创建一个项目*

  &恩,详细过程我还是直接借用过来翻译一下算了~

 

  1. 打开 Visual Studio 或者 MonoDevelop.
  2. 创建一个新的 solution with a library project.
    • 在 Visual Studio中, 选择 Visual C# » Class Library. (确保你选择的是 “Class Library”, 而不是 “Class Library (.NET Core)” 或者 “Class Library (Portable)”.)
    • 在 MonoDevelop中, 选择 Other » .NET » Library.
  3. 改变 the target framework to .NET 4.5 (for compatibility with Linux).
    • 在 Visual Studio中: 右键 project, 选择 Properties, 单击Application 标签, 并且将 Target framework dropdown 选成 .NET Framework 4.5.
    • 在 MonoDevelop中: 右键 project, 选择 Options, 单击 the Build » General 标签, 并且将Target framework dropdown 选成 Mono / .NET 4.5.
  4. 删除项目中的 Class1.cs 或者 MyClass.cs 文件.

  ps:按照上面步骤,我这里新建了一个solution和project名称都为firstMod的项目。需要注意后面的一些配置信息要与这里对应

 

*配置项目*

  项目需要引用这个包 Pathoschild.Stardew.ModBuildConfig NuGet package. 它能够自动配置你的项目,针对当前的平台,正确加载合适的依赖库。

  1.双击下图画圈的部分

  

  2.弹出了如下界面,然后在搜索框中“Pathoschild.Stardew.ModBuildConfig”,安装并等待完成。

  

      3.添加一个cs文件,名称 “ModEntry”

  

  4.将如下内容复制进ModEntry.cs

 1 using System;
 2 using Microsoft.Xna.Framework;
 3 using StardewModdingAPI;
 4 using StardewModdingAPI.Events;
 5 using StardewValley;
 6 
 7 namespace firstMod
 8 {
 9     /// <summary>The mod entry point.</summary>
10     public class ModEntry : Mod
11     {
12         /// <summary>Initialise the mod.</summary>
13         /// <param name="helper">Provides methods for interacting with the mod directory, such as read/writing a config file or custom JSON files.</param>
14         public override void Entry(IModHelper helper)
15         {
16             ControlEvents.KeyPressed += this.ReceiveKeyPress;
17         }
18 
19         /*********
20         ** Private methods
21         *********/
22         /// <summary>The method invoked when the player presses a keyboard button.</summary>
23         /// <param name="sender">The event sender.</param>
24         /// <param name="e">The event data.</param>
25         private void ReceiveKeyPress(object sender, EventArgsKeyPressed e)
26         {
27             this.Monitor.Log($"Player pressed {e.KeyPressed}.");
28         }
29     }
30 }
View Code

   5.创建manifest.json文件,内容如下,存放至工程目录下,其实位置无所谓,主要是最终应该放在游戏mod的目录下

{
   "Name": "firstMod",
   "Author": "iamfine",
   "Version": {
      "MajorVersion": 1,
      "MinorVersion": 0,
      "PatchVersion": 0,
      "Build": ""
   },
   "Description": "获取按键消息",
   "UniqueID": "iamfine.firstMod",
   "EntryDll": "firstMod.dll" 
}

  6.编译整个工程后得到如下文件

  

  7.将firstMod.dll 和 manifest.json两个文件复制到游戏的Mods目录下,如下图所示。

  

   ps:安装smapi后,在macOS下,mod的目录是

/Users/huqian/Library/Application Support/Steam/steamapps/common/Stardew Valley/Contents/MacOS/Mods

 

  8.运行游戏后,这个mod会记录玩家在游戏界面中的按键信息,如下图。

 

转载于:https://www.cnblogs.com/Dream-Chaser/p/6377946.html

相关文章:

  • 充分发挥行销效力的九个技巧
  • 远行
  • JavaScript数据类型
  • 关于许多人一直关注该怎么唱好高音的问题...
  • thinkphp-删除delete函数
  • escape()、encodeURI()、encodeURIComponent()区别详解
  • Apache(httpd) 报错You don't have permission to access /on this server.
  • 项目开发流程规范文档
  • 存储过程3. 参数的引入
  • UML概况
  • 引入类别解决所有键盘遮挡输入框的问题(iOS Object-C)
  • 对付CC攻击不必动用防火墙df
  • [原创]Fluent NHibernate之旅
  • httpclient Accept-Encoding 乱码
  • 爱人?亲人?
  • 时间复杂度分析经典问题——最大子序列和
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Docker 笔记(2):Dockerfile
  • express如何解决request entity too large问题
  • JavaScript设计模式之工厂模式
  • js 实现textarea输入字数提示
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • log4j2输出到kafka
  • SpiderData 2019年2月23日 DApp数据排行榜
  • vue自定义指令实现v-tap插件
  • 爱情 北京女病人
  • 初探 Vue 生命周期和钩子函数
  • 关于for循环的简单归纳
  • 技术发展面试
  • 力扣(LeetCode)21
  • - 转 Ext2.0 form使用实例
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #AngularJS#$sce.trustAsResourceUrl
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #在 README.md 中生成项目目录结构
  • (6)添加vue-cookie
  • (二)hibernate配置管理
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (一) springboot详细介绍
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)【Hibernate总结系列】使用举例
  • (转)我也是一只IT小小鸟
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .java 9 找不到符号_java找不到符号
  • .mysql secret在哪_MySQL如何使用索引
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET 设计一套高性能的弱事件机制