Skip to content

Commit

Permalink
More blocks!
Browse files Browse the repository at this point in the history
* - Refactoring
- Add black, blue, cyan, purple, red, white and yellow chroma blocks
- Rename mod
  • Loading branch information
xzeldon committed Aug 11, 2022
1 parent 52ae854 commit 156a401
Show file tree
Hide file tree
Showing 53 changed files with 506 additions and 141 deletions.
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# Green Screen Mod
# ChromaBlocks

This mod just adds a green block to the miscellaneous tab.
![img](https://i.imgur.com/WmOq3tm.png)
ChromaBlocks is a mod for Minecraft that adds a various chroma key blocks.

# Download
Download last version from [releases](https://github.com/xzeldon/GreenScreenMod/releases).
Download last version from [releases](https://github.com/xzeldon/chromablocks/releases).

# Install
Download and install [Fabric](https://fabricmc.net/use/installer/) then place `.jar` file to the `mods` folder.
> For compability with [Sodium](https://www.curseforge.com/minecraft/mc-mods/sodium) install [Indium](https://www.curseforge.com/minecraft/mc-mods/indium)
> For compability with [Sodium](https://modrinth.com/mod/sodium) install [Indium](https://modrinth.com/mod/indium)
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ org.gradle.jvmargs=-Xmx1G
loader_version=0.14.9

# Mod Properties
mod_version = 1.1.0-1.19.2
maven_group = ru.xzeldon.greenscreenmod
archives_base_name = greenscreenmod
mod_version = 2.0.0-1.19.2
maven_group = ru.xzeldon.chromablocks
archives_base_name = chromablocks

# Dependencies
fabric_version=0.59.0+1.19.2
16 changes: 16 additions & 0 deletions src/main/java/ru/xzeldon/chromablocks/ChromaBlocks.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package ru.xzeldon.chromablocks;

import net.fabricmc.api.ModInitializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.xzeldon.chromablocks.block.ChromaBlocksBlockRegister;

public class ChromaBlocks implements ModInitializer {
public static final String MOD_ID = "chromablocks";
public static final Logger LOGGER = LoggerFactory.getLogger("chromablocks");

@Override
public void onInitialize() {
ChromaBlocksBlockRegister.registerBlocks();
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package ru.xzeldon.greenscreenmod;
package ru.xzeldon.chromablocks;

import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry;
import ru.xzeldon.greenscreenmod.model.GreenScreenModelProvider;
import ru.xzeldon.chromablocks.model.ChromaBlockModelProvider;

public class GreenScreenModClient implements ClientModInitializer {
public class ChromaBlocksClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
ModelLoadingRegistry.INSTANCE.registerResourceProvider(rm -> new GreenScreenModelProvider());
ModelLoadingRegistry.INSTANCE.registerResourceProvider(rm -> new ChromaBlockModelProvider());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
package ru.xzeldon.chromablocks.block;

import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.Block;
import net.minecraft.block.Material;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import ru.xzeldon.chromablocks.ChromaBlocks;
import ru.xzeldon.chromablocks.item.ChromaBlocksItemsGroup;

public class ChromaBlocksBlockRegister {
public static final Block CHROMA_GREEN = registerBlock("chroma_green",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
.luminance(15)
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_GREEN_DIM = registerBlock("chroma_green_dim",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_BLACK = registerBlock("chroma_black",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
.luminance(15)
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_BLACK_DIM = registerBlock("chroma_black_dim",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_BLUE = registerBlock("chroma_blue",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
.luminance(15)
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_BLUE_DIM = registerBlock("chroma_blue_dim",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_CYAN = registerBlock("chroma_cyan",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
.luminance(15)
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_CYAN_DIM = registerBlock("chroma_cyan_dim",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_PURPLE = registerBlock("chroma_purple",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
.luminance(15)
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_PURPLE_DIM = registerBlock("chroma_purple_dim",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_RED = registerBlock("chroma_red",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
.luminance(15)
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_RED_DIM = registerBlock("chroma_red_dim",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_WHITE = registerBlock("chroma_white",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
.luminance(15)
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_WHITE_DIM = registerBlock("chroma_white_dim",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_YELLOW = registerBlock("chroma_yellow",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
.luminance(15)
), ChromaBlocksItemsGroup.GREENSCREEN);

public static final Block CHROMA_YELLOW_DIM = registerBlock("chroma_yellow_dim",
new Block(FabricBlockSettings.of(Material.METAL)
.breakInstantly()
), ChromaBlocksItemsGroup.GREENSCREEN);

private static Block registerBlock(String name, Block block, ItemGroup group) {
registerBlockItem(name, block, group);
return Registry.register(Registry.BLOCK, new Identifier(ChromaBlocks.MOD_ID, name), block);
}

private static Item registerBlockItem(String name, Block block, ItemGroup group) {
return Registry.register(Registry.ITEM, new Identifier(ChromaBlocks.MOD_ID, name),
new BlockItem(block, new FabricItemSettings().group(group)));
}

public static void registerBlocks() {
ChromaBlocks.LOGGER.info("Registering ModBlocks for " + ChromaBlocks.MOD_ID);
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package ru.xzeldon.greenscreenmod.block.custom;
package ru.xzeldon.chromablocks.block.custom;

import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Material;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.BlockView;

public class GreenScreenBlock extends Block {
public GreenScreenBlock(Settings settings) {
public class ChromaBlock extends Block {
public ChromaBlock(Settings settings) {
super(settings);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package ru.xzeldon.chromablocks.block.custom;

public class ChromaBlockDim extends ChromaBlock {
public ChromaBlockDim(Settings settings) {
super(settings);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package ru.xzeldon.chromablocks.item;

import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import ru.xzeldon.chromablocks.ChromaBlocks;
import ru.xzeldon.chromablocks.block.ChromaBlocksBlockRegister;

public class ChromaBlocksItemsGroup {
public static final ItemGroup GREENSCREEN = FabricItemGroupBuilder.build(new Identifier(ChromaBlocks.MOD_ID, "chroma_blocks"),
()-> new ItemStack(ChromaBlocksBlockRegister.CHROMA_GREEN));
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.xzeldon.greenscreenmod.model;
package ru.xzeldon.chromablocks.model;

import com.mojang.datafixers.util.Pair;
import net.fabricmc.fabric.api.renderer.v1.Renderer;
Expand All @@ -25,19 +25,24 @@
import net.minecraft.util.math.random.Random;
import net.minecraft.world.BlockRenderView;
import org.jetbrains.annotations.Nullable;
import ru.xzeldon.chromablocks.ChromaBlocks;

import java.util.*;
import java.util.function.Function;
import java.util.function.Supplier;

public class GreenScreenBlockModel implements UnbakedModel, BakedModel, FabricBakedModel {
private static final SpriteIdentifier SPRITE_ID = new SpriteIdentifier(SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE, new Identifier("greenscreenmod:block/green_screen_block"));
public class ChromaBlockModel implements UnbakedModel, BakedModel, FabricBakedModel {
protected final SpriteIdentifier SPRITE_ID;
private static final Identifier DEFAULT_BLOCK_MODEL = new Identifier("minecraft:block/block");
private final Sprite[] SPRITES = new Sprite[1];
private static final Renderer renderer = RendererAccess.INSTANCE.getRenderer();
private ModelTransformation transformation;
private Mesh mesh;

public ChromaBlockModel(String color) {
this.SPRITE_ID = new SpriteIdentifier(SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE, new Identifier(ChromaBlocks.MOD_ID + ":block/" + color));
}

@Override
public boolean isVanillaAdapter() {
return false;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
package ru.xzeldon.chromablocks.model;

import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.model.ModelProviderContext;
import net.fabricmc.fabric.api.client.model.ModelProviderException;
import net.fabricmc.fabric.api.client.model.ModelResourceProvider;
import net.minecraft.client.render.model.UnbakedModel;
import net.minecraft.util.Identifier;
import org.jetbrains.annotations.Nullable;
import ru.xzeldon.chromablocks.ChromaBlocks;
import ru.xzeldon.chromablocks.model.custom.*;

@Environment(EnvType.CLIENT)
public class ChromaBlockModelProvider implements ModelResourceProvider {
public static final Identifier CHROMA_MODEL_GREEN = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_green");
public static final Identifier CHROMA_MODEL_GREEN_DIM = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_green_dim");
public static final Identifier CHROMA_MODEL_GREEN_ITEM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_green");
public static final Identifier CHROMA_MODEL_GREEN_ITEM_DIM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_green_dim");

public static final Identifier CHROMA_MODEL_BLACK = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_black");
public static final Identifier CHROMA_MODEL_BLACK_DIM = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_black_dim");
public static final Identifier CHROMA_MODEL_BLACK_ITEM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_black");
public static final Identifier CHROMA_MODEL_BLACK_ITEM_DIM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_black_dim");

public static final Identifier CHROMA_MODEL_BLUE = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_blue");
public static final Identifier CHROMA_MODEL_BLUE_DIM = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_blue_dim");
public static final Identifier CHROMA_MODEL_BLUE_ITEM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_blue");
public static final Identifier CHROMA_MODEL_BLUE_ITEM_DIM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_blue_dim");

public static final Identifier CHROMA_MODEL_CYAN = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_cyan");
public static final Identifier CHROMA_MODEL_CYAN_DIM = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_cyan_dim");
public static final Identifier CHROMA_MODEL_CYAN_ITEM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_cyan");
public static final Identifier CHROMA_MODEL_CYAN_ITEM_DIM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_cyan_dim");

public static final Identifier CHROMA_MODEL_PURPLE = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_purple");
public static final Identifier CHROMA_MODEL_PURPLE_DIM = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_purple_dim");
public static final Identifier CHROMA_MODEL_PURPLE_ITEM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_purple");
public static final Identifier CHROMA_MODEL_PURPLE_ITEM_DIM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_purple_dim");

public static final Identifier CHROMA_MODEL_RED = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_red");
public static final Identifier CHROMA_MODEL_RED_DIM = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_red_dim");
public static final Identifier CHROMA_MODEL_RED_ITEM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_red");
public static final Identifier CHROMA_MODEL_RED_ITEM_DIM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_red_dim");

public static final Identifier CHROMA_MODEL_WHITE = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_white");
public static final Identifier CHROMA_MODEL_WHITE_DIM = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_white_dim");
public static final Identifier CHROMA_MODEL_WHITE_ITEM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_white");
public static final Identifier CHROMA_MODEL_WHITE_ITEM_DIM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_white_dim");

public static final Identifier CHROMA_MODEL_YELLOW = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_yellow");
public static final Identifier CHROMA_MODEL_YELLOW_DIM = new Identifier(ChromaBlocks.MOD_ID + ":block/chroma_yellow_dim");
public static final Identifier CHROMA_MODEL_YELLOW_ITEM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_yellow");
public static final Identifier CHROMA_MODEL_YELLOW_ITEM_DIM = new Identifier(ChromaBlocks.MOD_ID + ":item/chroma_yellow_dim");


@Override
public @Nullable UnbakedModel loadModelResource(Identifier resourceId, ModelProviderContext context) throws ModelProviderException {
if (
resourceId.equals(CHROMA_MODEL_GREEN) ||
resourceId.equals(CHROMA_MODEL_GREEN_DIM) ||
resourceId.equals(CHROMA_MODEL_GREEN_ITEM) ||
resourceId.equals(CHROMA_MODEL_GREEN_ITEM_DIM)
) {
return new GreenChromaBlockModel();
} else if (
resourceId.equals(CHROMA_MODEL_BLACK) ||
resourceId.equals(CHROMA_MODEL_BLACK_DIM) ||
resourceId.equals(CHROMA_MODEL_BLACK_ITEM) ||
resourceId.equals(CHROMA_MODEL_BLACK_ITEM_DIM)
) {
return new BlackChromaBlockModel();
} else if (
resourceId.equals(CHROMA_MODEL_BLUE) ||
resourceId.equals(CHROMA_MODEL_BLUE_DIM) ||
resourceId.equals(CHROMA_MODEL_BLUE_ITEM) ||
resourceId.equals(CHROMA_MODEL_BLUE_ITEM_DIM)
) {
return new BlueChromaBlockModel();
} else if (
resourceId.equals(CHROMA_MODEL_CYAN) ||
resourceId.equals(CHROMA_MODEL_CYAN_DIM) ||
resourceId.equals(CHROMA_MODEL_CYAN_ITEM) ||
resourceId.equals(CHROMA_MODEL_CYAN_ITEM_DIM)
) {
return new CyanChromaBlockModel();
} else if (
resourceId.equals(CHROMA_MODEL_PURPLE) ||
resourceId.equals(CHROMA_MODEL_PURPLE_DIM) ||
resourceId.equals(CHROMA_MODEL_PURPLE_ITEM) ||
resourceId.equals(CHROMA_MODEL_PURPLE_ITEM_DIM)
) {
return new PurpleChromaBlockModel();
} else if (
resourceId.equals(CHROMA_MODEL_RED) ||
resourceId.equals(CHROMA_MODEL_RED_DIM) ||
resourceId.equals(CHROMA_MODEL_RED_ITEM) ||
resourceId.equals(CHROMA_MODEL_RED_ITEM_DIM)
) {
return new RedChromaBlockModel();
} else if (
resourceId.equals(CHROMA_MODEL_WHITE) ||
resourceId.equals(CHROMA_MODEL_WHITE_DIM) ||
resourceId.equals(CHROMA_MODEL_WHITE_ITEM) ||
resourceId.equals(CHROMA_MODEL_WHITE_ITEM_DIM)
) {
return new WhiteChromaBlockModel();
} else if (
resourceId.equals(CHROMA_MODEL_YELLOW) ||
resourceId.equals(CHROMA_MODEL_YELLOW_DIM) ||
resourceId.equals(CHROMA_MODEL_YELLOW_ITEM) ||
resourceId.equals(CHROMA_MODEL_YELLOW_ITEM_DIM)
) {
return new YellowChromaBlockModel();
} else {
return null;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package ru.xzeldon.chromablocks.model.custom;

import ru.xzeldon.chromablocks.model.ChromaBlockModel;

public class BlackChromaBlockModel extends ChromaBlockModel {
public BlackChromaBlockModel() {
super("black");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package ru.xzeldon.chromablocks.model.custom;

import ru.xzeldon.chromablocks.model.ChromaBlockModel;

public class BlueChromaBlockModel extends ChromaBlockModel {
public BlueChromaBlockModel() {
super("blue");
}
}
Loading

0 comments on commit 156a401

Please sign in to comment.