1 Commits

Author SHA1 Message Date
Motschen
bfc6fc4d16 Decorative 4.0.0 - Clock Update 2021-02-04 15:06:50 +01:00
86 changed files with 1043 additions and 222 deletions

View File

@@ -14,9 +14,9 @@ minecraft {
} }
repositories { repositories {
maven { url = 'https://raw.githubusercontent.com/Devan-Kerman/Devan-Repo/master/'}
maven { url "https://jitpack.io" } maven { url "https://jitpack.io" }
maven { url "https://maven.blamejared.com" } maven { url "https://maven.blamejared.com" }
maven { url "https://maven.terraformersmc.com/releases" }
} }
dependencies { dependencies {
@@ -28,11 +28,19 @@ dependencies {
// Fabric API. This is technically optional, but you probably want it anyway. // Fabric API. This is technically optional, but you probably want it anyway.
modCompile "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" modCompile "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modCompile("vazkii.patchouli:Patchouli:${project.patchouli_version}") modCompile("vazkii.patchouli:Patchouli:${project.patchouli_version}"){
exclude module: "fabric-api"
}
modImplementation ("me.sargunvohra.mcmods:autoconfig1u:${project.auto_config_version}") modImplementation ("me.sargunvohra.mcmods:autoconfig1u:${project.auto_config_version}"){
modImplementation ("me.shedaniel.cloth:config-2:${project.cloth_config_version}") exclude module: "fabric-api"
modImplementation ("io.github.prospector:modmenu:${project.mod_menu_version}") }
modImplementation ("me.shedaniel.cloth:config-2:${project.cloth_config_version}"){
exclude module: "fabric-api"
}
modImplementation ("com.terraformersmc:modmenu:${project.mod_menu_version}"){
exclude module: "fabric-api"
}
modImplementation "eu.midnightdust:midnight-hats:${midnighthats_version}" modImplementation "eu.midnightdust:midnight-hats:${midnighthats_version}"
include "eu.midnightdust:midnight-hats:${midnighthats_version}" include "eu.midnightdust:midnight-hats:${midnighthats_version}"

View File

@@ -0,0 +1 @@
v1 named intermediary

View File

@@ -4,20 +4,20 @@ org.gradle.jvmargs=-Xmx2G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/use # check these on https://fabricmc.net/use
minecraft_version=1.16.4 minecraft_version=1.16.4
yarn_mappings=1.16.4+build.6 yarn_mappings=1.16.4+build.9
loader_version=0.10.6+build.214 loader_version=0.10.8
# Mod Properties # Mod Properties
mod_version = 4.0.0-dev mod_version = 4.0.0
maven_group = eu.midnightdust.motschen maven_group = eu.midnightdust.motschen
archives_base_name = decorative archives_base_name = decorative
# Dependencies # Dependencies
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
fabric_version=0.25.1+build.416-1.16 fabric_version=0.30.0+1.16
patchouli_version=1.16-40-FABRIC patchouli_version=1.16.4-48-FABRIC
midnighthats_version=2.0.1 midnighthats_version=2.0.1
auto_config_version = 3.2.0-unstable auto_config_version = 3.3.1
cloth_config_version = 4.7.0-unstable cloth_config_version = 4.8.3
mod_menu_version = 1.14.6+build.31 mod_menu_version = 1.16.5

View File

@@ -8,7 +8,6 @@ import eu.midnightdust.motschen.decorative.init.Pool;
import eu.midnightdust.motschen.decorative.init.Signs; import eu.midnightdust.motschen.decorative.init.Signs;
import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry;
import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry; import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry;
import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry;
import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry;
@@ -16,10 +15,6 @@ import net.minecraft.block.Block;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.client.color.block.BlockColorProvider; import net.minecraft.client.color.block.BlockColorProvider;
import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.model.UnbakedModel;
import net.minecraft.command.argument.ItemEnchantmentArgumentType;
import java.util.function.Supplier;
public class DecorativeClient implements ClientModInitializer { public class DecorativeClient implements ClientModInitializer {

View File

@@ -53,7 +53,7 @@ public class DecorativeMain implements ModInitializer {
public static Block ChristmasLights = new ChristmasLights(); public static Block ChristmasLights = new ChristmasLights();
public static Block ShowerHead = new ShowerHead(); public static Block ShowerHead = new ShowerHead();
public static Block WallClock = new WallClock(); public static Block WallClock = new WallClock();
public static Block SmokeDetector = new SmokeDetector(); public static Block StonePath = new StonePath();
@Override @Override
public void onInitialize() { public void onInitialize() {
@@ -81,6 +81,8 @@ public class DecorativeMain implements ModInitializer {
Signs.init(); Signs.init();
//Garden// //Garden//
Registry.register(Registry.BLOCK, new Identifier(MOD_ID,"stone_path"), StonePath);
Registry.register(Registry.ITEM, new Identifier(MOD_ID,"stone_path"), new BlockItem(StonePath, new Item.Settings().group(DecorativeMain.GardenGroup)));
Registry.register(Registry.BLOCK, new Identifier(MOD_ID,"bird_bath"), BirdBath); Registry.register(Registry.BLOCK, new Identifier(MOD_ID,"bird_bath"), BirdBath);
Registry.register(Registry.ITEM, new Identifier(MOD_ID,"bird_bath"), new BlockItem(BirdBath, new Item.Settings().group(DecorativeMain.GardenGroup))); Registry.register(Registry.ITEM, new Identifier(MOD_ID,"bird_bath"), new BlockItem(BirdBath, new Item.Settings().group(DecorativeMain.GardenGroup)));
Registry.register(Registry.BLOCK, new Identifier(MOD_ID,"water_pump"), WaterPump); Registry.register(Registry.BLOCK, new Identifier(MOD_ID,"water_pump"), WaterPump);
@@ -107,8 +109,6 @@ public class DecorativeMain implements ModInitializer {
Registry.register(Registry.ITEM, new Identifier(MOD_ID,"christmas_tree"), new BlockItem(ChristmasTree, new Item.Settings().group(DecorativeMain.IndoorGroup))); Registry.register(Registry.ITEM, new Identifier(MOD_ID,"christmas_tree"), new BlockItem(ChristmasTree, new Item.Settings().group(DecorativeMain.IndoorGroup)));
Registry.register(Registry.BLOCK, new Identifier(MOD_ID,"christmas_lights"), ChristmasLights); Registry.register(Registry.BLOCK, new Identifier(MOD_ID,"christmas_lights"), ChristmasLights);
Registry.register(Registry.ITEM, new Identifier(MOD_ID,"christmas_lights"), new BlockItem(ChristmasLights, new Item.Settings().group(DecorativeMain.IndoorGroup))); Registry.register(Registry.ITEM, new Identifier(MOD_ID,"christmas_lights"), new BlockItem(ChristmasLights, new Item.Settings().group(DecorativeMain.IndoorGroup)));
Registry.register(Registry.BLOCK, new Identifier(MOD_ID,"smoke_detector"), SmokeDetector);
Registry.register(Registry.ITEM, new Identifier(MOD_ID,"smoke_detector"), new BlockItem(SmokeDetector, new Item.Settings().group(DecorativeMain.IndoorGroup)));
Lamps.init(); Lamps.init();
DoubleLamps.init(); DoubleLamps.init();

View File

@@ -4,7 +4,6 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemPlacementContext;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.state.StateManager;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShape;
import net.minecraft.world.BlockView; import net.minecraft.world.BlockView;

View File

@@ -45,10 +45,10 @@ public class OldTelevision extends HorizontalFacingBlock {
case NYANCAT: world.setBlockState(pos, state.with(PROGRAM, Program.CREEPER)); case NYANCAT: world.setBlockState(pos, state.with(PROGRAM, Program.CREEPER));
world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f); world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f);
return ActionResult.SUCCESS; return ActionResult.SUCCESS;
case CREEPER: world.setBlockState(pos, state.with(PROGRAM, Program.WOODYS)); case CREEPER: world.setBlockState(pos, state.with(PROGRAM, Program.CRABRAVE));
world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f); world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f);
return ActionResult.SUCCESS; return ActionResult.SUCCESS;
case WOODYS: world.setBlockState(pos, state.with(PROGRAM, Program.TATER)); case CRABRAVE: world.setBlockState(pos, state.with(PROGRAM, Program.TATER));
world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f); world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f);
return ActionResult.SUCCESS; return ActionResult.SUCCESS;
case TATER: world.setBlockState(pos, state.with(PROGRAM, Program.OFF)); case TATER: world.setBlockState(pos, state.with(PROGRAM, Program.OFF));

View File

@@ -1,47 +0,0 @@
package eu.midnightdust.motschen.decorative.block;
import eu.midnightdust.motschen.decorative.block.blockentity.SmokeDetectorBlockEntity;
import eu.midnightdust.motschen.decorative.block.blockentity.WallClockBlockEntity;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.item.ItemPlacementContext;
import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.state.StateManager;
import net.minecraft.state.property.BooleanProperty;
import net.minecraft.state.property.Property;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.shape.VoxelShape;
import net.minecraft.util.shape.VoxelShapes;
import net.minecraft.world.BlockView;
public class SmokeDetector extends HorizontalFacingBlock implements BlockEntityProvider {
private static final VoxelShape SHAPE;
public static final BooleanProperty ACTIVE = BooleanProperty.of("active");
public SmokeDetector() {
super(FabricBlockSettings.copy(Blocks.SMOOTH_QUARTZ).nonOpaque().sounds(BlockSoundGroup.STONE));
this.setDefaultState(this.stateManager.getDefaultState().with(ACTIVE, false));
}
@Override
public BlockEntity createBlockEntity(BlockView view) {
return new SmokeDetectorBlockEntity();
}
@Override
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
builder.add(ACTIVE);
}
@Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) {
return SHAPE;
}
static {
VoxelShape shape = createCuboidShape(4, 14, 4, 12, 16, 12);
SHAPE = shape;
}
}

View File

@@ -0,0 +1,36 @@
package eu.midnightdust.motschen.decorative.block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.minecraft.block.*;
import net.minecraft.item.ItemPlacementContext;
import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.state.StateManager;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.shape.VoxelShape;
import net.minecraft.util.shape.VoxelShapes;
import net.minecraft.world.BlockView;
import net.minecraft.world.WorldView;
public class StonePath extends Block {
private static final VoxelShape SHAPE;
public StonePath() {
super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE));
}
@Override
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) {
return SHAPE;
}
static {
VoxelShape shape = createCuboidShape(0, 0, 0, 16, 1, 16);
SHAPE = shape;
}
public boolean canPlaceAt(BlockState state, WorldView worldView, BlockPos pos) {
return worldView.getBlockState(pos.down()).isSideSolidFullSquare(worldView,pos,Direction.UP);
}
}

View File

@@ -46,10 +46,10 @@ public class Television extends HorizontalFacingBlock {
case NYANCAT: world.setBlockState(pos, state.with(PROGRAM, Program.CREEPER)); case NYANCAT: world.setBlockState(pos, state.with(PROGRAM, Program.CREEPER));
world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f); world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f);
return ActionResult.SUCCESS; return ActionResult.SUCCESS;
case CREEPER: world.setBlockState(pos, state.with(PROGRAM, Program.WOODYS)); case CREEPER: world.setBlockState(pos, state.with(PROGRAM, Program.CRABRAVE));
world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f); world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f);
return ActionResult.SUCCESS; return ActionResult.SUCCESS;
case WOODYS: world.setBlockState(pos, state.with(PROGRAM, Program.TATER)); case CRABRAVE: world.setBlockState(pos, state.with(PROGRAM, Program.TATER));
world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f); world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 1.5f);
return ActionResult.SUCCESS; return ActionResult.SUCCESS;
case TATER: world.setBlockState(pos, state.with(PROGRAM, Program.OFF)); case TATER: world.setBlockState(pos, state.with(PROGRAM, Program.OFF));

View File

@@ -10,8 +10,11 @@ import net.minecraft.sound.SoundCategory;
import net.minecraft.util.Tickable; import net.minecraft.util.Tickable;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import java.time.LocalTime;
public class CeilingFanBlockEntity extends BlockEntity implements Tickable { public class CeilingFanBlockEntity extends BlockEntity implements Tickable {
private int rot; private int rot;
private int second;
public CeilingFanBlockEntity() { public CeilingFanBlockEntity() {
super(BlockEntities.CeilingFanBlockEntity); super(BlockEntities.CeilingFanBlockEntity);
@@ -25,22 +28,31 @@ public class CeilingFanBlockEntity extends BlockEntity implements Tickable {
BlockPos pos = this.pos; BlockPos pos = this.pos;
BlockState state = this.world.getBlockState(pos); BlockState state = this.world.getBlockState(pos);
if (world != null && state.get(DecorativeMain.STAGE) == CeilingFanStage.LEVEL_1) { if (world != null && state.get(DecorativeMain.STAGE) == CeilingFanStage.LEVEL_1) {
world.playSound(null,pos, DecorativeSoundEvents.CEILINGFAN_AMBIENT, SoundCategory.BLOCKS, 0.1f, 1.0f); if (LocalTime.now().getSecond() != second) {
second = LocalTime.now().getSecond();
world.playSound(null,pos, DecorativeSoundEvents.CEILINGFAN_AMBIENT, SoundCategory.BLOCKS, 0.1f, 1.0f);
}
rot = rot + 6; rot = rot + 6;
return; return;
} }
if (world != null && state.get(DecorativeMain.STAGE) == CeilingFanStage.LEVEL_2) { if (world != null && state.get(DecorativeMain.STAGE) == CeilingFanStage.LEVEL_2) {
world.playSound(null,pos, DecorativeSoundEvents.CEILINGFAN_AMBIENT, SoundCategory.BLOCKS, 0.2f, 1.0f); if (LocalTime.now().getSecond() != second) {
second = LocalTime.now().getSecond();
world.playSound(null,pos, DecorativeSoundEvents.CEILINGFAN_AMBIENT, SoundCategory.BLOCKS, 0.2f, 1.0f);
}
rot = rot + 10; rot = rot + 10;
return; return;
} }
if (world != null && state.get(DecorativeMain.STAGE) == CeilingFanStage.LEVEL_3) { if (world != null && state.get(DecorativeMain.STAGE) == CeilingFanStage.LEVEL_3) {
world.playSound(null,pos, DecorativeSoundEvents.CEILINGFAN_AMBIENT, SoundCategory.BLOCKS, 0.3f, 1.0f); if (LocalTime.now().getSecond() != second) {
second = LocalTime.now().getSecond();
world.playSound(null,pos, DecorativeSoundEvents.CEILINGFAN_AMBIENT, SoundCategory.BLOCKS, 0.3f, 1.0f);
}
rot = rot + 14; rot = rot + 14;
return; return;
} }
else { else {
rot = rot;
return; return;
} }
} }

View File

@@ -4,8 +4,6 @@ import eu.midnightdust.motschen.decorative.init.BlockEntities;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.HorizontalFacingBlock; import net.minecraft.block.HorizontalFacingBlock;
import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntity;
import net.minecraft.sound.SoundCategory;
import net.minecraft.sound.SoundEvents;
import net.minecraft.util.Tickable; import net.minecraft.util.Tickable;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;

View File

@@ -2,7 +2,6 @@ package eu.midnightdust.motschen.decorative.block.blockentity;
import eu.midnightdust.motschen.decorative.block.PoolSprinkler; import eu.midnightdust.motschen.decorative.block.PoolSprinkler;
import eu.midnightdust.motschen.decorative.init.BlockEntities; import eu.midnightdust.motschen.decorative.init.BlockEntities;
import eu.midnightdust.motschen.decorative.init.Pool;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntity;
import net.minecraft.particle.ParticleTypes; import net.minecraft.particle.ParticleTypes;

View File

@@ -2,7 +2,6 @@ package eu.midnightdust.motschen.decorative.block.blockentity;
import eu.midnightdust.motschen.decorative.block.PoolSprinkler; import eu.midnightdust.motschen.decorative.block.PoolSprinkler;
import eu.midnightdust.motschen.decorative.init.BlockEntities; import eu.midnightdust.motschen.decorative.init.BlockEntities;
import eu.midnightdust.motschen.decorative.init.Pool;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntity;
import net.minecraft.particle.ParticleTypes; import net.minecraft.particle.ParticleTypes;

View File

@@ -1,47 +0,0 @@
package eu.midnightdust.motschen.decorative.block.blockentity;
import eu.midnightdust.motschen.decorative.DecorativeMain;
import eu.midnightdust.motschen.decorative.block.SmokeDetector;
import eu.midnightdust.motschen.decorative.init.BlockEntities;
import eu.midnightdust.motschen.decorative.sound.DecorativeSoundEvents;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.sound.SoundCategory;
import net.minecraft.sound.SoundEvents;
import net.minecraft.tag.BlockTags;
import net.minecraft.util.Tickable;
import net.minecraft.util.math.BlockPos;
import java.time.LocalTime;
public class SmokeDetectorBlockEntity extends BlockEntity implements Tickable {
private int second;
private int sound = 0;
public SmokeDetectorBlockEntity() {
super(BlockEntities.SmokeDetectorBlockEntity);
}
public boolean isInFireRange() {
return this.world.getBlockState(this.pos.down()).isIn(BlockTags.FIRE);
}
@Override
public void tick() {
if (LocalTime.now().getSecond() != second) {
second = LocalTime.now().getSecond();
if (this.isInFireRange()) {
world.setBlockState(pos, DecorativeMain.SmokeDetector.getDefaultState().with(SmokeDetector.ACTIVE, true));
sound = sound + 1;
if (sound > 3) {sound = 0;}
if (sound == 0) {
world.playSound(null, pos, DecorativeSoundEvents.SMOKE_DETECTOR_BEEP, SoundCategory.BLOCKS, 1f, 1f);
}
}
else if (this.world.getBlockState(pos).get(SmokeDetector.ACTIVE).equals(true)) {
world.setBlockState(pos, DecorativeMain.SmokeDetector.getDefaultState().with(SmokeDetector.ACTIVE, false));
}
}
}
}

View File

@@ -1,13 +1,11 @@
package eu.midnightdust.motschen.decorative.block.blockentity; package eu.midnightdust.motschen.decorative.block.blockentity;
import eu.midnightdust.motschen.decorative.init.BlockEntities; import eu.midnightdust.motschen.decorative.init.BlockEntities;
import eu.midnightdust.motschen.decorative.sound.DecorativeSoundEvents;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.HorizontalFacingBlock; import net.minecraft.block.HorizontalFacingBlock;
import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntity;
import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundCategory;
import net.minecraft.sound.SoundEvents; import net.minecraft.sound.SoundEvents;
import net.minecraft.state.property.Properties;
import net.minecraft.util.Tickable; import net.minecraft.util.Tickable;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;

View File

@@ -3,13 +3,11 @@ package eu.midnightdust.motschen.decorative.block.render;
import eu.midnightdust.motschen.decorative.block.blockentity.CeilingFanBlockEntity; import eu.midnightdust.motschen.decorative.block.blockentity.CeilingFanBlockEntity;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
import net.minecraft.block.DoorBlock;
import net.minecraft.client.model.ModelPart; import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.OverlayTexture;
import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.WorldRenderer;
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRenderer;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
@@ -18,7 +16,6 @@ import net.minecraft.util.Identifier;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class CeilingFanRenderer extends BlockEntityRenderer<CeilingFanBlockEntity> { public class CeilingFanRenderer extends BlockEntityRenderer<CeilingFanBlockEntity> {
private static int rot;
private final ModelPart blades; private final ModelPart blades;
private final ModelPart point; private final ModelPart point;
@@ -43,16 +40,11 @@ public class CeilingFanRenderer extends BlockEntityRenderer<CeilingFanBlockEntit
@Override @Override
public void render(CeilingFanBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { public void render(CeilingFanBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) {
matrices.push(); matrices.push();
int lightAtBlock = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos());
VertexConsumer vertexConsumer = vertexConsumers.getBuffer(RenderLayer.getEntityCutoutNoCull(new Identifier("decorative:textures/block/ceilingfan.png"))); VertexConsumer vertexConsumer = vertexConsumers.getBuffer(RenderLayer.getEntityCutoutNoCull(new Identifier("decorative:textures/block/ceilingfan.png")));
matrices.translate(0.5,0.31,0.5); matrices.translate(0.5,0.31,0.5);
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getRot())); matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getRot()));
blades.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F);
blades.render(matrices, vertexConsumer, lightAtBlock, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F);
matrices.pop(); matrices.pop();
} }
} }

View File

@@ -3,7 +3,6 @@ package eu.midnightdust.motschen.decorative.block.render;
import eu.midnightdust.motschen.decorative.block.blockentity.ChoppingLogBlockEntity; import eu.midnightdust.motschen.decorative.block.blockentity.ChoppingLogBlockEntity;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
import net.minecraft.block.BlockState;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.*; import net.minecraft.client.render.*;
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
@@ -13,7 +12,6 @@ import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.client.util.math.Vector3f; import net.minecraft.client.util.math.Vector3f;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.Items; import net.minecraft.item.Items;
import net.minecraft.util.math.BlockPos;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class ChoppingLogBlockEntityRenderer extends BlockEntityRenderer<ChoppingLogBlockEntity> { public class ChoppingLogBlockEntityRenderer extends BlockEntityRenderer<ChoppingLogBlockEntity> {
@@ -30,22 +28,13 @@ public class ChoppingLogBlockEntityRenderer extends BlockEntityRenderer<Chopping
@Override @Override
public void render(ChoppingLogBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { public void render(ChoppingLogBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) {
BlockPos pos = blockEntity.getPos();
BlockState state = blockEntity.getWorld().getBlockState(pos);
matrices.push(); matrices.push();
int lightAbove = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos().up()); int lightAbove = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos().up());
matrices.translate(blockEntity.getAxeX(), 1.5D, blockEntity.getAxeZ()); matrices.translate(blockEntity.getAxeX(), 1.5D, blockEntity.getAxeZ());
matrices.scale(2.5f,2.5f,2.5f); matrices.scale(2.5f,2.5f,2.5f);
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getFacing())); matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getFacing()));
matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(160)); matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(160));
MinecraftClient.getInstance().getItemRenderer().renderItem(new ItemStack(Items.IRON_AXE), MinecraftClient.getInstance().getItemRenderer().renderItem(new ItemStack(Items.IRON_AXE), ModelTransformation.Mode.GROUND, lightAbove, overlay, matrices, vertexConsumers);
ModelTransformation.Mode.GROUND, lightAbove, overlay, matrices, vertexConsumers);
matrices.pop(); matrices.pop();
} }
} }

View File

@@ -2,23 +2,16 @@ package eu.midnightdust.motschen.decorative.block.render;
import eu.midnightdust.motschen.decorative.DecorativeMain; import eu.midnightdust.motschen.decorative.DecorativeMain;
import eu.midnightdust.motschen.decorative.block.blockentity.DigitalClockBlockEntity; import eu.midnightdust.motschen.decorative.block.blockentity.DigitalClockBlockEntity;
import eu.midnightdust.motschen.decorative.block.blockentity.WallClockBlockEntity; import eu.midnightdust.motschen.decorative.config.DecorativeConfig;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
import net.minecraft.client.font.TextRenderer; import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.*; import net.minecraft.client.render.*;
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRenderer;
import net.minecraft.client.render.block.entity.SignBlockEntityRenderer;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.client.util.math.Vector3f; import net.minecraft.client.util.math.Vector3f;
import net.minecraft.util.Identifier;
import java.text.SimpleDateFormat;
import java.time.LocalTime; import java.time.LocalTime;
import java.util.SimpleTimeZone;
import java.util.TimeZone;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class DigitalClockRenderer extends BlockEntityRenderer<DigitalClockBlockEntity> { public class DigitalClockRenderer extends BlockEntityRenderer<DigitalClockBlockEntity> {
@@ -40,7 +33,7 @@ public class DigitalClockRenderer extends BlockEntityRenderer<DigitalClockBlockE
String minute; String minute;
// Hour // Hour
if (DecorativeMain.DECORATIVE_CONFIG.use12hTime) { if (DecorativeMain.DECORATIVE_CONFIG.timeFormat.equals(DecorativeConfig.TimeFormat.h12)) {
if (getHour12hFormat() <= 9) { if (getHour12hFormat() <= 9) {
hour = "0" + getHour12hFormat(); hour = "0" + getHour12hFormat();
} else { } else {
@@ -71,16 +64,14 @@ public class DigitalClockRenderer extends BlockEntityRenderer<DigitalClockBlockE
@Override @Override
public void render(DigitalClockBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { public void render(DigitalClockBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) {
matrices.push(); matrices.push();
int lightAtBlock1 = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos());
TextRenderer textRenderer = dispatcher.getTextRenderer(); TextRenderer textRenderer = dispatcher.getTextRenderer();
matrices.translate(blockEntity.getX(),0.35,blockEntity.getZ()); matrices.translate(blockEntity.getX(),0.35,blockEntity.getZ());
matrices.scale(0.025f, 0.025f, 0.025f); matrices.scale(0.025f, 0.025f, 0.025f);
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getFacing())); matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getFacing()));
matrices.translate(0,0,-0.1);
matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(180)); matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(180));
textRenderer.draw(getTime(), 0, 0, 16382457, false, matrices.peek().getModel(), vertexConsumers, false, 0, lightAtBlock1); textRenderer.draw(getTime(), 0, 0, 16382457, false, matrices.peek().getModel(), vertexConsumers, false, 0, 15);
matrices.pop(); matrices.pop();
} }
} }

View File

@@ -26,7 +26,7 @@ public class WallClockRenderer extends BlockEntityRenderer<WallClockBlockEntity>
blades.setPivot(0.0F, 0.0F, 0.0F); blades.setPivot(0.0F, 0.0F, 0.0F);
seconds = new ModelPart(16, 16, 8, 0); seconds = new ModelPart(16, 16, 8, 0);
seconds.addCuboid(-0.175F, 0.0F, 0.0F, 0.25F, 7.0F, 0.2F, 0.0F); seconds.addCuboid(-0.175F, 0.0F, 0.01F, 0.25F, 7.0F, 0.2F, 0.0F);
blades.addChild(seconds); blades.addChild(seconds);
minutes = new ModelPart(16, 16, 0, 0); minutes = new ModelPart(16, 16, 0, 0);
@@ -50,34 +50,28 @@ public class WallClockRenderer extends BlockEntityRenderer<WallClockBlockEntity>
@Override @Override
public void render(WallClockBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { public void render(WallClockBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) {
VertexConsumer blackVertex = vertexConsumers.getBuffer(RenderLayer.getEntityCutoutNoCull(new Identifier("textures/block/black_concrete.png")));
int lightAtBlock = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos()); VertexConsumer redVertex = vertexConsumers.getBuffer(RenderLayer.getEntityCutoutNoCull(new Identifier("textures/block/red_concrete.png")));
matrices.push(); matrices.push();
VertexConsumer redVertex = vertexConsumers.getBuffer(RenderLayer.getEntityCutoutNoCull(new Identifier("textures/block/red_concrete.png")));
int lightAtBlock1 = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos());
matrices.translate(blockEntity.getX(),0.5,blockEntity.getZ()); matrices.translate(blockEntity.getX(),0.5,blockEntity.getZ());
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getFacing())); matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getFacing()));
matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(LocalTime.now().getSecond() * 6)); matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(LocalTime.now().getSecond() * 6));
seconds.render(matrices, redVertex, lightAtBlock1, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F); seconds.render(matrices, redVertex, light, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F);
matrices.pop(); matrices.pop();
matrices.push(); matrices.push();
VertexConsumer blackVertex = vertexConsumers.getBuffer(RenderLayer.getEntityCutoutNoCull(new Identifier("textures/block/black_concrete.png")));
int lightAtBlock2 = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos());
matrices.translate(blockEntity.getX(),0.5,blockEntity.getZ()); matrices.translate(blockEntity.getX(),0.5,blockEntity.getZ());
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getFacing())); matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getFacing()));
matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(LocalTime.now().getMinute() * 6)); matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(LocalTime.now().getMinute() * 6));
minutes.render(matrices, blackVertex, lightAtBlock2, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F); minutes.render(matrices, blackVertex, light, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F);
matrices.pop(); matrices.pop();
matrices.push(); matrices.push();
VertexConsumer blackVertex2 = vertexConsumers.getBuffer(RenderLayer.getEntityCutoutNoCull(new Identifier("textures/block/black_concrete.png")));
int lightAtBlock3 = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos());
matrices.translate(blockEntity.getX(),0.5,blockEntity.getZ()); matrices.translate(blockEntity.getX(),0.5,blockEntity.getZ());
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getFacing())); matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(blockEntity.getFacing()));
matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(getHour12hFormat() * 30)); matrices.multiply(Vector3f.POSITIVE_Z.getDegreesQuaternion(getHour12hFormat() * 30));
hours.render(matrices, blackVertex2, lightAtBlock3, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F); hours.render(matrices, blackVertex, light, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F);
matrices.pop(); matrices.pop();
} }
} }

View File

@@ -6,7 +6,7 @@ public enum Program implements StringIdentifiable {
OFF("off"), OFF("off"),
NYANCAT("nyancat"), NYANCAT("nyancat"),
CREEPER("creeper"), CREEPER("creeper"),
WOODYS("woodys"), CRABRAVE("crabrave"),
TATER("tater"); TATER("tater");
private final String name; private final String name;

View File

@@ -2,10 +2,16 @@ package eu.midnightdust.motschen.decorative.config;
import me.sargunvohra.mcmods.autoconfig1u.ConfigData; import me.sargunvohra.mcmods.autoconfig1u.ConfigData;
import me.sargunvohra.mcmods.autoconfig1u.annotation.Config; import me.sargunvohra.mcmods.autoconfig1u.annotation.Config;
import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry;
import me.sargunvohra.mcmods.autoconfig1u.shadowed.blue.endless.jankson.Comment; import me.sargunvohra.mcmods.autoconfig1u.shadowed.blue.endless.jankson.Comment;
@Config(name = "decorative") @Config(name = "decorative")
public class DecorativeConfig implements ConfigData { public class DecorativeConfig implements ConfigData {
@Comment(value = "Use 12h Time") @Comment(value = "Change the time format")
public boolean use12hTime = true; @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON)
public TimeFormat timeFormat = TimeFormat.h12;
public enum TimeFormat {
h12, h24
}
} }

View File

@@ -15,7 +15,6 @@ public class BlockEntities {
public static BlockEntityType<ChoppingLogBlockEntity> ChoppingLogBlockEntity; public static BlockEntityType<ChoppingLogBlockEntity> ChoppingLogBlockEntity;
public static BlockEntityType<WallClockBlockEntity> WallClockBlockEntity; public static BlockEntityType<WallClockBlockEntity> WallClockBlockEntity;
public static BlockEntityType<DigitalClockBlockEntity> DigitalClockBlockEntity; public static BlockEntityType<DigitalClockBlockEntity> DigitalClockBlockEntity;
public static BlockEntityType<SmokeDetectorBlockEntity> SmokeDetectorBlockEntity;
public static void init() { public static void init() {
PoolSprinklerBlockEntity = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(DecorativeMain.MOD_ID,"pool_sprinkler_blockentity"), BlockEntityType.Builder.create(PoolSprinklerBlockEntity::new, Pool.PoolSprinkler).build(null)); PoolSprinklerBlockEntity = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(DecorativeMain.MOD_ID,"pool_sprinkler_blockentity"), BlockEntityType.Builder.create(PoolSprinklerBlockEntity::new, Pool.PoolSprinkler).build(null));
@@ -24,6 +23,5 @@ public class BlockEntities {
ChoppingLogBlockEntity = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(DecorativeMain.MOD_ID,"chopping_log_blockentity"), BlockEntityType.Builder.create(ChoppingLogBlockEntity::new, LogsWithAxes.OakChoppingLog, LogsWithAxes.BirchChoppingLog, LogsWithAxes.AcaciaChoppingLog, LogsWithAxes.DarkOakChoppingLog, LogsWithAxes.JungleChoppingLog, LogsWithAxes.SpruceChoppingLog).build(null)); ChoppingLogBlockEntity = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(DecorativeMain.MOD_ID,"chopping_log_blockentity"), BlockEntityType.Builder.create(ChoppingLogBlockEntity::new, LogsWithAxes.OakChoppingLog, LogsWithAxes.BirchChoppingLog, LogsWithAxes.AcaciaChoppingLog, LogsWithAxes.DarkOakChoppingLog, LogsWithAxes.JungleChoppingLog, LogsWithAxes.SpruceChoppingLog).build(null));
WallClockBlockEntity = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(DecorativeMain.MOD_ID,"wall_clock_blockentity"), BlockEntityType.Builder.create(WallClockBlockEntity::new, DecorativeMain.WallClock).build(null)); WallClockBlockEntity = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(DecorativeMain.MOD_ID,"wall_clock_blockentity"), BlockEntityType.Builder.create(WallClockBlockEntity::new, DecorativeMain.WallClock).build(null));
DigitalClockBlockEntity = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(DecorativeMain.MOD_ID,"digital_clock_blockentity"), BlockEntityType.Builder.create(DigitalClockBlockEntity::new, Clocks.RedDigitalClock, Clocks.BlackDigitalClock, Clocks.BlueDigitalClock, Clocks.BrownDigitalClock, Clocks.CyanDigitalClock, Clocks.GrayDigitalClock, Clocks.GreenDigitalClock, Clocks.LightBlueDigitalClock, Clocks.LightGrayDigitalClock, Clocks.LimeDigitalClock, Clocks.MagentaDigitalClock, Clocks.OrangeDigitalClock, Clocks.PinkDigitalClock, Clocks.PurpleDigitalClock, Clocks.WhiteDigitalClock, Clocks.YellowDigitalClock).build(null)); DigitalClockBlockEntity = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(DecorativeMain.MOD_ID,"digital_clock_blockentity"), BlockEntityType.Builder.create(DigitalClockBlockEntity::new, Clocks.RedDigitalClock, Clocks.BlackDigitalClock, Clocks.BlueDigitalClock, Clocks.BrownDigitalClock, Clocks.CyanDigitalClock, Clocks.GrayDigitalClock, Clocks.GreenDigitalClock, Clocks.LightBlueDigitalClock, Clocks.LightGrayDigitalClock, Clocks.LimeDigitalClock, Clocks.MagentaDigitalClock, Clocks.OrangeDigitalClock, Clocks.PinkDigitalClock, Clocks.PurpleDigitalClock, Clocks.WhiteDigitalClock, Clocks.YellowDigitalClock).build(null));
SmokeDetectorBlockEntity = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(DecorativeMain.MOD_ID,"smoke_detector_blockentity"), BlockEntityType.Builder.create(SmokeDetectorBlockEntity::new, DecorativeMain.SmokeDetector).build(null));
} }
} }

View File

@@ -1,7 +1,5 @@
package eu.midnightdust.motschen.decorative.item; package eu.midnightdust.motschen.decorative.item;
import com.google.common.collect.Maps;
import java.util.Map;
import net.minecraft.block.FluidBlock; import net.minecraft.block.FluidBlock;
import net.minecraft.entity.EntityType; import net.minecraft.entity.EntityType;
import net.minecraft.entity.SpawnReason; import net.minecraft.entity.SpawnReason;
@@ -20,13 +18,11 @@ import net.minecraft.world.RaycastContext;
import net.minecraft.world.World; import net.minecraft.world.World;
public class BathTireItem extends Item { public class BathTireItem extends Item {
private static final Map<EntityType<?>, BathTireItem> SPAWN_EGGS = Maps.newIdentityHashMap();
private final EntityType<?> type; private final EntityType<?> type;
public BathTireItem(EntityType<?> type, Item.Settings settings) { public BathTireItem(EntityType<?> type, Item.Settings settings) {
super(settings); super(settings);
this.type = type; this.type = type;
SPAWN_EGGS.put(type, this);
} }
public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand hand) { public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand hand) {

View File

@@ -6,7 +6,6 @@ import net.minecraft.util.registry.Registry;
public class DecorativeSoundEvents { public class DecorativeSoundEvents {
public static final SoundEvent CEILINGFAN_AMBIENT = register("decorative:ceiling_fan.ambient"); public static final SoundEvent CEILINGFAN_AMBIENT = register("decorative:ceiling_fan.ambient");
public static final SoundEvent SMOKE_DETECTOR_BEEP = register("decorative:smoke_detector.beep");
private static SoundEvent register(String id) { private static SoundEvent register(String id) {
return Registry.register(Registry.SOUND_EVENT, id, new SoundEvent(new Identifier(id))); return Registry.register(Registry.SOUND_EVENT, id, new SoundEvent(new Identifier(id)));

View File

@@ -15,10 +15,10 @@
"facing=north,program=creeper": { "model": "decorative:block/old_television_creeper", "uvlock": true, "y": 180 }, "facing=north,program=creeper": { "model": "decorative:block/old_television_creeper", "uvlock": true, "y": 180 },
"facing=east,program=creeper": { "model": "decorative:block/old_television_creeper", "uvlock": true, "y": 270 }, "facing=east,program=creeper": { "model": "decorative:block/old_television_creeper", "uvlock": true, "y": 270 },
"facing=south,program=woodys": { "model": "decorative:block/old_television_woodys", "uvlock": true }, "facing=south,program=crabrave": { "model": "decorative:block/old_television_crabrave", "uvlock": true },
"facing=west,program=woodys": { "model": "decorative:block/old_television_woodys", "uvlock": true, "y": 90 }, "facing=west,program=crabrave": { "model": "decorative:block/old_television_crabrave", "uvlock": true, "y": 90 },
"facing=north,program=woodys": { "model": "decorative:block/old_television_woodys", "uvlock": true, "y": 180 }, "facing=north,program=crabrave": { "model": "decorative:block/old_television_crabrave", "uvlock": true, "y": 180 },
"facing=east,program=woodys": { "model": "decorative:block/old_television_woodys", "uvlock": true, "y": 270 }, "facing=east,program=crabrave": { "model": "decorative:block/old_television_crabrave", "uvlock": true, "y": 270 },
"facing=south,program=tater": { "model": "decorative:block/old_television_tater", "uvlock": true }, "facing=south,program=tater": { "model": "decorative:block/old_television_tater", "uvlock": true },
"facing=west,program=tater": { "model": "decorative:block/old_television_tater", "uvlock": true, "y": 90 }, "facing=west,program=tater": { "model": "decorative:block/old_television_tater", "uvlock": true, "y": 90 },

View File

@@ -0,0 +1,10 @@
{
"variants": {
"": [
{"model": "decorative:block/stone_path"},
{"model": "decorative:block/stone_path", "y": 90},
{"model": "decorative:block/stone_path", "y": 180},
{"model": "decorative:block/stone_path", "y": 270}
]
}
}

View File

@@ -15,10 +15,10 @@
"facing=north,program=creeper": { "model": "decorative:block/television_creeper", "uvlock": true, "y": 180 }, "facing=north,program=creeper": { "model": "decorative:block/television_creeper", "uvlock": true, "y": 180 },
"facing=east,program=creeper": { "model": "decorative:block/television_creeper", "uvlock": true, "y": 270 }, "facing=east,program=creeper": { "model": "decorative:block/television_creeper", "uvlock": true, "y": 270 },
"facing=south,program=woodys": { "model": "decorative:block/television_woodys", "uvlock": true }, "facing=south,program=crabrave": { "model": "decorative:block/television_crabrave", "uvlock": true },
"facing=west,program=woodys": { "model": "decorative:block/television_woodys", "uvlock": true, "y": 90 }, "facing=west,program=crabrave": { "model": "decorative:block/television_crabrave", "uvlock": true, "y": 90 },
"facing=north,program=woodys": { "model": "decorative:block/television_woodys", "uvlock": true, "y": 180 }, "facing=north,program=crabrave": { "model": "decorative:block/television_crabrave", "uvlock": true, "y": 180 },
"facing=east,program=woodys": { "model": "decorative:block/television_woodys", "uvlock": true, "y": 270 }, "facing=east,program=crabrave": { "model": "decorative:block/television_crabrave", "uvlock": true, "y": 270 },
"facing=south,program=tater": { "model": "decorative:block/television_tater", "uvlock": true }, "facing=south,program=tater": { "model": "decorative:block/television_tater", "uvlock": true },
"facing=west,program=tater": { "model": "decorative:block/television_tater", "uvlock": true, "y": 90 }, "facing=west,program=tater": { "model": "decorative:block/television_tater", "uvlock": true, "y": 90 },

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -1,4 +1,8 @@
{ {
// Config //
"text.autoconfig.decorative.title":"Decorative Config",
"text.autoconfig.decorative.option.timeFormat":"Time Format",
// ItemGroups // // ItemGroups //
"itemGroup.decorative.indoor":"Decorative - Indoor", "itemGroup.decorative.indoor":"Decorative - Indoor",
"itemGroup.decorative.traffic":"Decorative - Traffic", "itemGroup.decorative.traffic":"Decorative - Traffic",
@@ -107,5 +111,26 @@
"block.decorative.pool_wall":"Pool Wall", "block.decorative.pool_wall":"Pool Wall",
"block.decorative.springboard":"Springboard", "block.decorative.springboard":"Springboard",
"block.decorative.pool_sprinkler":"Pool Sprinkler", "block.decorative.pool_sprinkler":"Pool Sprinkler",
"block.decorative.shower_head":"Shower Head" "block.decorative.shower_head":"Shower Head",
//* 3.0 - Clock Update *//
"block.decorative.wall_clock":"Wall Clock",
"block.decorative.white_digital_clock":"White Digital Clock",
"block.decorative.orange_digital_clock":"Orange Digital Clock",
"block.decorative.magenta_digital_clock":"Magenta Digital Clock",
"block.decorative.light_blue_digital_clock":"Light Blue Digital Clock",
"block.decorative.yellow_digital_clock":"Yellow Digital Clock",
"block.decorative.lime_digital_clock":"Lime Digital Clock",
"block.decorative.pink_digital_clock":"Pink Digital Clock",
"block.decorative.gray_digital_clock":"Gray Digital Clock",
"block.decorative.light_gray_digital_clock":"Light Gray Digital Clock",
"block.decorative.cyan_digital_clock":"Cyan Digital Clock",
"block.decorative.purple_digital_clock":"Purple Digital Clock",
"block.decorative.blue_digital_clock":"Blue Digital Clock",
"block.decorative.brown_digital_clock":"Brown Digital Clock",
"block.decorative.green_digital_clock":"Green Digital Clock",
"block.decorative.red_digital_clock":"Red Digital Clock",
"block.decorative.black_digital_clock":"Black Digital Clock",
"block.decorative.stone_path":"Stone Path"
} }

View File

@@ -10,7 +10,7 @@
"material": "canvas:emissive_no_diffuse" "material": "canvas:emissive_no_diffuse"
}, },
{ {
"sprite": "decorative:tv/woodys", "sprite": "decorative:tv/crabrave",
"material": "canvas:emissive_no_diffuse" "material": "canvas:emissive_no_diffuse"
}, },
{ {

View File

@@ -10,7 +10,7 @@
"material": "canvas:emissive_no_diffuse" "material": "canvas:emissive_no_diffuse"
}, },
{ {
"sprite": "decorative:tv/woodys", "sprite": "decorative:tv/crabrave",
"material": "canvas:emissive_no_diffuse" "material": "canvas:emissive_no_diffuse"
}, },
{ {

View File

@@ -7,7 +7,7 @@
"3": "block/iron_block", "3": "block/iron_block",
"4": "block/lime_terracotta", "4": "block/lime_terracotta",
"5": "block/light_gray_concrete", "5": "block/light_gray_concrete",
"woodys": "decorative:tv/woodys", "crabrave": "decorative:tv/crabrave",
"particle": "block/black_concrete", "particle": "block/black_concrete",
"tv": "block/black_concrete" "tv": "block/black_concrete"
}, },
@@ -19,7 +19,7 @@
"faces": { "faces": {
"north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"}, "north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"},
"east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"}, "east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"},
"south": {"uv": [0.65, 2, 15.549, 13.15], "texture": "#woodys"}, "south": {"uv": [0.65, 2, 15.549, 13.15], "texture": "#crabrave"},
"west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"}, "west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"},
"up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"}, "up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"},
"down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"} "down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"}

View File

@@ -7,7 +7,7 @@
"3": "block/iron_block", "3": "block/iron_block",
"4": "block/lime_terracotta", "4": "block/lime_terracotta",
"5": "block/light_gray_concrete", "5": "block/light_gray_concrete",
"woodys": "decorative:tv/creeper", "creeper": "decorative:tv/creeper",
"particle": "block/black_concrete", "particle": "block/black_concrete",
"tv": "block/black_concrete" "tv": "block/black_concrete"
}, },
@@ -19,7 +19,7 @@
"faces": { "faces": {
"north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"}, "north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"},
"east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"}, "east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"},
"south": {"uv": [0.65, 2, 15.549, 13.15], "texture": "#woodys"}, "south": {"uv": [0.65, 2, 15.549, 13.15], "texture": "#creeper"},
"west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"}, "west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"},
"up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"}, "up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"},
"down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"} "down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"}

View File

@@ -7,7 +7,7 @@
"3": "block/iron_block", "3": "block/iron_block",
"4": "block/lime_terracotta", "4": "block/lime_terracotta",
"5": "block/light_gray_concrete", "5": "block/light_gray_concrete",
"woodys": "decorative:tv/nyancat", "nyancat": "decorative:tv/nyancat",
"particle": "block/black_concrete", "particle": "block/black_concrete",
"tv": "block/black_concrete" "tv": "block/black_concrete"
}, },
@@ -19,7 +19,7 @@
"faces": { "faces": {
"north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"}, "north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"},
"east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"}, "east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"},
"south": {"uv": [0.65, 2, 15.549, 13.15], "texture": "#woodys"}, "south": {"uv": [0.65, 2, 15.549, 13.15], "texture": "#nyancat"},
"west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"}, "west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"},
"up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"}, "up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"},
"down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"} "down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"}

View File

@@ -7,7 +7,7 @@
"3": "block/iron_block", "3": "block/iron_block",
"4": "block/red_terracotta", "4": "block/red_terracotta",
"5": "block/light_gray_concrete", "5": "block/light_gray_concrete",
"woodys": "decorative:tv/black", "black": "decorative:tv/black",
"particle": "block/black_concrete", "particle": "block/black_concrete",
"tv": "block/black_concrete" "tv": "block/black_concrete"
}, },
@@ -19,7 +19,7 @@
"faces": { "faces": {
"north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"}, "north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"},
"east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"}, "east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"},
"south": {"uv": [0.65, 2, 15.549, 13.15], "texture": "#woodys"}, "south": {"uv": [0.65, 2, 15.549, 13.15], "texture": "#black"},
"west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"}, "west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"},
"up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"}, "up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"},
"down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"} "down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"}

View File

@@ -7,7 +7,7 @@
"3": "block/iron_block", "3": "block/iron_block",
"4": "block/lime_terracotta", "4": "block/lime_terracotta",
"5": "block/light_gray_concrete", "5": "block/light_gray_concrete",
"woodys": "decorative:tv/tater", "tater": "decorative:tv/tater",
"particle": "block/black_concrete", "particle": "block/black_concrete",
"tv": "block/black_concrete" "tv": "block/black_concrete"
}, },
@@ -19,7 +19,7 @@
"faces": { "faces": {
"north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"}, "north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"},
"east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"}, "east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"},
"south": {"uv": [0.65, 2, 15.549, 13.15], "texture": "#woodys"}, "south": {"uv": [0.65, 2, 15.549, 13.15], "texture": "#tater"},
"west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"}, "west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"},
"up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"}, "up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"},
"down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"} "down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"}

View File

@@ -0,0 +1,127 @@
{
"credit": "made by Motschen",
"parent": "block/block",
"textures": {
"0": "block/stone",
"particle": "block/stone"
},
"elements": [
{
"from": [1, 0, 3],
"to": [4, 1, 6],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 11]},
"faces": {
"north": {"uv": [0, 0, 3, 1], "texture": "#0"},
"east": {"uv": [0, 0, 3, 1], "texture": "#0"},
"south": {"uv": [0, 0, 3, 1], "texture": "#0"},
"west": {"uv": [0, 0, 3, 1], "texture": "#0"},
"up": {"uv": [0, 0, 3, 3], "texture": "#0"}
}
},
{
"from": [5, 0, 6],
"to": [8, 1, 9],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 8, 14]},
"faces": {
"north": {"uv": [0, 0, 3, 1], "texture": "#0"},
"east": {"uv": [0, 0, 3, 1], "texture": "#0"},
"south": {"uv": [0, 0, 3, 1], "texture": "#0"},
"west": {"uv": [0, 0, 3, 1], "texture": "#0"},
"up": {"uv": [0, 0, 3, 3], "texture": "#0"}
}
},
{
"from": [12, 0, 11],
"to": [14, 1, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [20, 8, 19]},
"faces": {
"north": {"uv": [0, 0, 2, 1], "texture": "#0"},
"east": {"uv": [0, 0, 3, 1], "texture": "#0"},
"south": {"uv": [0, 0, 2, 1], "texture": "#0"},
"west": {"uv": [0, 0, 3, 1], "texture": "#0"},
"up": {"uv": [0, 0, 2, 3], "texture": "#0"}
}
},
{
"from": [2, 0, 11],
"to": [5, 1, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [10, 8, 19]},
"faces": {
"north": {"uv": [0, 0, 3, 1], "texture": "#0"},
"east": {"uv": [0, 0, 3, 1], "texture": "#0"},
"south": {"uv": [0, 0, 3, 1], "texture": "#0"},
"west": {"uv": [0, 0, 3, 1], "texture": "#0"},
"up": {"uv": [1, 3, 4, 6], "texture": "#0"}
}
},
{
"from": [11, 0, 6],
"to": [13, 1, 8],
"rotation": {"angle": 0, "axis": "y", "origin": [18, 8, 13]},
"faces": {
"north": {"uv": [0, 0, 2, 1], "texture": "#0"},
"east": {"uv": [0, 0, 2, 1], "texture": "#0"},
"south": {"uv": [0, 0, 2, 1], "texture": "#0"},
"west": {"uv": [0, 0, 2, 1], "texture": "#0"},
"up": {"uv": [1, 3, 3, 5], "texture": "#0"}
}
},
{
"from": [5, 0, 9],
"to": [7, 1, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [13, 8, 17]},
"faces": {
"east": {"uv": [0, 0, 1, 1], "texture": "#0"},
"south": {"uv": [0, 0, 2, 1], "texture": "#0"},
"west": {"uv": [0, 0, 1, 1], "texture": "#0"},
"up": {"uv": [0, 0, 2, 1], "texture": "#0"}
}
},
{
"from": [2, 0, 10],
"to": [4, 1, 11],
"rotation": {"angle": 0, "axis": "y", "origin": [10, 8, 18]},
"faces": {
"north": {"uv": [0, 0, 2, 1], "texture": "#0"},
"east": {"uv": [0, 0, 1, 1], "texture": "#0"},
"west": {"uv": [0, 0, 1, 1], "texture": "#0"},
"up": {"uv": [0, 9, 2, 10], "texture": "#0"}
}
},
{
"from": [9, 0, 9],
"to": [11, 1, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [16, 8, 17]},
"faces": {
"north": {"uv": [0, 0, 2, 1], "texture": "#0"},
"east": {"uv": [0, 0, 3, 1], "texture": "#0"},
"south": {"uv": [0, 0, 2, 1], "texture": "#0"},
"west": {"uv": [0, 0, 3, 1], "texture": "#0"},
"up": {"uv": [9, 5, 11, 8], "texture": "#0"}
}
},
{
"from": [9, 0, 2],
"to": [13, 1, 4],
"rotation": {"angle": 0, "axis": "y", "origin": [17, 8, 10]},
"faces": {
"north": {"uv": [0, 0, 4, 1], "texture": "#0"},
"east": {"uv": [0, 0, 2, 1], "texture": "#0"},
"south": {"uv": [0, 0, 4, 1], "texture": "#0"},
"west": {"uv": [0, 0, 2, 1], "texture": "#0"},
"up": {"uv": [0, 0, 4, 2], "texture": "#0"}
}
},
{
"from": [9, 0, 4],
"to": [12, 1, 5],
"rotation": {"angle": 0, "axis": "y", "origin": [17, 8, 12]},
"faces": {
"east": {"uv": [0, 0, 1, 1], "texture": "#0"},
"south": {"uv": [0, 0, 3, 1], "texture": "#0"},
"west": {"uv": [0, 0, 1, 1], "texture": "#0"},
"up": {"uv": [0, 2, 3, 3], "texture": "#0"}
}
}
]
}

View File

@@ -3,7 +3,7 @@
"parent": "block/block", "parent": "block/block",
"ambientocclusion": false, "ambientocclusion": false,
"textures": { "textures": {
"woodys": "decorative:tv/woodys", "crabrave": "decorative:tv/crabrave",
"particle": "block/black_concrete", "particle": "block/black_concrete",
"tv": "block/black_concrete" "tv": "block/black_concrete"
}, },
@@ -62,7 +62,7 @@
"faces": { "faces": {
"north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"}, "north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"},
"east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"}, "east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"},
"south": {"uv": [0, 2, 16, 13.45], "texture": "#woodys"}, "south": {"uv": [0, 2, 16, 13.45], "texture": "#crabrave"},
"west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"}, "west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"},
"up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"}, "up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"},
"down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"} "down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"}

View File

@@ -3,7 +3,7 @@
"parent": "block/block", "parent": "block/block",
"ambientocclusion": false, "ambientocclusion": false,
"textures": { "textures": {
"woodys": "decorative:tv/creeper", "creeper": "decorative:tv/creeper",
"particle": "block/black_concrete", "particle": "block/black_concrete",
"tv": "block/black_concrete" "tv": "block/black_concrete"
}, },
@@ -62,7 +62,7 @@
"faces": { "faces": {
"north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"}, "north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"},
"east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"}, "east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"},
"south": {"uv": [0, 2, 16, 13.45], "texture": "#woodys"}, "south": {"uv": [0, 2, 16, 13.45], "texture": "#creeper"},
"west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"}, "west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"},
"up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"}, "up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"},
"down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"} "down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"}

View File

@@ -3,7 +3,7 @@
"parent": "block/block", "parent": "block/block",
"ambientocclusion": false, "ambientocclusion": false,
"textures": { "textures": {
"woodys": "decorative:tv/nyancat", "nyancat": "decorative:tv/nyancat",
"particle": "block/black_concrete", "particle": "block/black_concrete",
"tv": "block/black_concrete" "tv": "block/black_concrete"
}, },
@@ -62,7 +62,7 @@
"faces": { "faces": {
"north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"}, "north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"},
"east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"}, "east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"},
"south": {"uv": [0, 2, 16, 13.45], "texture": "#woodys"}, "south": {"uv": [0, 2, 16, 13.45], "texture": "#nyancat"},
"west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"}, "west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"},
"up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"}, "up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"},
"down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"} "down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"}

View File

@@ -3,7 +3,7 @@
"parent": "block/block", "parent": "block/block",
"ambientocclusion": false, "ambientocclusion": false,
"textures": { "textures": {
"woodys": "decorative:tv/black", "black": "decorative:tv/black",
"particle": "block/black_concrete", "particle": "block/black_concrete",
"tv": "block/black_concrete" "tv": "block/black_concrete"
}, },
@@ -62,7 +62,7 @@
"faces": { "faces": {
"north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"}, "north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"},
"east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"}, "east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"},
"south": {"uv": [0, 2, 16, 13.45], "texture": "#woodys"}, "south": {"uv": [0, 2, 16, 13.45], "texture": "#black"},
"west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"}, "west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"},
"up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"}, "up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"},
"down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"} "down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"}

View File

@@ -3,7 +3,7 @@
"parent": "block/block", "parent": "block/block",
"ambientocclusion": false, "ambientocclusion": false,
"textures": { "textures": {
"woodys": "decorative:tv/tater", "tater": "decorative:tv/tater",
"particle": "block/black_concrete", "particle": "block/black_concrete",
"tv": "block/black_concrete" "tv": "block/black_concrete"
}, },
@@ -62,7 +62,7 @@
"faces": { "faces": {
"north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"}, "north": {"uv": [0, 1.6, 16, 14.4], "texture": "#tv"},
"east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"}, "east": {"uv": [0, 1.6, 3.2, 14.4], "texture": "#tv"},
"south": {"uv": [0, 2, 16, 13.45], "texture": "#woodys"}, "south": {"uv": [0, 2, 16, 13.45], "texture": "#tater"},
"west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"}, "west": {"uv": [12.8, 1.6, 16, 14.4], "texture": "#tv"},
"up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"}, "up": {"uv": [0, 1.6, 16, 4.8], "rotation": 180, "texture": "#tv"},
"down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"} "down": {"uv": [0, 11.2, 16, 14.4], "rotation": 180, "texture": "#tv"}

View File

@@ -0,0 +1,3 @@
{
"parent": "decorative:block/stone_path"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 MiB

View File

@@ -0,0 +1,18 @@
{
"name": "Black Digital Clock",
"icon": "decorative:black_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:black_digital_clock",
"title": "Black Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:black_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Blue Digital Clock",
"icon": "decorative:blue_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:blue_digital_clock",
"title": "Blue Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:blue_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Brown Digital Clock",
"icon": "decorative:brown_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:brown_digital_clock",
"title": "Brown Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:brown_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Cyan Digital Clock",
"icon": "decorative:cyan_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:cyan_digital_clock",
"title": "Cyan Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:cyan_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Gray Digital Clock",
"icon": "decorative:gray_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:gray_digital_clock",
"title": "Gray Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:gray_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Green Digital Clock",
"icon": "decorative:green_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:green_digital_clock",
"title": "Green Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:green_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Light Blue Digital Clock",
"icon": "decorative:light_blue_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:light_blue_digital_clock",
"title": "Light Blue Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:light_blue_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Light Gray Digital Clock",
"icon": "decorative:light_gray_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:light_gray_digital_clock",
"title": "Light Gray Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:light_gray_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Magenta Digital Clock",
"icon": "decorative:magenta_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:magenta_digital_clock",
"title": "Magenta Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:magenta_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Orange Digital Clock",
"icon": "decorative:orange_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:orange_digital_clock",
"title": "Orange Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:orange_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Pink Digital Clock",
"icon": "decorative:pink_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:pink_digital_clock",
"title": "Pink Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:pink_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Purple Digital Clock",
"icon": "decorative:purple_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:purple_digital_clock",
"title": "Purple Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:purple_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Red Digital Clock",
"icon": "decorative:red_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:red_digital_clock",
"title": "Red Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:red_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "White Digital Clock",
"icon": "decorative:white_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:white_digital_clock",
"title": "White Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:white_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Yellow Digital Clock",
"icon": "decorative:yellow_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:yellow_digital_clock",
"title": "Yellow Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:yellow_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Lime Digital Clock",
"icon": "decorative:lime_digital_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:lime_digital_clock",
"title": "Lime Digital Clock",
"link_recipe": false,
"text": "A digital clock that shows the real life time at your location."
},
{
"type": "crafting",
"recipe": "decorative:lime_digital_clock"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Stone Path",
"icon": "decorative:stone_path",
"category": "decorative:garden",
"pages": [
{
"type": "spotlight",
"item": "decorative:stone_path",
"title": "Stone Path",
"link_recipe": false,
"text": "A nice little Stone Path for your garden."
},
{
"type": "crafting",
"recipe": "decorative:stone_path"
}
]
}

View File

@@ -0,0 +1,18 @@
{
"name": "Wall Clock",
"icon": "decorative:wall_clock",
"category": "decorative:indoor",
"pages": [
{
"type": "spotlight",
"item": "decorative:wall_clock",
"title": "Wall Clock",
"link_recipe": false,
"text": "Tick, tock, tick, tock..."
},
{
"type": "crafting",
"recipe": "decorative:wall_clock"
}
]
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:black_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:black_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:blue_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:blue_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:brown_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:brown_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:cyan_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:cyan_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:gray_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:gray_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:green_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:green_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:light_blue_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:light_blue_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:light_gray_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:light_gray_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:lime_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:lime_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:magenta_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:magenta_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:orange_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:orange_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:pink_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:pink_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:purple_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:purple_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:red_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:red_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"##",
"GG",
"##"
],
"key": {
"#": {
"item": "minecraft:white_concrete"
},
"G": {
"item": "minecraft:glass_pane"
}
},
"result": {
"item": "decorative:sliding_door",
"count": 1
}
}

View File

@@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"##",
"##"
],
"key": {
"#": {
"item": "minecraft:stone_button"
}
},
"result": {
"item": "decorative:stone_path",
"count": 1
}
}

View File

@@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
" # ",
"#C#",
" # "
],
"key": {
"#": {
"item": "minecraft:quartz_block"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:wall_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:white_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:white_digital_clock",
"count": 1
}
}

View File

@@ -0,0 +1,22 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B#",
"#C#"
],
"key": {
"#": {
"item": "minecraft:yellow_concrete"
},
"B": {
"item": "minecraft:black_concrete"
},
"C": {
"item": "minecraft:clock"
}
},
"result": {
"item": "decorative:yellow_digital_clock",
"count": 1
}
}

View File

@@ -4,13 +4,14 @@
"version": "${version}", "version": "${version}",
"name": "Decorative", "name": "Decorative",
"description": "Adds many cool new decorative items with 3d models!", "description": "Adds many cool new decorative items with 3d models and animations!",
"authors": [ "authors": [
"Motschen", "Motschen",
"TeamMidnightDust" "TeamMidnightDust"
], ],
"contact": { "contact": {
"homepage": "https://www.midnightdust.eu/", "homepage": "https://www.midnightdust.eu/",
"sources": "https://github.com/TeamMidnightDust/Decorative",
"issues": "https://github.com/TeamMidnightDust/Decorative/issues" "issues": "https://github.com/TeamMidnightDust/Decorative/issues"
}, },
@@ -35,11 +36,18 @@
], ],
"depends": { "depends": {
"fabricloader": ">=0.7.2", "fabric": "*",
"fabric": "*" "autoconfig1u": "*",
"cloth-config2": "*"
}, },
"suggests": { "suggests": {
"dishes": "*",
"patchouli": "*" "patchouli": "*"
},
"custom": {
"modmenu": {
"links": {
"modmenu.discord": "https://discord.gg/jAGnWYHm3r"
}
}
} }
} }