EaseonCS - Core

EaseonCS - Core

Mod

A client-side core that serves as the shared foundation for all Easeon modules.

Client LibraryTechnologyUtility

32 downloads
0 followers
Follow Save

🌿 Easeon

Minecraft: 1.21.10
Loader: Fabric
Side: Client-Side

Overview

A client-side core that serves as the shared foundation for all Easeon modules, freely available for any mod to reference and use.

Example

Spoiler

Feature Definition

package com.example;

import com.easeon.cs.core.api.EaseonFeatureEnumLike;
import com.easeon.cs.core.config.model.*;

public enum FeatureExample implements EaseonFeatureEnumLike {
    // ✅ Toggle Example: Enable or disable the minimap
    SHOW_MINIMAP("featuredemo.show_minimap",
            new ToggleConfig() {{ Enabled = true; }}),

    // ✅ Slider Example: Adjust screen brightness (1–10)
    SCREEN_BRIGHTNESS("featuredemo.screen_brightness",
            new SliderConfig() {{ Enabled = true; Value = 5; }}, 1, 10) {
        @Override public String getValueFormat() { return "featuredemo.screen_brightness.format"; }
    },

    // ✅ Hotkey Example: Toggle fullscreen with a shortcut
    TOGGLE_FULLSCREEN("featuredemo.toggle_fullscreen",
            new HotkeyConfig() {{ Enabled = true; Key = 70; Mod = 2; }}); // Example: Ctrl + F

    private final String title;
    private final Object defaultConfig;
    private final int min, max;

    FeatureExample(String title, Object defaultConfig) { this(title, defaultConfig, 0, 0); }
    FeatureExample(String title, Object defaultConfig, int min, int max) {
        this.title = title; this.defaultConfig = defaultConfig; this.min = min; this.max = max;
    }

    @Override public String id() { return name(); }
    @Override public String title() { return title; }
    @Override public Object getDefaultConfig() { return defaultConfig; }
    @Override public int getMin() { return min; }
    @Override public int getMax() { return max; }
}

Mod Initialization

package com.example;

import com.easeon.cs.core.EaseonClientCore;
import net.fabricmc.api.ClientModInitializer;

public class TemplateModClient implements ClientModInitializer {
    @Override
    public void onInitializeClient() {
         EaseonClientCore
            .init("feature-demo", "feature.demo.config.json")
                .category("UI", "featuredemo.ui")
                .section("GENERAL", "featuredemo.ui.general")
                    .slider(FeatureExample.SCREEN_BRIGHTNESS)
                .section("CONTROL", "featuredemo.ui.control")
                    .toggle(FeatureExample.SHOW_MINIMAP)
                    .hotkey(FeatureExample.TOGGLE_FULLSCREEN)
            .build();
    }
}

Accessing Config Values

   var config = EaseonClientCore.getSliderConfig(FeatureExample.SCREEN_BRIGHTNESS);
   if (!config.Enabled) return;
   System.out.println(config.value);

Settings Screen Usage

   // Open settings screen directly
   EaseonClientCore.openSettingsScreen();

   // Or manually open the screen returned by getSettingsScreen()
   MinecraftClient.getInstance().setScreen(EaseonClientCore.getSettingsScreen());

en_us.json

{
  "featuredemo.ui": "Feature Demo",
  "featuredemo.ui.general": "General",
  "featuredemo.ui.control": "Control",

  "featuredemo.screen_brightness": "Screen Brightness",
  "featuredemo.screen_brightness.format": "Brightness: %.0f",
  "featuredemo.show_minimap": "Show Minimap",
  "featuredemo.toggle_fullscreen": "Toggle Fullscreen"
}

Preview Image

Replace this with a description




🔗 More Easeon Mods

Looking for more lightweight and practical mods in the same style?
Check out other Easeon series mods here.


Project members

Teron

Member

Details

Licensed ARR
Published 9 days ago
Updated 2 days ago