add transparent blocks

This commit is contained in:
2023-07-02 18:59:13 +02:00
parent 2b6db5fabd
commit 0039e70591
8 changed files with 127 additions and 21 deletions

View File

@@ -78,6 +78,8 @@ public class BlockResourceLoader extends GenericManualResourceLoader<Pair<Block,
if (burnChance != -1 && spreadChance != -1) {
FlammableBlockRegistry.getDefaultInstance().add(resB, spreadChance, burnChance);
}
SimpleCreatorMod.BLOCKS_RENDER_LAYER.add(new Pair<>(resB, bspj.renderLayer));
return new Pair<>(resB, resI);
}

View File

@@ -29,5 +29,6 @@ public class BlockSettingsPojo {
public boolean noBlockBreakParticles = false;
public boolean requiresTool = false;
public boolean breaksInstantly = false;
String mapColor = "stone";
public String renderLayer = "solid";
public String mapColor = "stone";
}

View File

@@ -1,12 +1,18 @@
package quimufu.simple_creator;
import net.fabricmc.api.ModInitializer;
import net.minecraft.block.Block;
import net.minecraft.util.Pair;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.ArrayList;
import java.util.List;
public class SimpleCreatorMod implements ModInitializer {
public static List<Pair<Block, String>> BLOCKS_RENDER_LAYER = new ArrayList<>();
public static Logger LOGGER = LogManager.getLogger();
public static ItemResourceLoader irl = new ItemResourceLoader();
public static BlockResourceLoader brl = new BlockResourceLoader();

View File

@@ -0,0 +1,88 @@
package quimufu.simple_creator;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
import net.minecraft.block.Block;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.util.Pair;
import org.apache.logging.log4j.Level;
@Environment(EnvType.CLIENT)
public class SimpleCreatorModClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
for (Pair<Block, String> blockRenderLayerPair : SimpleCreatorMod.BLOCKS_RENDER_LAYER) {
BlockRenderLayerMap.INSTANCE.putBlock(blockRenderLayerPair.getLeft(), getRenderLayer(blockRenderLayerPair.getRight()));
}
}
private net.minecraft.client.render.RenderLayer getRenderLayer(String renderLayer) {
switch (renderLayer.toUpperCase()){
case "SOLID":
return RenderLayer.getSolid();
case "CUTOUT_MIPPED":
return RenderLayer.getCutoutMipped();
case "CUTOUT":
return RenderLayer.getCutout();
case "TRANSLUCENT":
return RenderLayer.getTranslucent();
case "TRANSLUCENT_MOVING_BLOCK":
return RenderLayer.getTranslucentMovingBlock();
case "TRANSLUCENT_NO_CRUMBLING":
return RenderLayer.getTranslucentNoCrumbling();
case "LEASH":
return RenderLayer.getLeash();
case "WATER_MASK":
return RenderLayer.getWaterMask();
case "ARMOR_GLINT":
return RenderLayer.getArmorGlint();
case "ARMOR_ENTITY_GLINT":
return RenderLayer.getArmorEntityGlint();
case "GLINT_TRANSLUCENT":
return RenderLayer.getGlintTranslucent();
case "GLINT":
return RenderLayer.getGlint();
case "DIRECT_GLINT":
return RenderLayer.getDirectGlint();
case "ENTITY_GLINT":
return RenderLayer.getEntityGlint();
case "DIRECT_ENTITY_GLINT":
return RenderLayer.getDirectEntityGlint();
case "TEXT_BACKGROUND":
return RenderLayer.getTextBackground();
case "TEXT_BACKGROUND_SEE_THROUGH":
return RenderLayer.getTextBackgroundSeeThrough();
case "LIGHTNING":
return RenderLayer.getLightning();
case "TRIPWIRE":
return RenderLayer.getTripwire();
case "END_PORTAL":
return RenderLayer.getEndPortal();
case "END_GATEWAY":
return RenderLayer.getEndGateway();
case "LINES":
return RenderLayer.getLines();
case "LINE_STRIP":
return RenderLayer.getLineStrip();
case "DEBUG_FILLED_BOX":
return RenderLayer.getDebugFilledBox();
case "DEBUG_QUADS":
return RenderLayer.getDebugQuads();
case "DEBUG_SECTION_QUADS":
return RenderLayer.getDebugSectionQuads();
case "GUI":
return RenderLayer.getGui();
case "GUI_OVERLAY":
return RenderLayer.getGuiOverlay();
case "GUI_TEXT_HIGHLIGHT":
return RenderLayer.getGuiTextHighlight();
case "GUI_GHOST_RECIPE_OVERLAY":
return RenderLayer.getGuiGhostRecipeOverlay();
default:
SimpleCreatorMod.log(Level.INFO, "Could not find renderLayer " + renderLayer + " using solid");
return RenderLayer.getSolid();
}
}
}

View File

@@ -16,15 +16,16 @@
"main": [
"quimufu.simple_creator.SimpleCreatorMod"
],
"client": [],
"server": [],
"client": [
"quimufu.simple_creator.SimpleCreatorModClient"
],
"tweed4:config": [
"quimufu.simple_creator.SimpleCreatorConfig"
]
},
"mixins": [],
"depends": {
"fabricloader": ">=0.4.0",
"fabricloader": ">=0.14.21",
"fabric": "*"
}
}