首先来说明一下,我写这个章节本身也是对学习过程的记录,主要参考了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. }

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

  1. {
  2. "Name": "firstMod",
  3. "Author": "iamfine",
  4. "Version": {
  5. "MajorVersion": 1,
  6. "MinorVersion": 0,
  7. "PatchVersion": 0,
  8. "Build": ""
  9. },
  10. "Description": "获取按键消息",
  11. "UniqueID": "iamfine.firstMod",
  12. "EntryDll": "firstMod.dll"
  13. }

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

  

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

  

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

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

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

Stardew Valley(星露谷物语)Mod开发之路 1环境配置的更多相关文章

  1. Stardew Valley(星露谷物语)Mod开发之路 写在前面

    之前迷上了一款新游戏Stardew Valley,这几天发现游戏为插件开发提供了SMAPI编程接口,玩家可以方便的自定义游戏内容(瞬间感觉因缺思厅,额..),其实这几年的游戏许多都有mod机制,商家机 ...

  2. Xamarin Anroid开发教程之验证环境配置是否正确

    Xamarin Anroid开发教程之验证环境配置是否正确 经过前面几节的内容已经把所有的编程环境设置完成了,但是如何才能确定所有的一切都处理争取并且没有任何错误呢?这就需要使用相应的实例来验证,本节 ...

  3. 使用EmBitz开发STM32项目的环境配置

    一.EmBitz软件获取与安装 1.EmBitz软件的获取 EmBitz原名Em::Blocks,是基于Code::Blocks开发的,面向嵌入式的C/C++集成开发环境.支持J-Link和ST-Li ...

  4. PHP开发:Eclipse版环境配置

    软件: 1.eclipse php版本下载地址:http://www.eclipse.org/downloads/packages/eclipse-php-developers/heliosr 2.A ...

  5. 喵的Unity游戏开发之路 - 互动环境(有影响的运动)

    如图片.视频或代码格式等显示异常,请查看原文: https://mp.weixin.qq.com/s/Sv0FOxZCAHHUQPjT8rUeNw 很多童鞋没有系统的Unity3D游戏开发基础,也不知 ...

  6. Dapr微服务应用开发系列1:环境配置

    题记:上篇Dapr系列文章简要介绍了Dapr,这篇来谈一下开发和运行环境配置 本机开发环境配置 安装Docker 为了方便进行Dapr开发,最好(其实不一定必须)首先在本机(开发机器)上安装Docke ...

  7. web全栈开发之网站开发一(Mac环境配置)

    个人第一次写博客,想给大家分享的是PHP+HTML5+MySQL开发一个个人网站所需的部分技术,希望能帮到志同道合和开发者,别人小白高手勿喷就行 先说一下我在制作这个网站之前的配置: 我用的是MacB ...

  8. Android开发快速入门(环境配置、Android Studio安装)

    Android是一种激动人心的开源移动平台,它像手机一样无处不在,得到了Google以及其他一些开放手机联盟成员(如三星.HTC.中国移动.Verizon和AT&T等)的支持,因而不能不加以学 ...

  9. shiro开发,shiro的环境配置(基于spring+springMVC+redis)

    特别感谢lhacker分享的文章,对我帮助很大 http://www.aiuxian.com/article/p-1913280.html 基本的知识就不在这里讲了,在实战中体会shiro的整体设计理 ...

随机推荐

  1. POJ 1741 Tree ——(树分治)

    思路参考于:http://blog.csdn.net/yang_7_46/article/details/9966455,不再赘述. 复杂度:找树的重心然后分治复杂度为logn,每次对距离数组dep排 ...

  2. linux 搜索文件夹下的所有文件内容

    find . -type f -name "*.*" | xargs grep "博客园"

  3. c语言求素数以及改进算法

    代码需要使用c99编译 #include <stdio.h> #include <stdlib.h> #include <math.h> //是否为素数 //从2到 ...

  4. iOS模型输出和打印

    在调试时,我们经常用到输出model,查看数据是否正确,还会在控制台"po 模型"操作,一般输出都是这样的格式的: person is <Person: 0x60800003 ...

  5. git显示不出来图标标志

    git操作的文件夹,发现没有显示出来是否上传的绿色图标,这样导致不清楚哪些文件是否修改,是否上传. 以下方法让我的问题解决了,但我并不知道是不是所有人的问题都适用这种方法,如果你也遇到这种问题,可以尝 ...

  6. OSS上传图片demo

    demo整理来源https://help.aliyun.com/document_detail/32011.html /** * 示例说明 * <p> * HelloOSS是OSS Jav ...

  7. appium的第一个实例

    # !/usr/bin/env python # -*- coding:utf-8 -*- from appium import webdriver import time import unitte ...

  8. 实战keras——用CNN实现cifar10图像分类

    原文:https://blog.csdn.net/zzulp/article/details/76358694 import keras from keras.datasets import cifa ...

  9. Python C/S架构,网络通信相关名词,socket编程

    主要内容: 一.  C/S架构 二. 网络通信的相关名词 三. socket编程 一. C/S架构和B\S架构概述 1. C/S架构: Client/Server(客户端/服务端)架构 描述: C/S ...

  10. 生命周期中mounted和created的区别。

    一.什么是生命周期? 用通俗的语言来说,就是Vue中实例或者组件从创建到消灭中间经过的一系列过程.虽然不太严谨,但是也基本上可以理解. 通过一系列实践,现在把所有遇到的问题整理一遍,今天记录一下cre ...