Giter Club home page Giter Club logo

curios's Introduction

Curios API License: LGPL v3

Overview

Curios is a flexible and expandable accessory/equipment API for users and developers. The purpose is to provide functionality for developers to add extra accessory/equipment slots in a convenient and compatible manner, as well as to give users the ability to configure these slots to their preferences. By default, Curios does not add any content except for an inventory GUI. There are no slots and only two items, the latter only being available through the Creative menu and primarily serving as examples for developers to use when coding their own integration.

Features

  • Expandable equipment slots through a central library. New equipment slots can be made and managed easily through an identifier registry. Identical identifiers will be merged together to avoid functional redundancies and provide maximum compatibility to potential items, while unique identifiers can still be used to mark special types when appropriate.
  • Slots are only made on-demand. There are no slots included by default, all slots are created only as needed. This reduces instances where one or more superfluous slots are present without any suitable items to go into the slot.
  • Slots are completely customizable and manipulable. Slots can have custom backgrounds, different sizes, and can even be disabled or hidden by default. But how would a player even access disabled slots? Through the API, developers can access functions to enable/disable a player's slots or add/remove a certain number of slots of a given type.
  • Flexible item->curio relations using the vanilla tag system. Potential curios are selected through the vanilla tag system, which means that categorizing items into curio types is as easy as creating a .json file in the data/curios/tags folder. Items can be categorized into as many curio types as you want as long as they're tagged in the appropriate files, and these settings can even be overridden entirely. For more information, see the vanilla tag system.
  • Complete integration with other inventory mechanics. Mending and Curses will work with all applicable items equipped in the curio slots. There are also various minor features for developers that make it simpler to integrate their current items or mechanics into the curio system.
  • Accessible from a single GUI. Curios comes with its own GUI accessible from the inventory that shows all of the available slots to a player. This allows players to see all of the extended equipment slots in a central location without needing to access different inventory GUIs. However, developers can still provide their own GUIs for their mod-specific slots if they want. The default keybinding for the GUI is 'g'.

Documentation

Adding to Your Project:

Add the following to your build.gradle file:

repositories {
    maven {
        url = "https://maven.theillusivec4.top/"
    }
}

dependencies {
    runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:${version}")
    compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:${version}:api")
}

Replace ${version} with the version of Curios that you want to use.

Using Curios 1.18.1-5.0.4.0+

Curios 1.18.1-5.0.4.0+ added mixins and developers will need to make sure to tweak their run configurations in order to launch the game in their development environment if using this version or newer as a dependency.

1. Add these lines to your run configurations

Add both of these lines to both the client {} and server {} run configuration blocks in the build.gradle. These can be placed anywhere within each run configuration, the order does not matter.

property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"

2. Regenerate your run configurations

Run the Gradle task genIntellijRuns, genEclipseRuns, or genVSCodeRuns depending on the chosen IDE.

curios's People

Contributors

theillusivec4 avatar aizistral avatar itsthebdoge avatar mindy15963 avatar enterfor avatar greg-21 avatar blackshadow77 avatar bookercatch avatar franndzs avatar lykrast avatar mikeliro avatar pixvoxel avatar altegar avatar darkhax avatar wvam avatar ochotonida avatar qsefthuopq avatar othuntgithub avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.