GemBlocks 1.0.1
See the version list below for details.
dotnet add package GemBlocks --version 1.0.1
NuGet\Install-Package GemBlocks -Version 1.0.1
<PackageReference Include="GemBlocks" Version="1.0.1" />
paket add GemBlocks --version 1.0.1
#r "nuget: GemBlocks, 1.0.1"
// Install GemBlocks as a Cake Addin #addin nuget:?package=GemBlocks&version=1.0.1 // Install GemBlocks as a Cake Tool #tool nuget:?package=GemBlocks&version=1.0.1
A C# library for easy generation of Minecraft worlds
GemBlocks aims to provide a simple library for custom map generation. In order to use this library it is not necessary to deal with things like regions, chunks and block data. However it aims to implement all map features that Minecraft offers.
This library was forked from MorbZ/J2Blocks and converted to C# for use of .NET Minecraft implementations (Clients, World Editors, Servers, etc.)
Any assistance is welcomed! Please do a pull request if you see something that needs changed. Also changed was the naming conventions. Java conventions don't look right in C#! 😄 [→ GemBlocks Documentation] COMING SOON!
Example (TO BE UPDATED WITH REDONE C# CODE)
In this example we want to create a Minecraft world that is paved with melon-blocks. We want to create a huge structure of glass and want to set door on top of it. From the Example.java:
// Create the base layers of the generated world.
// We set the bottom layer of the world to be bedrock and the 20 layers above to be melon
// blocks.
DefaultLayers layers = new DefaultLayers();
layers.SetLayer(0, BlockRegistry.Bedrock);
layers.SetLayers(1, 20, BlockRegistry.MelonBlock);
// Create the internal Minecraft world generator.
// We use a flat generator. We do this to make sure that the whole world will be paved
// with melons and not just the part we generated.
IGenerator generator = new FlatGenerator(layers);
// Create the level configuration.
// We set the mode to creative creative mode and name our world. We also set the spawn point
// in the middle of our glass structure.
Level level = new Level("MelonWorld", generator);
level.SetGameType(GameType.CREATIVE);
level.SetSpawnPoint(50, 0, 50);
// Now we create the world. This is where we can set our own blocks.
World world = new World(level, layers);
// Create a huge structure of glass that has an area of 100x100 blocks and is 50 blocks
// height. On top of the glass structure we put a layer of grass.
for(int x = 0; x < 100; x++) {
for(int z = 0; z < 100; z++) {
// Set glass
for(int y = 0; y < 50; y++) {
world.SetBlock(x, y, z, SimpleBlock.GLASS);
}
// Set grass
world.SetBlock(x, 50, z, SimpleBlock.GRASS);
}
}
// Now we create the door. It consists of 2 blocks, that's why we can't use a SimpleBlock
// here.
world.SetBlock(50, 51, 50, DoorBlock.MakeLower(DoorMaterial.OAK, Facing4State.EAST, false));
world.setBlock(50, 52, 50, DoorBlock.makeUpper(DoorMaterial.OAK, HingeSide.LEFT));
// Everything's set up so we're going to save the world.
world.save();
The world has been saved to the /world/ directory in our execution directory. We can move it to the Minecraft /saves/ directory and enjoy all the melons.
Known Issues
(https://github.com/MorbZ/J2Blocks/blob/master/src/net/morbz/minecraft/blocks/Material.java) the blocks that have a check mark
Feel free to help and fix the issues by submitting a pull request.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- fNbt (>= 0.6.4)
- SharpZipLib (>= 1.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.