#bindings #classi-cube #classicube

sys no-std classicube-sys

ClassiCube 的 Rust C 绑定

4 个稳定版本

3.0.4+classicube.1.3.62024年7月4日
3.0.3+classicube.1.3.62024年6月28日
3.0.2+classicube.1.3.62024年2月8日
3.0.1 2024年2月7日

555开发工具 中排名

Download history 5/week @ 2024-04-14 18/week @ 2024-04-21 65/week @ 2024-04-28 49/week @ 2024-05-05 31/week @ 2024-05-19 95/week @ 2024-05-26 15/week @ 2024-06-02 21/week @ 2024-06-09 29/week @ 2024-06-16 279/week @ 2024-06-23 771/week @ 2024-06-30 128/week @ 2024-07-07 63/week @ 2024-07-14 114/week @ 2024-07-21 76/week @ 2024-07-28

每月下载量 522

MIT 许可证

6MB
107K SLoC

C 99K SLoC // 0.1% comments Rust 2.5K SLoC // 0.0% comments Objective-C 1.5K SLoC // 0.2% comments JavaScript 1K SLoC // 0.1% comments Java 827 SLoC // 0.2% comments C++ 598 SLoC // 0.1% comments Visual Studio Project 561 SLoC Shell 291 SLoC // 0.2% comments ReScript 84 SLoC Python 78 SLoC // 0.1% comments C# 74 SLoC Batch 66 SLoC Visual Studio Solution 43 SLoC

包含 (JAR 文件,50KB) gradle-wrapper.jar

classicube-sys

Rust 对 ClassiCube 的绑定

文档

示例

将以下内容添加到 Cargo.toml

[lib]
crate-type = ["cdylib"]

[dependencies]
classicube-sys = { git = "https://github.com/SpiralP/rust-classicube-sys.git" }

lib.rs:

use classicube_sys::*;
use std::{os::raw::c_int, ptr};

extern "C" fn init() {
    let owned_string = OwnedString::new("hello from rust!");
    unsafe {
        Chat_Add(owned_string.as_cc_string());
    }
}

#[no_mangle]
pub static Plugin_ApiVersion: c_int = 1;

#[no_mangle]
pub static mut Plugin_Component: IGameComponent = IGameComponent {
    // Called when the game is being loaded.
    Init: Some(init),
    // Called when the component is being freed. (e.g. due to game being closed)
    Free: None,
    // Called to reset the component's state. (e.g. reconnecting to server)
    Reset: None,
    // Called to update the component's state when the user begins loading a new map.
    OnNewMap: None,
    // Called to update the component's state when the user has finished loading a new map.
    OnNewMapLoaded: None,
    // Next component in linked list of components.
    next: ptr::null_mut(),
};

.dll/.so/.dylibtarget/{debug,release}/ 复制到你的 ClassiCube 可执行文件所在的 plugins 文件夹

参考资料

示例库使用

ClassiCube 源代码

ClassiCube 插件帮助

ClassiCube 插件示例

依赖项