1个不稳定发布

0.1.0-alpha.12024年3月1日

#1152 in 游戏开发

MPL-2.0 许可证

215KB
4.5K SLoC

Rust的X-Plane插件API

Crates.io Version Documentation License

目的

xplane.rs 为所有X-Plane支持的平台的Rust编程语言提供了一种便捷的接口,用于X-Plane插件开发。这些接口应该 大部分 是安全的。

本项目旨在支持任何64位版本的X-Plane,只要使用正确的特性门控。测试是在XPLM400和X-Plane 12上进行的,但将努力保持与XPLM210的基础API兼容性。如果发现兼容性回归,请向列表发送电子邮件。

大部分开发都在develop分支上完成,而trunk分支在发布时保持稳定。

状态

这个库正在进行全面重写以强制执行线程不变性。不要使用当前状态。以下是组件清单

  • 编译并可以从X-Plane中调用(状态未知,将进行测试。)
  • 调试日志输出到控制台/日志文件
  • DataRef的读取和写入
  • 命令
  • GUI
  • 绘图

示例

更多示例可以在examples/目录中找到。

然而,这个小的片段是使您的插件编译所需的最小模板。

use xplane::plugin::{Plugin, PluginInfo};
use xplane::{debugln, xplane_plugin};

struct MinimalPlugin;

impl Plugin for MinimalPlugin {
    type Error = std::convert::Infallible;

    fn start() -> Result<Self, Self::Error> {
        // The following message should be visible in the developer console and the Log.txt file
        debugln!("Hello, World! From the Minimal Rust Plugin");
        Ok(MinimalPlugin)
    }

    fn info(&self) -> PluginInfo {
        PluginInfo {
            name: String::from("Minimal Rust Plugin"),
            signature: String::from("org.samcrow.xplm.examples.minimal"),
            description: String::from("A plugin written in Rust"),
        }
    }
}

xplane_plugin!(MinimalPlugin);

免责声明

本项目当前维护者是一位坚定的支持乌克兰对抗俄罗斯、反对一切人权侵犯的跨性别女同性恋者。

如果您

  • 不坚定地支持LGBTQ+人群,包括跨性别个体。
  • 认为LGBTQ+人群“不应该公开展示”
  • 支持“放弃T”,TERF或类似运动。
  • 认为恋童癖包含在LGBTQ+中,要么是因为您想让它包含,要么是因为您认为该社区接受它。它不接受。
  • 拒绝使用人们偏好的名字、代词和性别标签。
  • 不支持乌克兰反抗其俄罗斯压迫者。
  • 支持任何极右翼政党或政治家(包括弗拉基米尔·普京、共和党、AfD、FdI和类似人士)

我无法阻止您,但如果有人被发现符合上述标准并与项目互动,将被阻止进一步互动。

许可证

本软件受Mozilla公共许可证(Mozilla Public License, version 2.0)许可。任何在提交 ba89d4234c5b4d7088a40b2bb8f537f72e1e2df3 之前的代码,均可根据您的选择,同时受Apache许可证和MIT许可证的许可。

这对您意味着什么?

我明白了,您没有时间阅读许可证。以下是一些关于此许可证对您意味着什么的要点。

  • 您可以将此库与其他不同许可证的工作结合使用,只要此库的文件保持独立。
    • 此库的代码,在MPL-2.0许可证(或兼容)下,必须对用户易于获取。
    • 大型工作的接收者必须了解该库的使用、其许可证以及如何获取此库的代码。
  • 对此库文件的任何修改都必须在MPL-2.0下发布。
  • 只要明确表明这是您个人的行为,而非贡献者的行为,您就可以将此库用于商业用途。

这还有一些细微差别,但这些要点概括了主要内容。

贡献

除非您明确说明,否则您提交的任何有意包含在作品中的贡献将按照上述方式许可,不附加任何额外条款或条件。

所有提交都必须签署(使用命令git commit -s)。这是您已阅读并同意开发者证书起源(Developer Certificate of Origin, DCO)条款的声明。这可以与CLA(贡献者许可协议)相提并论,但不同之处在于您的版权仍归您所有。您所做的只是证明您可以在存储库的许可证下贡献代码。DCO文本的副本保存在此存储库的DCO.txt中。

您可以使用您偏好的姓名签署DCO,只要它相对一致,这样我们就可以跟踪每个人的身份。

最低支持的Rust版本

此crate的MSRV始终是给定提交时的最新稳定编译器版本。也许它可以在较旧版本上运行。也许不行。没有保证。

一旦发布稳定版本,这可能会发生变化。

依赖项

~1.8–4MB
~80K SLoC