Metal lanterns
This commit is contained in:
parent
2e8564a26c
commit
1985750261
68 changed files with 446 additions and 206 deletions
|
@ -1,5 +1,10 @@
|
|||
package ru.betterend.blocks;
|
||||
|
||||
import java.io.Reader;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
|
||||
import net.minecraft.block.Block;
|
||||
|
@ -8,14 +13,18 @@ import net.minecraft.block.Material;
|
|||
import net.minecraft.block.MaterialColor;
|
||||
import net.minecraft.block.ShapeContext;
|
||||
import net.minecraft.sound.BlockSoundGroup;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.util.shape.VoxelShape;
|
||||
import net.minecraft.world.BlockView;
|
||||
import ru.betterend.blocks.basis.EndLanternBlock;
|
||||
import ru.betterend.client.render.ERenderLayer;
|
||||
import ru.betterend.interfaces.IRenderTypeable;
|
||||
import ru.betterend.patterns.BlockPatterned;
|
||||
import ru.betterend.patterns.Patterns;
|
||||
|
||||
public class BulbVineLanternBlock extends EndLanternBlock implements IRenderTypeable {
|
||||
public class BulbVineLanternBlock extends EndLanternBlock implements IRenderTypeable, BlockPatterned {
|
||||
private static final VoxelShape SHAPE_CEIL = Block.createCuboidShape(4, 4, 4, 12, 16, 12);
|
||||
private static final VoxelShape SHAPE_FLOOR = Block.createCuboidShape(4, 0, 4, 12, 12, 12);
|
||||
|
||||
|
@ -43,4 +52,39 @@ public class BulbVineLanternBlock extends EndLanternBlock implements IRenderType
|
|||
public ERenderLayer getRenderLayer() {
|
||||
return ERenderLayer.CUTOUT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getStatesPattern(Reader data) {
|
||||
Identifier blockId = Registry.BLOCK.getId(this);
|
||||
return Patterns.createJson(data, blockId.getPath(), blockId.getPath());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getModelPattern(String block) {
|
||||
Identifier blockId = Registry.BLOCK.getId(this);
|
||||
Map<String, String> map = Maps.newHashMap();
|
||||
map.put("%glow%", getGlowTexture());
|
||||
map.put("%metal%", getMetalTexture(blockId));
|
||||
if (block.contains("item") || block.contains("ceil")) {
|
||||
return Patterns.createJson(Patterns.BLOCK_BULB_LANTERN_CEIL, map);
|
||||
}
|
||||
else {
|
||||
return Patterns.createJson(Patterns.BLOCK_BULB_LANTERN_FLOOR, map);
|
||||
}
|
||||
}
|
||||
|
||||
protected String getMetalTexture(Identifier blockId) {
|
||||
String name = blockId.getPath();
|
||||
name = name.substring(0, name.indexOf('_'));
|
||||
return name + "_bulb_vine_lantern_metal";
|
||||
}
|
||||
|
||||
protected String getGlowTexture() {
|
||||
return "bulb_vine_lantern_bulb";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Identifier statePatternId() {
|
||||
return Patterns.STATE_BULB_LANTERN;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,11 @@
|
|||
package ru.betterend.blocks;
|
||||
|
||||
import java.io.Reader;
|
||||
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.minecraft.client.color.block.BlockColorProvider;
|
||||
import net.minecraft.client.color.item.ItemColorProvider;
|
||||
import net.minecraft.util.Identifier;
|
||||
import ru.betterend.interfaces.IColorProvider;
|
||||
import ru.betterend.patterns.BlockPatterned;
|
||||
import ru.betterend.patterns.Patterns;
|
||||
|
||||
public class BulbVineLanternColoredBlock extends BulbVineLanternBlock implements IColorProvider, BlockPatterned {
|
||||
public class BulbVineLanternColoredBlock extends BulbVineLanternBlock implements IColorProvider {
|
||||
public BulbVineLanternColoredBlock(FabricBlockSettings settings) {
|
||||
super(settings);
|
||||
}
|
||||
|
@ -30,24 +25,7 @@ public class BulbVineLanternColoredBlock extends BulbVineLanternBlock implements
|
|||
}
|
||||
|
||||
@Override
|
||||
public String getStatesPattern(Reader data) {
|
||||
String path = "betterend:block/bulb_lantern_colored";
|
||||
return Patterns.createJson(data, path, path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getModelPattern(String block) {
|
||||
String path = "betterend:block/bulb_lantern_colored";
|
||||
if (block.contains("item") || block.contains("ceil")) {
|
||||
return Patterns.createJson(Patterns.BLOCK_BULB_LANTERN_COLORED_CEIL, path, path);
|
||||
}
|
||||
else {
|
||||
return Patterns.createJson(Patterns.BLOCK_BULB_LANTERN_COLORED_FLOOR, path, path);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Identifier statePatternId() {
|
||||
return Patterns.STATE_BULB_LANTERN;
|
||||
protected String getGlowTexture() {
|
||||
return "bulb_vine_lantern_overlay";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,8 +7,6 @@ import com.google.common.collect.Maps;
|
|||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.MaterialColor;
|
||||
import net.minecraft.block.ShapeContext;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Direction;
|
||||
|
@ -19,11 +17,11 @@ import ru.betterend.blocks.basis.AttachedBlock;
|
|||
import ru.betterend.client.render.ERenderLayer;
|
||||
import ru.betterend.interfaces.IRenderTypeable;
|
||||
|
||||
public class ThallasiumChandelierBlock extends AttachedBlock implements IRenderTypeable {
|
||||
public class ChandelierBlock extends AttachedBlock implements IRenderTypeable {
|
||||
private static final EnumMap<Direction, VoxelShape> BOUNDING_SHAPES = Maps.newEnumMap(Direction.class);
|
||||
|
||||
public ThallasiumChandelierBlock() {
|
||||
super(FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(MaterialColor.BLUE).noCollision().nonOpaque().requiresTool().luminance(15));
|
||||
public ChandelierBlock(FabricBlockSettings settings) {
|
||||
super(settings.noCollision().nonOpaque().requiresTool().luminance(15));
|
||||
}
|
||||
|
||||
@Override
|
|
@ -7,7 +7,11 @@ import net.minecraft.block.MaterialColor;
|
|||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.item.ToolMaterial;
|
||||
import net.minecraft.sound.BlockSoundGroup;
|
||||
import net.minecraft.tag.BlockTags;
|
||||
import ru.betterend.blocks.BulbVineLanternBlock;
|
||||
import ru.betterend.blocks.BulbVineLanternColoredBlock;
|
||||
import ru.betterend.blocks.ChandelierBlock;
|
||||
import ru.betterend.blocks.basis.BlockBase;
|
||||
import ru.betterend.blocks.basis.EndAnvilBlock;
|
||||
import ru.betterend.blocks.basis.EndChainBlock;
|
||||
|
@ -42,6 +46,11 @@ public class MetalMaterial {
|
|||
public final Block stairs;
|
||||
public final Block slab;
|
||||
|
||||
public final Block chandelier;
|
||||
public final Block bulb_lantern;
|
||||
public final ColoredMaterial bulb_lantern_colored;
|
||||
|
||||
public final Item nugget;
|
||||
public final Item ingot;
|
||||
public final Item shovel;
|
||||
public final Item sword;
|
||||
|
@ -51,19 +60,25 @@ public class MetalMaterial {
|
|||
|
||||
public MetalMaterial(String name, MaterialColor color, ToolMaterial material) {
|
||||
FabricBlockSettings materialBlock = FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).materialColor(color);
|
||||
FabricBlockSettings lantern = FabricBlockSettings.copyOf(materialBlock).sounds(BlockSoundGroup.LANTERN).hardness(1).resistance(1).luminance(15);
|
||||
|
||||
ore = EndBlocks.registerBlock(name + "_ore", new BlockBase(FabricBlockSettings.copyOf(Blocks.END_STONE)));
|
||||
block = EndBlocks.registerBlock(name + "_block", new BlockBase(materialBlock));
|
||||
tile = EndBlocks.registerBlock(name + "_tile", new BlockBase(materialBlock));
|
||||
bars = EndBlocks.registerBlock(name + "_bars", new EndMetalPaneBlock(block));
|
||||
plate = EndBlocks.registerBlock(name + "_plate", new EndWoodenPlateBlock(block));
|
||||
stairs = EndBlocks.registerBlock(name + "_stairs", new EndStairsBlock(tile));
|
||||
slab = EndBlocks.registerBlock(name + "_slab", new EndSlabBlock(tile));
|
||||
door = EndBlocks.registerBlock(name + "_door", new EndDoorBlock(block));
|
||||
trapdoor = EndBlocks.registerBlock(name + "_trapdoor", new EndTrapdoorBlock(block));
|
||||
anvil = EndBlocks.registerBlock(name + "_anvil", new EndAnvilBlock(color));
|
||||
bars = EndBlocks.registerBlock(name + "_bars", new EndMetalPaneBlock(block));
|
||||
chain = EndBlocks.registerBlock(name + "_chain", new EndChainBlock(color));
|
||||
stairs = EndBlocks.registerBlock(name + "_stairs", new EndStairsBlock(tile));
|
||||
slab = EndBlocks.registerBlock(name + "_slab", new EndSlabBlock(tile));
|
||||
plate = EndBlocks.registerBlock(name + "_plate", new EndWoodenPlateBlock(block));
|
||||
|
||||
chandelier = EndBlocks.registerBlock(name + "_chandelier", new ChandelierBlock(materialBlock));
|
||||
bulb_lantern = EndBlocks.registerBlock(name + "_bulb_lantern", new BulbVineLanternBlock(lantern));
|
||||
bulb_lantern_colored = new ColoredMaterial(BulbVineLanternColoredBlock::new, bulb_lantern, false);
|
||||
|
||||
nugget = EndItems.registerItem(name + "_nugget");
|
||||
ingot = EndItems.registerItem(name + "_ingot");
|
||||
shovel = EndItems.registerTool(name + "_shovel", new EndShovelItem(material, 1.5F, -3.0F, EndItems.makeItemSettings()));
|
||||
sword = EndItems.registerTool(name + "_sword", new EndSwordItem(material, 3, -2.4F, EndItems.makeItemSettings()));
|
||||
|
@ -71,9 +86,10 @@ public class MetalMaterial {
|
|||
axe = EndItems.registerTool(name + "_axe", new EndAxeItem(material, 6.0F, -3.0F, EndItems.makeItemSettings()));
|
||||
hoe = EndItems.registerTool(name + "_hoe", new EndHoeItem(material, -3, 0.0F, EndItems.makeItemSettings()));
|
||||
|
||||
FurnaceRecipe.make("thallasium_ingot_furnace", ore, ingot).build();
|
||||
FurnaceRecipe.make("thallasium_ingot_furnace", ore, ingot).build(true);
|
||||
AlloyingRecipe.Builder.create("thallasium_ingot").setInput(ore, ore).setOutput(ingot, 3).setExpiriense(2.1F).build();
|
||||
|
||||
GridRecipe.make(name + "_ingot_from_nuggets", ingot).setShape("###", "###", "###").addMaterial('#', nugget).setGroup("end_metal_ingots_nug").build();
|
||||
GridRecipe.make(name + "_block", block).setShape("###", "###", "###").addMaterial('#', ingot).setGroup("end_metal_blocks").build();
|
||||
GridRecipe.make(name + "_ingot_from_block", ingot).setOutputCount(9).setList("#").addMaterial('#', block).setGroup("end_metal_ingots").build();
|
||||
|
||||
|
@ -82,14 +98,24 @@ public class MetalMaterial {
|
|||
GridRecipe.make(name + "_plate", plate).setShape("##").addMaterial('#', ingot).setGroup("end_metal_plates").build();
|
||||
GridRecipe.make(name + "_door", door).setOutputCount(3).setOutputCount(16).setShape("##", "##", "##").addMaterial('#', ingot).setGroup("end_metal_doors").build();
|
||||
GridRecipe.make(name + "_trapdoor", trapdoor).setShape("##", "##").addMaterial('#', ingot).setGroup("end_metal_trapdoors").build();
|
||||
GridRecipe.make(name + "_stairs", stairs).setOutputCount(4).setShape("# ", "## ", "###").addMaterial('#', block).setGroup("end_metal_stairs").build();
|
||||
GridRecipe.make(name + "_slab", slab).setOutputCount(6).setShape("###").addMaterial('#', block).setGroup("end_metal_slabs").build();
|
||||
GridRecipe.make(name + "_stairs", stairs).setOutputCount(4).setShape("# ", "## ", "###").addMaterial('#', block, tile).setGroup("end_metal_stairs").build();
|
||||
GridRecipe.make(name + "_slab", slab).setOutputCount(6).setShape("###").addMaterial('#', block, tile).setGroup("end_metal_slabs").build();
|
||||
GridRecipe.make(name + "_chain", chain).setShape("N", "#", "N").addMaterial('#', ingot).addMaterial('N', nugget).setGroup("end_metal_chain").build();
|
||||
GridRecipe.make(name + "_anvil", anvil).setOutputCount(3).setShape("###", " I ", "III").addMaterial('#', block, tile).addMaterial('I', ingot).setGroup("end_metal_anvil").build();
|
||||
GridRecipe.make(name + "bulb_lantern", bulb_lantern).setShape("C", "I", "#").addMaterial('C', chain).addMaterial('I', ingot).addMaterial('#', EndItems.GLOWING_BULB).build();
|
||||
|
||||
GridRecipe.make(name + "_axe", axe).setShape("##", "#I", " I").addMaterial('#', ingot).addMaterial('I', Items.STICK).build();
|
||||
GridRecipe.make(name + "_hoe", hoe).setShape("##", " I", " I").addMaterial('#', ingot).addMaterial('I', Items.STICK).build();
|
||||
GridRecipe.make(name + "_pickaxe", pickaxe).setShape("###", " I ", " I ").addMaterial('#', ingot).addMaterial('I', Items.STICK).build();
|
||||
GridRecipe.make(name + "_sword", sword).setShape("#", "#", "I").addMaterial('#', ingot).addMaterial('I', Items.STICK).build();
|
||||
|
||||
GridRecipe.make(name + "_chandelier", chandelier).setShape("I#I", " # ").addMaterial('#', ingot).addMaterial('I', EndItems.LUMECORN_ROD).setGroup("end_metal_chandelier").build();
|
||||
|
||||
FurnaceRecipe.make(name + "_axe_ingot", axe, nugget).build(true);
|
||||
FurnaceRecipe.make(name + "_hoe_ingot", hoe, nugget).build(true);
|
||||
FurnaceRecipe.make(name + "_pickaxe_ingot", pickaxe, nugget).build(true);
|
||||
FurnaceRecipe.make(name + "_sword_ingot", sword, nugget).build(true);
|
||||
|
||||
TagHelper.addTag(BlockTags.ANVIL, anvil);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue