/CakeLib

A Minecraft data pack development framework.

Primary LanguageC#GNU General Public License v3.0GPL-3.0

CakeLang
Nuget Nuget Last Commit

CakeLib

CakeLang is an open source cross-platform Minecraft data pack development framework. It supports various development languages, tools and plugins and comes packaged with its own CakeLang scripting language!

Start enjoying data pack development now! 🎂🎉

Install

Add CakeLang to your C# .NET Core project by installing the NuGet package from the link below.

Interview with a developer

"What I love about CakeLang is that it simplifies and collects the code base for one or multiple data packs in one place and one project. This makes it super easy to reuse code, make major changes with just a few keystrokes and generate fast and optimized commands.
CakeLang also provides a huge amount of power when I can mix regular C# code and NuGet packages with my data pack source code to let me create anything imaginable!"
- Dotch

Get Started!

Setup

CakeLang is a .NET Core 3.1 NuGet package which supports every platform and every program environment, be it web, software or app development. The only requirement is a .NET Core runtime.

This makes CakeLang the ultimate choice when developing an online IDE for data pack development in Vanilla / CakeLang (or a language based on CakeLang's SDK), an AR app for a new kind of minecraft data pack development 🤯, or simply plain data pack development in any of the languages that CakeLang (or a CakeLang plugin) offers. Yes, you can easily program in different languages like Vanilla, CakeLang (provided with package), or any other language built upon CakeLang's SDK.

Some creamy examples of things that are exceptionally good with CakeLang are: Dynamic data packs, standalone installation programs with customizable UIs for data packs, Plugins to CakeLang or regular data pack development in C #, the benefit of programming in a GPL, ...

Examples

1. Basic Setup

In this example, we have a console program with the CakeLang package installed. The code below creates a new data pack with name, description and associated namespace, and only compiles it into a pack which is directly injected into a Minecraft world.

Source code:

using CakeLang;

namespace CakeLangDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            DataPack demoPack = new DataPack(
                "Demo Pack",
                "A demonstration of CakeLang!",
                "demopack"
            );
            
            // Code ...
            
            demoPack.CompileAndInject("CakeLang Demo");
        }
    }
}