Updata to 1.4.0
|
|
@ -1,3 +1,2 @@
|
|||
# Modern Life Patch
|
||||
A patch was made due to too many flaws in the original author's graphic design.
|
||||
因为原作者的美工槽点太多,而做的一个补丁。
|
||||
|
|
@ -2,12 +2,14 @@ buildscript {
|
|||
repositories {
|
||||
// These repositories are only for Gradle plugins, put any other repositories in the repository block further below
|
||||
maven { url = 'https://maven.minecraftforge.net' }
|
||||
maven { url = 'https://maven.parchmentmc.org' }
|
||||
mavenCentral()
|
||||
// maven { url = 'https://maven.parchmentmc.org' } // Add this line
|
||||
|
||||
}
|
||||
dependencies {
|
||||
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
|
||||
classpath 'org.parchmentmc:librarian:1.+'
|
||||
classpath 'org.spongepowered:mixingradle:0.7.32'
|
||||
}
|
||||
}
|
||||
|
|
@ -19,7 +21,7 @@ plugins {
|
|||
}
|
||||
apply plugin: 'net.minecraftforge.gradle'
|
||||
apply plugin: 'org.spongepowered.mixin'
|
||||
|
||||
apply plugin: 'org.parchmentmc.librarian.forgegradle'
|
||||
|
||||
version = project.property('mod.version')
|
||||
group = project.property('mod.group') // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||
|
|
@ -43,7 +45,7 @@ minecraft {
|
|||
//
|
||||
// Use non-default mappings at your own risk. They may not always work.
|
||||
// Simply re-run your setup task after changing the mappings to update your workspace.
|
||||
mappings channel: 'official', version: '1.18.2'
|
||||
mappings channel: 'parchment', version: '2022.11.06-1.18.2'
|
||||
// mappings channel: 'parchment', version: '2022.11.06-1.18.2'
|
||||
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
|
||||
|
||||
|
|
|
|||
BIN
lib/modernlife-1.18.2-1.54.jar
Normal file
|
|
@ -36,7 +36,7 @@ public class MotorboatModel<T extends Entity> extends EntityModel<T> {
|
|||
public static LayerDefinition createBodyLayer() {
|
||||
MeshDefinition meshdefinition = new MeshDefinition();
|
||||
PartDefinition partdefinition = meshdefinition.getRoot();
|
||||
PartDefinition hull_back_and_bottom = partdefinition.addOrReplaceChild("hull_back_and_bottom", CubeListBuilder.create().texOffs(0, 15).addBox(11.2365f, -8.0f, -10.5719f, 7.0f, 1.0f, 8.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -8.0f, -2.5719f, 7.0f, 1.0f, 5.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -8.0f, 2.4281f, 7.0f, 1.0f, 8.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -3.0f, 3.4281f, 9.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(9.2365f, -3.0f, 3.4281f, 9.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(-15.7635f, -3.0f, -9.5719f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(-6.7635f, -3.0f, -9.5719f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(2.2365f, -3.0f, -9.5719f, 7.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(-6.7635f, -3.0f, -2.5719f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(1.2365f, -3.0f, -2.5719f, 8.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(-6.7635f, -3.0f, 4.4281f, 8.0f, 1.0f, 4.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(1.2365f, -3.0f, 4.4281f, 8.0f, 1.0f, 4.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(9.2365f, -3.0f, -9.5719f, 9.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -3.0f, -2.5719f, 9.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(9.2365f, -3.0f, -3.5719f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-14.7635f, -2.0f, -7.5719f, 33.0f, 1.0f, 15.0f, new CubeDeformation(0.0f)).texOffs(0, 19).addBox(2.2365f, -1.0f, -5.5719f, 16.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 19).addBox(2.2365f, -1.0f, 0.4281f, 16.0f, 1.0f, 5.0f, new CubeDeformation(0.0f)).texOffs(0, 19).addBox(-13.7635f, -1.0f, -5.5719f, 16.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 19).addBox(-13.7635f, -1.0f, 0.4281f, 16.0f, 1.0f, 5.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -4.0f, -10.9636f, 16.0f, 1.0f, 11.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -4.0f, 0.0364f, 16.0f, 1.0f, 11.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(9.2365f, -4.0f, 4.0364f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(0.2365f, -4.0f, 4.0364f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(0.2365f, -4.0f, -2.9636f, 18.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(0.2365f, -4.0f, -10.9636f, 10.0f, 1.0f, 8.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(10.2365f, -4.0f, -10.9636f, 8.0f, 1.0f, 8.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -5.0f, -11.5719f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -5.0f, -2.5719f, 7.0f, 1.0f, 5.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -5.0f, 2.4281f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -6.0f, -12.5719f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -6.0f, -3.5719f, 7.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -6.0f, 3.4281f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -7.0f, -11.5719f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -7.0f, -2.5719f, 7.0f, 1.0f, 5.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -7.0f, 2.4281f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -7.0f, -11.5719f, 1.0f, 3.0f, 12.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -7.0f, 0.4281f, 1.0f, 3.0f, 11.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-16.7635f, -7.0f, 0.4281f, 1.0f, 3.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-16.7635f, -7.0f, -9.5719f, 1.0f, 3.0f, 10.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-17.7635f, -7.0f, -8.5719f, 1.0f, 3.0f, 8.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-17.7635f, -7.0f, -0.5719f, 1.0f, 3.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 17).addBox(-18.7635f, -7.0f, 0.4281f, 1.0f, 3.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-18.7635f, -7.0f, -7.5719f, 1.0f, 3.0f, 8.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-19.7635f, -7.0f, -6.5719f, 1.0f, 3.0f, 13.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-20.7635f, -7.0f, -5.5719f, 1.0f, 3.0f, 11.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-23.2635f, -8.0f, -4.5f, 1.0f, 5.0f, 9.0f, new CubeDeformation(0.0f)), PartPose.offset(0.0f, 24.0f, 0.0f));
|
||||
PartDefinition hull_back_and_bottom = partdefinition.addOrReplaceChild("hull_back_and_bottom", CubeListBuilder.create().texOffs(0, 15).addBox(11.2365f, -8.0f, -10.5719f, 7.0f, 1.0f, 8.0f, new Cu beDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -8.0f, -2.5719f, 7.0f, 1.0f, 5.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -8.0f, 2.4281f, 7.0f, 1.0f, 8.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -3.0f, 3.4281f, 9.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(9.2365f, -3.0f, 3.4281f, 9.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(-15.7635f, -3.0f, -9.5719f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(-6.7635f, -3.0f, -9.5719f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(2.2365f, -3.0f, -9.5719f, 7.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(-6.7635f, -3.0f, -2.5719f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(1.2365f, -3.0f, -2.5719f, 8.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(-6.7635f, -3.0f, 4.4281f, 8.0f, 1.0f, 4.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(1.2365f, -3.0f, 4.4281f, 8.0f, 1.0f, 4.0f, new CubeDeformation(0.0f)).texOffs(0, 24).addBox(9.2365f, -3.0f, -9.5719f, 9.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -3.0f, -2.5719f, 9.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(9.2365f, -3.0f, -3.5719f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-14.7635f, -2.0f, -7.5719f, 33.0f, 1.0f, 15.0f, new CubeDeformation(0.0f)).texOffs(0, 19).addBox(2.2365f, -1.0f, -5.5719f, 16.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 19).addBox(2.2365f, -1.0f, 0.4281f, 16.0f, 1.0f, 5.0f, new CubeDeformation(0.0f)).texOffs(0, 19).addBox(-13.7635f, -1.0f, -5.5719f, 16.0f, 1.0f, 6.0f, new CubeDeformation(0.0f)).texOffs(0, 19).addBox(-13.7635f, -1.0f, 0.4281f, 16.0f, 1.0f, 5.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -4.0f, -10.9636f, 16.0f, 1.0f, 11.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -4.0f, 0.0364f, 16.0f, 1.0f, 11.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(9.2365f, -4.0f, 4.0364f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(0.2365f, -4.0f, 4.0364f, 9.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(0.2365f, -4.0f, -2.9636f, 18.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(0.2365f, -4.0f, -10.9636f, 10.0f, 1.0f, 8.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(10.2365f, -4.0f, -10.9636f, 8.0f, 1.0f, 8.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -5.0f, -11.5719f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -5.0f, -2.5719f, 7.0f, 1.0f, 5.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -5.0f, 2.4281f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -6.0f, -12.5719f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -6.0f, -3.5719f, 7.0f, 1.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -6.0f, 3.4281f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -7.0f, -11.5719f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -7.0f, -2.5719f, 7.0f, 1.0f, 5.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(11.2365f, -7.0f, 2.4281f, 7.0f, 1.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -7.0f, -11.5719f, 1.0f, 3.0f, 12.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-15.7635f, -7.0f, 0.4281f, 1.0f, 3.0f, 11.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-16.7635f, -7.0f, 0.4281f, 1.0f, 3.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-16.7635f, -7.0f, -9.5719f, 1.0f, 3.0f, 10.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-17.7635f, -7.0f, -8.5719f, 1.0f, 3.0f, 8.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-17.7635f, -7.0f, -0.5719f, 1.0f, 3.0f, 9.0f, new CubeDeformation(0.0f)).texOffs(0, 17).addBox(-18.7635f, -7.0f, 0.4281f, 1.0f, 3.0f, 7.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-18.7635f, -7.0f, -7.5719f, 1.0f, 3.0f, 8.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-19.7635f, -7.0f, -6.5719f, 1.0f, 3.0f, 13.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-20.7635f, -7.0f, -5.5719f, 1.0f, 3.0f, 11.0f, new CubeDeformation(0.0f)).texOffs(0, 15).addBox(-23.2635f, -8.0f, -4.5f, 1.0f, 5.0f, 9.0f, new CubeDeformation(0.0f)), PartPose.offset(0.0f, 24.0f, 0.0f));
|
||||
hull_back_and_bottom.addOrReplaceChild("cube_r1", CubeListBuilder.create().texOffs(0, 15).addBox(3.5f, -2.5f, 3.0f, 1.0f, 5.0f, 11.0f, new CubeDeformation(0.0f)), PartPose.offsetAndRotation(-21.7635f, -5.5f, 0.1651f, -3.1416f, 0.7854f, 3.1416f));
|
||||
hull_back_and_bottom.addOrReplaceChild("cube_r2", CubeListBuilder.create().texOffs(0, 15).addBox(-4.5f, -2.5f, 2.0f, 1.0f, 5.0f, 12.0f, new CubeDeformation(0.0f)), PartPose.offsetAndRotation(-21.7635f, -5.5f, 0.1651f, 0.0f, 0.7854f, 0.0f));
|
||||
PartDefinition tail = partdefinition.addOrReplaceChild("tail", CubeListBuilder.create(), PartPose.offset(0.0f, 24.0f, 0.0f));
|
||||
|
|
|
|||
|
|
@ -1,2 +1,4 @@
|
|||
38eeb75da0923717638f16acc5c7068aecba156e assets/modernlifepatch/lang/en_us.json
|
||||
bab598e47751847b120edd8d3418781229ec5fd6 assets/modernlifepatch/lang/zh_cn.json
|
||||
80cb85eae418087ea09e8b0d34289b3faf7f0faf assets/modernlifepatch/models/item/mirror.json
|
||||
ddaaed0180f28afb8dfa1c4270e9872360aca2a7 assets/modernlifepatch/models/item/tall_mirror.json
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "modernlifepatch:item/mirror_item"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "modernlifepatch:item/tall_mirror_item"
|
||||
}
|
||||
}
|
||||
|
|
@ -14,6 +14,7 @@ import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|||
import net.minecraftforge.fml.ModList;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import net.minecraftforge.forgespi.locating.IModFile;
|
||||
import net.minecraftforge.resource.PathResourcePack;
|
||||
|
||||
|
|
@ -42,6 +43,12 @@ public abstract class EventHandler {
|
|||
}
|
||||
@Mod.EventBusSubscriber(modid = ModernLifePatch.MOD_ID, bus = net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus.MOD)
|
||||
public static class ModBoth extends EventHandler {
|
||||
@SubscribeEvent
|
||||
public static void onCommonSetup(FMLCommonSetupEvent event) {
|
||||
event.enqueueWork(() -> {
|
||||
|
||||
});
|
||||
}
|
||||
@SubscribeEvent
|
||||
public static void onRegisterResourcePack(AddPackFindersEvent event) {
|
||||
IModFile modFile = ModList.get().getModFileById(ModernLifePatch.MOD_ID).getFile();
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@ package com.r3944realms.modernlifepatch;
|
|||
import com.dairymoose.modernlife.core.CustomBlocks;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraftforge.common.Tags;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class MLPCreativeTab extends CreativeModeTab {
|
||||
|
|
@ -12,6 +15,7 @@ public class MLPCreativeTab extends CreativeModeTab {
|
|||
|
||||
@Override
|
||||
public @NotNull ItemStack makeIcon() {
|
||||
if(!ModernLifePatch.isModernLifeLoaded) return Blocks.BARRIER.asItem().getDefaultInstance();
|
||||
return CustomBlocks.ITEM_CAMERA.get().getDefaultInstance();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,16 @@
|
|||
package com.r3944realms.modernlifepatch;
|
||||
|
||||
import com.r3944realms.modernlifepatch.config.MLPConfig;
|
||||
import com.r3944realms.modernlifepatch.content.blocks.ModBlocks;
|
||||
import com.r3944realms.modernlifepatch.content.blocks.entities.ModBlockEntityType;
|
||||
import com.r3944realms.modernlifepatch.content.items.ModItems;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.fml.ModList;
|
||||
import net.minecraftforge.fml.ModLoadingContext;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.config.ModConfig;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.fml.loading.FMLEnvironment;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
|
@ -9,10 +19,17 @@ import static com.r3944realms.modernlifepatch.ModernLifePatch.MOD_ID;
|
|||
@Mod(value = MOD_ID)
|
||||
public class ModernLifePatch {
|
||||
public static final String MOD_ID = "modernlifepatch";
|
||||
public final static boolean isModernLifeLoaded = ModList.get().isLoaded("modernlife");
|
||||
public static final MLPCreativeTab MLP_CREATIVE_TAB = new MLPCreativeTab(MOD_ID);
|
||||
public static final Logger logger = LoggerFactory.getLogger(ModernLifePatch.class);
|
||||
public ModernLifePatch() {
|
||||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
ModItems.register(modEventBus);
|
||||
ModBlocks.register(modEventBus);
|
||||
ModBlockEntityType.register(modEventBus);
|
||||
logger.info("ModernLifePatch loaded");
|
||||
if(FMLEnvironment.dist.isDedicatedServer())
|
||||
ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, MLPConfig.spec);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ public class CreativeScreenEvents {
|
|||
|
||||
@SubscribeEvent
|
||||
public void onScreenInit(ScreenEvent.InitScreenEvent.Post event) {
|
||||
if(!ModernLifePatch.isModernLifeLoaded) return;
|
||||
if(event.getScreen() instanceof CreativeModeInventoryScreen creativeScreen) {
|
||||
if(this.filters == null) {
|
||||
//初始化过滤器
|
||||
|
|
@ -116,8 +117,8 @@ public class CreativeScreenEvents {
|
|||
}
|
||||
}
|
||||
@SubscribeEvent
|
||||
public void onScreenClick(ScreenEvent.MouseClickedEvent.Pre event)
|
||||
{
|
||||
public void onScreenClick(ScreenEvent.MouseClickedEvent.Pre event) {
|
||||
if(!ModernLifePatch.isModernLifeLoaded) return;
|
||||
if(event.getButton() != GLFW.GLFW_MOUSE_BUTTON_LEFT)
|
||||
return;
|
||||
|
||||
|
|
@ -137,6 +138,7 @@ public class CreativeScreenEvents {
|
|||
}
|
||||
@SubscribeEvent
|
||||
public void onScreenDrawPre(ScreenEvent.DrawScreenEvent.Pre event) {
|
||||
if(!ModernLifePatch.isModernLifeLoaded) return;
|
||||
if(event.getScreen() instanceof CreativeModeInventoryScreen creativeModeInventoryScreen) {
|
||||
if(creativeModeInventoryScreen.getSelectedTab() == ModernLifePatch.MLP_CREATIVE_TAB.getId()) {
|
||||
if(!this.viewThisCreativeTab) {
|
||||
|
|
@ -151,6 +153,7 @@ public class CreativeScreenEvents {
|
|||
|
||||
@SubscribeEvent
|
||||
public void OnScreenDrawPost(ScreenEvent.DrawScreenEvent.Post event) {
|
||||
if (!ModernLifePatch.isModernLifeLoaded) return;
|
||||
if(event.getScreen() instanceof CreativeModeInventoryScreen creativeModeInventoryScreen) {
|
||||
this.guiCenterX = creativeModeInventoryScreen.getGuiLeft();
|
||||
this.guiCenterY = creativeModeInventoryScreen.getGuiTop();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
package com.r3944realms.modernlifepatch.client.renderer.blockentity;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.r3944realms.modernlifepatch.content.blocks.entities.type.mirror.MirrorBlockEntity;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class MirrorRenderer implements BlockEntityRenderer<MirrorBlockEntity> {
|
||||
@Override
|
||||
public void render(@NotNull MirrorBlockEntity pBlockEntity, float pPartialTick, @NotNull PoseStack pPoseStack, @NotNull MultiBufferSource pBufferSource, int pPackedLight, int pPackedOverlay) {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package com.r3944realms.modernlifepatch.config;
|
||||
|
||||
import net.minecraftforge.common.ForgeConfigSpec;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
public class MLPConfig {
|
||||
public static final ForgeConfigSpec spec;
|
||||
public static final MLPConfig INSTANCE;
|
||||
public final ForgeConfigSpec.BooleanValue enableWhitelistByName;
|
||||
public MLPConfig(ForgeConfigSpec.Builder builder) {
|
||||
builder.push("personal Server Configuration (@Deprecated)");
|
||||
this.enableWhitelistByName =builder.comment("Enable whitelist by name").define("enableWhitelistByName", false);
|
||||
builder.pop();
|
||||
|
||||
}
|
||||
static {
|
||||
Pair<MLPConfig, ForgeConfigSpec> configure = new ForgeConfigSpec.Builder().configure(MLPConfig::new);
|
||||
spec = configure.getRight();
|
||||
INSTANCE = configure.getLeft();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
package com.r3944realms.modernlifepatch.content.blocks;
|
||||
|
||||
import com.r3944realms.modernlifepatch.ModernLifePatch;
|
||||
import com.r3944realms.modernlifepatch.content.blocks.type.mirror.MirrorBlock;
|
||||
import com.r3944realms.modernlifepatch.content.blocks.type.mirror.MirrorPart;
|
||||
import com.r3944realms.modernlifepatch.content.items.ModItems;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
public class ModBlocks {
|
||||
public static final DeferredRegister<Block> BLOCKS
|
||||
= DeferredRegister.create(ForgeRegistries.BLOCKS, ModernLifePatch.MOD_ID);
|
||||
public static final RegistryObject<MirrorBlock> MIRROR = BLOCKS.register("mirror",
|
||||
() -> new MirrorBlock(BlockBehaviour.Properties.copy(Blocks.GLASS), MirrorPart.MirrorType.COMMON_MIRROR));
|
||||
public static final RegistryObject<MirrorBlock> TALL_MIRROR = BLOCKS.register("tall_mirror",
|
||||
() -> new MirrorBlock(BlockBehaviour.Properties.copy(Blocks.GLASS), MirrorPart.MirrorType.TELL_MIRROR));
|
||||
@SuppressWarnings("UnusedReturnValue")
|
||||
public static <T extends Block> RegistryObject<BlockItem> registerBlockItem(String name , RegistryObject<T> block){
|
||||
return ModItems.ITEMS.register(name,() -> new BlockItem(block.get(),new Item.Properties()));
|
||||
}
|
||||
public static void register(IEventBus bus) {
|
||||
BLOCKS.register(bus);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package com.r3944realms.modernlifepatch.content.blocks.blockstate;
|
||||
|
||||
import com.r3944realms.modernlifepatch.content.blocks.type.mirror.MirrorPart;
|
||||
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
||||
|
||||
public class ModBlockStateProperties {
|
||||
public final static EnumProperty<MirrorPart> MIRROR_PART = EnumProperty.create("mirror_part", MirrorPart.class);
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.r3944realms.modernlifepatch.content.blocks.entities;
|
||||
|
||||
import com.r3944realms.modernlifepatch.ModernLifePatch;
|
||||
import com.r3944realms.modernlifepatch.content.blocks.ModBlocks;
|
||||
import com.r3944realms.modernlifepatch.content.blocks.entities.type.mirror.MirrorBlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public class ModBlockEntityType {
|
||||
public static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITY_TYPE
|
||||
= DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, ModernLifePatch.MOD_ID);
|
||||
@SuppressWarnings("DataFlowIssue")
|
||||
public static final RegistryObject<BlockEntityType<?>> MIRROR
|
||||
= BLOCK_ENTITY_TYPE.register("mirror", () -> new BlockEntityType<>(MirrorBlockEntity::new, Set.of(ModBlocks.MIRROR.get()), null));
|
||||
public static void register(IEventBus bus) {
|
||||
BLOCK_ENTITY_TYPE.register(bus);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.r3944realms.modernlifepatch.content.blocks.entities.type.mirror;
|
||||
|
||||
import com.r3944realms.modernlifepatch.content.blocks.entities.ModBlockEntityType;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class MirrorBlockEntity extends BlockEntity {
|
||||
public MirrorBlockEntity(BlockPos pPos, BlockState pBlockState) {
|
||||
super(ModBlockEntityType.MIRROR.get(), pPos, pBlockState);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
package com.r3944realms.modernlifepatch.content.blocks.type.mirror;
|
||||
|
||||
import com.r3944realms.modernlifepatch.content.blocks.blockstate.ModBlockStateProperties;
|
||||
import com.r3944realms.modernlifepatch.content.blocks.entities.type.mirror.MirrorBlockEntity;
|
||||
import com.r3944realms.modernlifepatch.content.blocks.type.mirror.shape.IMirrorShape;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelAccessor;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.*;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition;
|
||||
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
||||
public class MirrorBlock extends HorizontalDirectionalBlock implements EntityBlock {
|
||||
public static final EnumProperty<MirrorPart> PART = ModBlockStateProperties.MIRROR_PART;
|
||||
public final MirrorPart.MirrorType mirrorType;
|
||||
|
||||
public MirrorBlock(Properties pProperties, MirrorPart.MirrorType mirrorType) {
|
||||
super(pProperties);
|
||||
MirrorPart mirrorPart = null;
|
||||
this.mirrorType = mirrorType;
|
||||
switch (mirrorType) {
|
||||
case COMMON_MIRROR -> mirrorPart = MirrorPart.SINGLE;
|
||||
case TELL_MIRROR -> mirrorPart = MirrorPart.FOOT;
|
||||
case LARGE_MIRROR -> mirrorPart = MirrorPart.FOOT_LEFT;
|
||||
case MASSIVE_MIRROR -> mirrorPart = MirrorPart.F11;
|
||||
}
|
||||
this.registerDefaultState(this.stateDefinition.any().setValue(PART, mirrorPart));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public BlockState getStateForPlacement(@NotNull BlockPlaceContext pContext) {
|
||||
return switch (mirrorType) {
|
||||
case COMMON_MIRROR -> this.defaultBlockState().setValue(FACING, pContext.getHorizontalDirection());
|
||||
case TELL_MIRROR -> {
|
||||
BlockPos above = pContext.getClickedPos().above();
|
||||
Level level = pContext.getLevel();
|
||||
yield level.getBlockState(above).canBeReplaced(pContext) ? this.defaultBlockState().setValue(FACING, pContext.getHorizontalDirection()) : null;
|
||||
}
|
||||
case LARGE_MIRROR -> super.getStateForPlacement(pContext);
|
||||
case MASSIVE_MIRROR -> super.getStateForPlacement(pContext);
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull VoxelShape getShape(@NotNull BlockState pState, @NotNull BlockGetter pLevel, @NotNull BlockPos pPos, @NotNull CollisionContext pContext) {
|
||||
MirrorPart part = pState.getValue(PART);
|
||||
Direction direction = pState.getValue(FACING);
|
||||
return IMirrorShape.getShapeInstanceByPart(part).getShapeByPart(direction, part);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull InteractionResult use(@NotNull BlockState pState, @NotNull Level pLevel, @NotNull BlockPos pPos, @NotNull Player pPlayer, @NotNull InteractionHand pHand, @NotNull BlockHitResult pHit) {
|
||||
if (pLevel.isClientSide) {
|
||||
return InteractionResult.CONSUME;
|
||||
} else {
|
||||
return InteractionResult.PASS;
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public BlockEntity newBlockEntity(@NotNull BlockPos pPos, @NotNull BlockState pState) {
|
||||
return new MirrorBlockEntity(pPos, pState);
|
||||
}
|
||||
|
||||
private boolean canAttachTo(BlockGetter pBlockReader, BlockPos pPos, Direction direction) {
|
||||
BlockState blockState = pBlockReader.getBlockState(pPos);
|
||||
return blockState.isFaceSturdy(pBlockReader, pPos, direction);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSurvive(@NotNull BlockState pState, @NotNull LevelReader pLevel, @NotNull BlockPos pPos) {
|
||||
Direction direction = pState.getValue(FACING);
|
||||
return this.canAttachTo(pLevel, pPos.relative(direction), direction);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public @NotNull BlockState updateShape(@NotNull BlockState pState, @NotNull Direction pDirection, @NotNull BlockState pNeighborState, @NotNull LevelAccessor pLevel, @NotNull BlockPos pCurrentPos, @NotNull BlockPos pNeighborPos) {
|
||||
return switch (mirrorType) {
|
||||
case COMMON_MIRROR -> (pDirection == pState.getValue(FACING) && !pState.canSurvive(pLevel, pCurrentPos)) ?
|
||||
Blocks.AIR.defaultBlockState() : super.updateShape(pState, pDirection, pNeighborState, pLevel, pCurrentPos, pNeighborPos);
|
||||
case TELL_MIRROR -> {
|
||||
MirrorPart part = pState.getValue(PART);
|
||||
yield pNeighborState.is(this) && pNeighborState.getValue(PART) != part ? pState : Blocks.AIR.defaultBlockState();
|
||||
}
|
||||
case LARGE_MIRROR -> pLevel.getBlockState(pNeighborPos);
|
||||
case MASSIVE_MIRROR -> pLevel.getBlockState(pCurrentPos);
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPlacedBy(@NotNull Level pLevel, @NotNull BlockPos pPos, @NotNull BlockState pState, @Nullable LivingEntity pPlacer, @NotNull ItemStack pStack) {
|
||||
super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack);
|
||||
if(!pLevel.isClientSide) {
|
||||
switch (mirrorType) {
|
||||
case COMMON_MIRROR -> {
|
||||
//NOOP
|
||||
}
|
||||
case TELL_MIRROR -> {
|
||||
BlockPos blockpos = pPos.above();
|
||||
pLevel.setBlock(blockpos, pState.setValue(PART, MirrorPart.HEAD), 3);
|
||||
pLevel.blockUpdated(pPos, Blocks.AIR);
|
||||
pState.updateNeighbourShapes(pLevel, pPos, 3);
|
||||
}
|
||||
case LARGE_MIRROR -> {
|
||||
BlockPos headLeft = pPos.above();
|
||||
pLevel.setBlock(headLeft, pState.setValue(PART, MirrorPart.HEAD_LEFT), 3);
|
||||
|
||||
}
|
||||
case MASSIVE_MIRROR -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> pBuilder) {
|
||||
pBuilder.add(FACING, PART);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
package com.r3944realms.modernlifepatch.content.blocks.type.mirror;
|
||||
|
||||
import net.minecraft.util.StringRepresentable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public enum MirrorPart implements StringRepresentable {
|
||||
SINGLE("mirror", MirrorType.COMMON_MIRROR),
|
||||
HEAD("mirror_head", MirrorType.TELL_MIRROR),
|
||||
FOOT("mirror_foot", MirrorType.TELL_MIRROR),
|
||||
HEAD_LEFT("mirror_head_left", MirrorType.LARGE_MIRROR),
|
||||
HEAD_RIGHT("mirror_head_right", MirrorType.LARGE_MIRROR),
|
||||
FOOT_LEFT("mirror_foot_left", MirrorType.LARGE_MIRROR),
|
||||
FOOT_RIGHT("mirror_foot_right", MirrorType.LARGE_MIRROR),
|
||||
H00("mirror_h00", MirrorType.MASSIVE_MIRROR),
|
||||
H01("mirror_h01", MirrorType.MASSIVE_MIRROR),
|
||||
H02("mirror_h02", MirrorType.MASSIVE_MIRROR),
|
||||
F10("mirror_f10", MirrorType.MASSIVE_MIRROR),
|
||||
F11("mirror_f11", MirrorType.MASSIVE_MIRROR),
|
||||
F12("mirror_f12", MirrorType.MASSIVE_MIRROR)
|
||||
;
|
||||
final String name;
|
||||
final MirrorType type;
|
||||
|
||||
MirrorPart(String name, MirrorType type) {
|
||||
this.name = name;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public MirrorType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getSerializedName() {
|
||||
return this.name;
|
||||
}
|
||||
public enum MirrorType {
|
||||
COMMON_MIRROR,
|
||||
TELL_MIRROR,
|
||||
LARGE_MIRROR,
|
||||
MASSIVE_MIRROR
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package com.r3944realms.modernlifepatch.content.blocks.type.mirror.shape;
|
||||
|
||||
import com.r3944realms.modernlifepatch.content.blocks.type.mirror.MirrorPart;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface IMirrorShape {
|
||||
MirrorShape mirrorShape = new MirrorShape();
|
||||
TallMirrorShape tallMirrorShape = new TallMirrorShape();
|
||||
LargeMirrorShape largeMirrorShape = new LargeMirrorShape();
|
||||
MassiveMirrorShape massiveMirrorShape = new MassiveMirrorShape();
|
||||
VoxelShape getDefaultShape(Direction direction);
|
||||
VoxelShape getShapeByPart(Direction direction, MirrorPart part);
|
||||
MirrorPart.MirrorType getMirrorType();
|
||||
default boolean testIsRightPart(@NotNull MirrorPart part) {
|
||||
return part.getType() == getMirrorType();
|
||||
}
|
||||
@Contract(pure = true)
|
||||
static IMirrorShape getShapeInstanceByPart(@NotNull MirrorPart part) {
|
||||
return switch (part) {
|
||||
case SINGLE -> mirrorShape;
|
||||
case HEAD, FOOT -> tallMirrorShape;
|
||||
case HEAD_LEFT, HEAD_RIGHT, FOOT_LEFT, FOOT_RIGHT -> largeMirrorShape;
|
||||
case H00, H01, H02, F10, F11, F12 -> massiveMirrorShape;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
package com.r3944realms.modernlifepatch.content.blocks.type.mirror.shape;
|
||||
|
||||
import com.r3944realms.modernlifepatch.content.blocks.type.mirror.MirrorPart;
|
||||
import com.r3944realms.modernlifepatch.utils.ShapeUtil;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.phys.shapes.BooleanOp;
|
||||
import net.minecraft.world.phys.shapes.Shapes;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class LargeMirrorShape implements IMirrorShape {
|
||||
public static final VoxelShape FOOT_LEFT_SHAPE_NORTH = Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
FOOT_LEFT_SHAPE_SOUTH, FOOT_LEFT_SHAPE_WEST, FOOT_LEFT_SHAPE_EAST,
|
||||
FOOT_RIGHT_SHAPE_NORTH = Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
FOOT_RIGHT_SHAPE_SOUTH, FOOT_RIGHT_SHAPE_WEST, FOOT_RIGHT_SHAPE_EAST,
|
||||
HEAD_LEFT_SHAPE_NORTH = Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
HEAD_LEFT_SHAPE_SOUTH, HEAD_LEFT_SHAPE_WEST, HEAD_LEFT_SHAPE_EAST,
|
||||
HEAD_RIGHT_SHAPE_NORTH = Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
HEAD_RIGHT_SHAPE_SOUTH, HEAD_RIGHT_SHAPE_WEST, HEAD_RIGHT_SHAPE_EAST
|
||||
;
|
||||
static {
|
||||
FOOT_LEFT_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(FOOT_LEFT_SHAPE_NORTH);
|
||||
FOOT_LEFT_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(FOOT_LEFT_SHAPE_EAST);
|
||||
FOOT_LEFT_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(FOOT_LEFT_SHAPE_SOUTH);
|
||||
|
||||
FOOT_RIGHT_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(FOOT_RIGHT_SHAPE_NORTH);
|
||||
FOOT_RIGHT_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(FOOT_RIGHT_SHAPE_EAST);
|
||||
FOOT_RIGHT_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(FOOT_RIGHT_SHAPE_SOUTH);
|
||||
|
||||
HEAD_LEFT_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(HEAD_LEFT_SHAPE_NORTH);
|
||||
HEAD_LEFT_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(HEAD_LEFT_SHAPE_EAST);
|
||||
HEAD_LEFT_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(HEAD_LEFT_SHAPE_SOUTH);
|
||||
|
||||
HEAD_RIGHT_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(HEAD_RIGHT_SHAPE_NORTH);
|
||||
HEAD_RIGHT_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(HEAD_RIGHT_SHAPE_EAST);
|
||||
HEAD_RIGHT_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(HEAD_RIGHT_SHAPE_SOUTH);
|
||||
}
|
||||
@Override
|
||||
public VoxelShape getDefaultShape(Direction direction) {
|
||||
return (VoxelShape) switch (direction) {
|
||||
case DOWN, UP -> Stream.empty();
|
||||
case NORTH -> FOOT_LEFT_SHAPE_NORTH;
|
||||
case SOUTH -> FOOT_LEFT_SHAPE_SOUTH;
|
||||
case WEST -> FOOT_LEFT_SHAPE_WEST;
|
||||
case EAST -> FOOT_LEFT_SHAPE_EAST;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getShapeByPart(Direction direction, MirrorPart part) {
|
||||
if (!testIsRightPart(part)) throw new IllegalArgumentException("Not a right part in mirror shape");
|
||||
if (part == MirrorPart.FOOT_LEFT) return getDefaultShape(direction);
|
||||
else if (part == MirrorPart.FOOT_RIGHT) return (VoxelShape) switch (direction) {
|
||||
case DOWN, UP -> Stream.empty();
|
||||
case NORTH -> FOOT_RIGHT_SHAPE_NORTH;
|
||||
case SOUTH -> FOOT_RIGHT_SHAPE_SOUTH;
|
||||
case WEST -> FOOT_RIGHT_SHAPE_WEST;
|
||||
case EAST -> FOOT_RIGHT_SHAPE_EAST;
|
||||
};
|
||||
else if (part == MirrorPart.HEAD_LEFT) return (VoxelShape) switch (direction) {
|
||||
case DOWN, UP -> Stream.empty();
|
||||
case NORTH -> HEAD_LEFT_SHAPE_NORTH;
|
||||
case SOUTH -> HEAD_LEFT_SHAPE_SOUTH;
|
||||
case WEST -> HEAD_LEFT_SHAPE_WEST;
|
||||
case EAST -> HEAD_LEFT_SHAPE_EAST;
|
||||
};
|
||||
else return (VoxelShape) switch (direction) {
|
||||
case DOWN, UP -> Stream.empty();
|
||||
case NORTH -> HEAD_RIGHT_SHAPE_NORTH;
|
||||
case SOUTH -> HEAD_RIGHT_SHAPE_SOUTH;
|
||||
case WEST -> HEAD_RIGHT_SHAPE_WEST;
|
||||
case EAST -> HEAD_RIGHT_SHAPE_EAST;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public MirrorPart.MirrorType getMirrorType() {
|
||||
return MirrorPart.MirrorType.LARGE_MIRROR;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
package com.r3944realms.modernlifepatch.content.blocks.type.mirror.shape;
|
||||
|
||||
import com.r3944realms.modernlifepatch.content.blocks.type.mirror.MirrorPart;
|
||||
import com.r3944realms.modernlifepatch.utils.ShapeUtil;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class MassiveMirrorShape implements IMirrorShape {
|
||||
public static final VoxelShape F11_SHAPE_NORTH = Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
F11_SHAPE_SOUTH, F11_SHAPE_EAST, F11_SHAPE_WEST,
|
||||
F10_SHAPE_NORTH =Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
F10_SHAPE_SOUTH, F10_SHAPE_WEST, F10_SHAPE_EAST,
|
||||
F12_SHAPE_NORTH = Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
F12_SHAPE_SOUTH, F12_SHAPE_WEST, F12_SHAPE_EAST,
|
||||
H01_SHAPE_NORTH = Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
H01_SHAPE_SOUTH, H01_SHAPE_WEST, H01_SHAPE_EAST,
|
||||
H00_SHAPE_NORTH = Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
H00_SHAPE_SOUTH, H00_SHAPE_WEST, H00_SHAPE_EAST,
|
||||
H02_SHAPE_NORTH = Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
H02_SHAPE_SOUTH, H02_SHAPE_WEST, H02_SHAPE_EAST;
|
||||
static {
|
||||
F11_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(F11_SHAPE_NORTH);
|
||||
F11_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(F11_SHAPE_EAST);
|
||||
F11_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(F11_SHAPE_SOUTH);
|
||||
|
||||
F10_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(F10_SHAPE_NORTH);
|
||||
F10_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(F10_SHAPE_EAST);
|
||||
F10_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(F10_SHAPE_SOUTH);
|
||||
|
||||
F12_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(F12_SHAPE_NORTH);
|
||||
F12_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(F12_SHAPE_EAST);
|
||||
F12_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(F12_SHAPE_SOUTH);
|
||||
|
||||
H01_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(H01_SHAPE_NORTH);
|
||||
H01_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(H01_SHAPE_EAST);
|
||||
H01_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(H01_SHAPE_SOUTH);
|
||||
|
||||
H00_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(H00_SHAPE_NORTH);
|
||||
H00_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(H00_SHAPE_EAST);
|
||||
H00_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(H00_SHAPE_SOUTH);
|
||||
|
||||
H02_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(H02_SHAPE_NORTH);
|
||||
H02_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(H02_SHAPE_EAST);
|
||||
H02_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(H02_SHAPE_SOUTH);
|
||||
}
|
||||
@Override
|
||||
public VoxelShape getDefaultShape(Direction direction) {
|
||||
return (VoxelShape) switch (direction) {
|
||||
case DOWN, UP -> Stream.empty();
|
||||
case NORTH -> F11_SHAPE_NORTH;
|
||||
case SOUTH -> F11_SHAPE_SOUTH;
|
||||
case WEST -> F11_SHAPE_WEST;
|
||||
case EAST -> F11_SHAPE_EAST;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getShapeByPart(Direction direction, MirrorPart part) {
|
||||
if (!testIsRightPart(part)) throw new IllegalArgumentException("Not a right part in mirror shape");
|
||||
return switch (part) {
|
||||
case H00 -> N_S_W_E(direction, H00_SHAPE_NORTH, H00_SHAPE_SOUTH, H00_SHAPE_WEST, H00_SHAPE_EAST);
|
||||
case H01 -> N_S_W_E(direction, H01_SHAPE_NORTH, H01_SHAPE_SOUTH, H01_SHAPE_WEST, H01_SHAPE_EAST);
|
||||
case H02 -> N_S_W_E(direction, H02_SHAPE_NORTH, H02_SHAPE_SOUTH, H02_SHAPE_WEST, H02_SHAPE_EAST);
|
||||
case F10 -> N_S_W_E(direction, F10_SHAPE_NORTH, F10_SHAPE_SOUTH, F10_SHAPE_WEST, F10_SHAPE_EAST);
|
||||
case F11 -> N_S_W_E(direction, F11_SHAPE_NORTH, F11_SHAPE_SOUTH, F11_SHAPE_WEST, F11_SHAPE_EAST);
|
||||
case F12 -> N_S_W_E(direction, F12_SHAPE_NORTH, F12_SHAPE_SOUTH, F12_SHAPE_WEST, F12_SHAPE_EAST);
|
||||
default -> throw new IllegalStateException("Unexpected value: " + part);
|
||||
};
|
||||
}
|
||||
private VoxelShape N_S_W_E(Direction direction, VoxelShape N, VoxelShape S, VoxelShape E, VoxelShape W) {
|
||||
return (VoxelShape) switch (direction) {
|
||||
case DOWN, UP -> Stream.empty();
|
||||
case NORTH -> N;
|
||||
case SOUTH -> S;
|
||||
case WEST -> W;
|
||||
case EAST -> E;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public MirrorPart.MirrorType getMirrorType() {
|
||||
return MirrorPart.MirrorType.MASSIVE_MIRROR;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package com.r3944realms.modernlifepatch.content.blocks.type.mirror.shape;
|
||||
|
||||
import com.r3944realms.modernlifepatch.content.blocks.type.mirror.MirrorPart;
|
||||
import com.r3944realms.modernlifepatch.utils.ShapeUtil;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class MirrorShape implements IMirrorShape{
|
||||
public static final VoxelShape SHAPE_NORTH = Block.box(0, 0, 0.099, 16, 16, 1.099), SHAPE_SOUTH, SHAPE_EAST, SHAPE_WEST;
|
||||
static {
|
||||
SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(SHAPE_NORTH);
|
||||
SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(SHAPE_EAST);
|
||||
SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(SHAPE_SOUTH);
|
||||
}
|
||||
@Override
|
||||
public VoxelShape getDefaultShape(Direction direction) {
|
||||
return (VoxelShape) switch (direction) {
|
||||
case DOWN, UP -> Stream.empty();
|
||||
case NORTH -> SHAPE_NORTH;
|
||||
case SOUTH -> SHAPE_SOUTH;
|
||||
case WEST -> SHAPE_WEST;
|
||||
case EAST -> SHAPE_EAST;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getShapeByPart(Direction direction, MirrorPart part) {
|
||||
if (!testIsRightPart(part)) throw new IllegalArgumentException("Not a right part in mirror shape");
|
||||
return getDefaultShape(direction);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MirrorPart.MirrorType getMirrorType() {
|
||||
return MirrorPart.MirrorType.COMMON_MIRROR;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
package com.r3944realms.modernlifepatch.content.blocks.type.mirror.shape;
|
||||
|
||||
import com.r3944realms.modernlifepatch.content.blocks.type.mirror.MirrorPart;
|
||||
import com.r3944realms.modernlifepatch.utils.ShapeUtil;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class TallMirrorShape implements IMirrorShape {
|
||||
public static final VoxelShape FOOT_SHAPE_NORTH = Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
FOOT_SHAPE_SOUTH , FOOT_SHAPE_EAST, FOOT_SHAPE_WEST,
|
||||
HEAD_SHAPE_NORTH= Block.box(0, 0, 0, 16, 16, 1.1),
|
||||
HEAD_SHAPE_SOUTH, HEAD_SHAPE_EAST, HEAD_SHAPE_WEST;
|
||||
static {
|
||||
FOOT_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(FOOT_SHAPE_NORTH);
|
||||
FOOT_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(FOOT_SHAPE_EAST);
|
||||
FOOT_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(FOOT_SHAPE_SOUTH);
|
||||
|
||||
HEAD_SHAPE_EAST = ShapeUtil.RotateVoxelShapeClockwise(HEAD_SHAPE_NORTH);
|
||||
HEAD_SHAPE_SOUTH = ShapeUtil.RotateVoxelShapeClockwise(HEAD_SHAPE_EAST);
|
||||
HEAD_SHAPE_WEST = ShapeUtil.RotateVoxelShapeClockwise(HEAD_SHAPE_SOUTH);
|
||||
}
|
||||
@Override
|
||||
public VoxelShape getDefaultShape(Direction direction) {
|
||||
return (VoxelShape) switch (direction) {
|
||||
case DOWN, UP -> Stream.empty();
|
||||
case NORTH -> FOOT_SHAPE_NORTH;
|
||||
case SOUTH -> FOOT_SHAPE_SOUTH;
|
||||
case WEST -> FOOT_SHAPE_WEST;
|
||||
case EAST -> FOOT_SHAPE_EAST;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getShapeByPart(Direction direction, MirrorPart part) {
|
||||
if (!testIsRightPart(part)) throw new IllegalArgumentException("Not a right part in mirror shape");
|
||||
if (part == MirrorPart.FOOT) return getDefaultShape(direction);
|
||||
else return (VoxelShape) switch (direction) {
|
||||
case DOWN, UP -> Stream.empty();
|
||||
case NORTH -> HEAD_SHAPE_NORTH;
|
||||
case SOUTH -> HEAD_SHAPE_SOUTH;
|
||||
case WEST -> HEAD_SHAPE_WEST;
|
||||
case EAST -> HEAD_SHAPE_EAST;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public MirrorPart.MirrorType getMirrorType() {
|
||||
return MirrorPart.MirrorType.TELL_MIRROR;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package com.r3944realms.modernlifepatch.content.items;
|
||||
|
||||
import com.r3944realms.modernlifepatch.ModernLifePatch;
|
||||
import com.r3944realms.modernlifepatch.content.blocks.ModBlocks;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
public class ModItems {
|
||||
public static final DeferredRegister<Item> ITEMS
|
||||
= DeferredRegister.create(ForgeRegistries.ITEMS, ModernLifePatch.MOD_ID);
|
||||
public static final RegistryObject<BlockItem> MIRROR_ITEM = ModBlocks.registerBlockItem("mirror", ModBlocks.MIRROR);
|
||||
public static final RegistryObject<BlockItem> TALL_MIRROR_ITEM = ModBlocks.registerBlockItem("tall_mirror", ModBlocks.TALL_MIRROR);
|
||||
public static void register(IEventBus bus) {
|
||||
ITEMS.register(bus);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +1,9 @@
|
|||
package com.r3944realms.modernlifepatch.datagen;
|
||||
|
||||
import com.r3944realms.modernlifepatch.datagen.provider.ModBlockTagProvider;
|
||||
import com.r3944realms.modernlifepatch.datagen.provider.ModItemTagProvider;
|
||||
import com.r3944realms.modernlifepatch.datagen.provider.ModLanguageProvider;
|
||||
import com.r3944realms.modernlifepatch.datagen.provider.*;
|
||||
import com.r3944realms.modernlifepatch.utils.Enum.LanguageEnum;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent;
|
||||
|
|
@ -16,10 +15,13 @@ public class DataGeneratorHandler {
|
|||
@SubscribeEvent
|
||||
public static void generatorDataEvent(GatherDataEvent event) {
|
||||
DataGenerator generator = event.getGenerator();
|
||||
ModBlockTagProvider modBlockTagProvider = new ModBlockTagProvider(generator, event.getExistingFileHelper());
|
||||
generator.addProvider(new ModLanguageProvider(generator, MOD_ID, LanguageEnum.English));
|
||||
generator.addProvider(new ModLanguageProvider(generator, MOD_ID, LanguageEnum.SimpleChinese));
|
||||
ExistingFileHelper existingFileHelper = event.getExistingFileHelper();
|
||||
ModBlockTagProvider modBlockTagProvider = new ModBlockTagProvider(generator, existingFileHelper);
|
||||
generator.addProvider(new ModLanguageProvider(generator, LanguageEnum.English));
|
||||
generator.addProvider(new ModLanguageProvider(generator, LanguageEnum.SimpleChinese));
|
||||
generator.addProvider(new ModItemModelProvider(generator, existingFileHelper));
|
||||
generator.addProvider(new ModBlockModelProvider(generator, existingFileHelper));
|
||||
generator.addProvider(modBlockTagProvider);
|
||||
generator.addProvider(new ModItemTagProvider(generator, modBlockTagProvider,event.getExistingFileHelper()));
|
||||
generator.addProvider(new ModItemTagProvider(generator, modBlockTagProvider, existingFileHelper));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
package com.r3944realms.modernlifepatch.datagen.provider;
|
||||
|
||||
import com.r3944realms.modernlifepatch.ModernLifePatch;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraftforge.client.model.generators.BlockModelBuilder;
|
||||
import net.minecraftforge.client.model.generators.BlockStateProvider;
|
||||
import net.minecraftforge.client.model.generators.ModelProvider;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public class ModBlockModelProvider extends BlockStateProvider {
|
||||
public ModBlockModelProvider(DataGenerator generator, ExistingFileHelper existingFileHelper) {
|
||||
super(generator, ModernLifePatch.MOD_ID, existingFileHelper);
|
||||
}
|
||||
|
||||
|
||||
public void registerStatesAndModels(Block block) {
|
||||
this.simpleBlock(block, this.cubeAll(block));
|
||||
}
|
||||
public ResourceLocation blockTextureSuffix(Block block,String suffix) {
|
||||
ResourceLocation name = key(block);
|
||||
return new ResourceLocation(name.getNamespace(), ModelProvider.BLOCK_FOLDER + "/" + name.getPath() + suffix);
|
||||
}
|
||||
private ResourceLocation key(Block block) {
|
||||
return ForgeRegistries.BLOCKS.getKey(block);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerStatesAndModels() {
|
||||
|
||||
}
|
||||
|
||||
public void generateJasmineBlockState(Block block) {
|
||||
BlockModelBuilder model = models().cubeAll(name(block), blockTexture(block));
|
||||
simpleBlock(block,model);
|
||||
}
|
||||
public String name(Block block) {
|
||||
return key(block).getPath();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package com.r3944realms.modernlifepatch.datagen.provider;
|
||||
|
||||
import com.r3944realms.modernlifepatch.ModernLifePatch;
|
||||
import com.r3944realms.modernlifepatch.content.items.ModItems;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraftforge.client.model.generators.ItemModelProvider;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class ModItemModelProvider extends ItemModelProvider {
|
||||
public static final String GENERATED = "item/generated";
|
||||
public ModItemModelProvider(DataGenerator generator, ExistingFileHelper existingFileHelper) {
|
||||
super(generator, ModernLifePatch.MOD_ID, existingFileHelper);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerModels() {
|
||||
itemGeneratedModel(ModItems.MIRROR_ITEM.get(), new ResourceLocation(ModernLifePatch.MOD_ID, "item/mirror_item"));
|
||||
itemGeneratedModel(ModItems.TALL_MIRROR_ITEM.get(), new ResourceLocation(ModernLifePatch.MOD_ID, "item/tall_mirror_item"));
|
||||
}
|
||||
|
||||
public void itemGeneratedModel(Item item, ResourceLocation texture) {
|
||||
withExistingParent(itemName(item), GENERATED).texture("layer0", texture);
|
||||
}
|
||||
|
||||
private String itemName(Item item) {
|
||||
return Objects.requireNonNull(ForgeRegistries.ITEMS.getKey(item)).getPath();
|
||||
}
|
||||
|
||||
public ResourceLocation resourceItem(String path) {
|
||||
return new ResourceLocation(ModernLifePatch.MOD_ID, "item/" + path);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.r3944realms.modernlifepatch.datagen.provider;
|
||||
|
||||
import com.r3944realms.modernlifepatch.ModernLifePatch;
|
||||
import com.r3944realms.modernlifepatch.datagen.lang.ModLangKeyValue;
|
||||
import com.r3944realms.modernlifepatch.utils.Enum.LanguageEnum;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
|
|
@ -14,8 +15,8 @@ public class ModLanguageProvider extends LanguageProvider {
|
|||
private final LanguageEnum Language;
|
||||
private final Map<String, String> LanKeyMap;
|
||||
private static final List<String> objects = new ArrayList<>();
|
||||
public ModLanguageProvider(DataGenerator dataGenerator, String modId, LanguageEnum Lan) {
|
||||
super(dataGenerator, modId, Lan.local);
|
||||
public ModLanguageProvider(DataGenerator dataGenerator, LanguageEnum Lan) {
|
||||
super(dataGenerator, ModernLifePatch.MOD_ID, Lan.local);
|
||||
this.Language = Lan;
|
||||
LanKeyMap = new HashMap<>();
|
||||
init();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
package com.r3944realms.modernlifepatch.mixin.block.common;
|
||||
|
||||
import com.dairymoose.modernlife.blocks.CeilingFanBlock;
|
||||
import com.r3944realms.modernlifepatch.datagen.lang.ModLangKeyValue;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mixin(CeilingFanBlock.class)
|
||||
public class MixinCeilingFan {
|
||||
@Inject(method = {"appendHoverText"}, at= @At("HEAD"), cancellable = true)
|
||||
public void appendHoverText(ItemStack itemStack, BlockGetter blockReader, List<Component> list, TooltipFlag tooltipFlag, CallbackInfo ci) {
|
||||
list.add(new TranslatableComponent(ModLangKeyValue.NEED_RED_STONE_POWER_HOVER.getKey()));
|
||||
ci.cancel();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,9 @@
|
|||
package com.r3944realms.modernlifepatch.mixin.item;
|
||||
|
||||
import com.dairymoose.modernlife.items.CameraItem;
|
||||
import com.dairymoose.modernlife.util.CanvasData;
|
||||
import com.mojang.blaze3d.platform.NativeImage;
|
||||
import com.r3944realms.modernlifepatch.ModernLifePatch;
|
||||
import com.r3944realms.modernlifepatch.datagen.lang.ModLangKeyValue;
|
||||
import net.minecraft.nbt.ListTag;
|
||||
import net.minecraft.nbt.Tag;
|
||||
|
|
@ -11,14 +14,74 @@ import net.minecraft.world.item.ItemStack;
|
|||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.level.Level;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mixin(CameraItem.class)
|
||||
public class MixinCamera {
|
||||
public abstract class MixinCamera {
|
||||
|
||||
@Unique
|
||||
private static int modernLifePatch$toInternalRgbFormat(int nativeRgb) {
|
||||
int r = nativeRgb & 255;
|
||||
int g = (nativeRgb & '\uff00') >> 8;
|
||||
int b = (nativeRgb & 16711680) >> 16;
|
||||
return r << 16 | g << 8 | b;
|
||||
}
|
||||
@Inject(method = {"getAverageRgbAt"}, at = @At("HEAD"), remap = false, cancellable = true)
|
||||
private static void getAverageRgbAt(NativeImage img, int x, int y, float pixelSampleWidth, float pixelSampleHeight, CallbackInfoReturnable<Integer> cir) {
|
||||
try {
|
||||
int destX = (int) ((float) x * pixelSampleWidth);
|
||||
int destY = (int) ((float) y * pixelSampleHeight);
|
||||
int rSum = 0;
|
||||
int gSum = 0;
|
||||
int bSum = 0;
|
||||
int iterations = 0;
|
||||
int hStart = (int) (-pixelSampleHeight / 2.0F);
|
||||
int hEnd = (int) (pixelSampleHeight / 2.0F);
|
||||
int wStart = (int) (-pixelSampleWidth / 2.0F);
|
||||
int wEnd = (int) (pixelSampleWidth / 2.0F);
|
||||
ModernLifePatch.logger.info("[ModernLifePatch.MixinCamera] pixelSampleHeight: {} , pixelSampleWidth: {}", pixelSampleHeight, pixelSampleWidth);
|
||||
if (hStart == hEnd) {
|
||||
hStart = 0;
|
||||
hEnd = 1;
|
||||
wStart = 0;
|
||||
wEnd = 1;
|
||||
}
|
||||
|
||||
int h;
|
||||
int w;
|
||||
int finalX;
|
||||
ModernLifePatch.logger.info("[ModernLifePatch.MixinCamera] hEnd: {} , wEnd: {}", hEnd, wEnd);
|
||||
for (h = hStart; h < hEnd; ++h) {
|
||||
for (w = wStart; w < wEnd; ++w) {
|
||||
finalX = destX + w;
|
||||
int finalY = destY + h;
|
||||
finalX = Math.max(finalX, 0);
|
||||
finalY = Math.max(finalY, 0);
|
||||
finalX = Math.min(finalX, img.getWidth() - 1);
|
||||
finalY = Math.min(finalY, img.getHeight() - 1);
|
||||
int rgb = modernLifePatch$toInternalRgbFormat(img.getPixelRGBA(finalX, finalY));
|
||||
rSum += CanvasData.getRValue(rgb);
|
||||
gSum += CanvasData.getGValue(rgb);
|
||||
bSum += CanvasData.getBValue(rgb);
|
||||
++iterations;
|
||||
}
|
||||
}
|
||||
ModernLifePatch.logger.info("[ModernLifePatch.MixinCamera] rSum: {} , gSum: {}, bSum: {}", rSum, gSum, bSum);
|
||||
ModernLifePatch.logger.info("[ModernLifePatch.MixinCamera] iterations: {} ", iterations);
|
||||
h = rSum / iterations;
|
||||
w = gSum / iterations;
|
||||
finalX = bSum / iterations;
|
||||
cir.setReturnValue(h << 16 | w << 8 | finalX);
|
||||
} catch(ArrayIndexOutOfBoundsException e) {
|
||||
cir.setReturnValue(0xffffffff);
|
||||
}
|
||||
}
|
||||
@Inject(method = {"appendHoverText"}, at= @At("HEAD"), cancellable = true)
|
||||
public void appendHoverText(ItemStack itemStack, Level world, List<Component> text, TooltipFlag flag, CallbackInfo ci) {
|
||||
int photoCount = 0;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
package com.r3944realms.modernlifepatch.utils;
|
||||
|
||||
import net.minecraft.world.phys.shapes.Shapes;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public final class ShapeUtil {
|
||||
public static void initializeByNorth(VoxelShape north, VoxelShape east, VoxelShape south, VoxelShape west) {
|
||||
east = ShapeUtil.RotateVoxelShapeClockwise(north);
|
||||
south = ShapeUtil.RotateVoxelShapeClockwise(east);
|
||||
west = ShapeUtil.RotateVoxelShapeClockwise(south);
|
||||
}
|
||||
public static VoxelShape RotateVoxelShapeClockwise(VoxelShape in) {
|
||||
final List<VoxelShape> generatedShapes = new ArrayList<>();
|
||||
in.forAllBoxes((arg0, arg1, arg2, arg3, arg4, arg5) -> {
|
||||
VoxelShape shape = Shapes.box(1.0 - arg5, arg1, arg0, 1.0 - arg2, arg4, arg3);
|
||||
generatedShapes.add(shape);
|
||||
});
|
||||
if (generatedShapes.isEmpty()) {
|
||||
return Shapes.block();
|
||||
} else {
|
||||
VoxelShape out = generatedShapes.get(0);
|
||||
|
||||
for(int i = 1; i < generatedShapes.size(); ++i) {
|
||||
VoxelShape shape = generatedShapes.get(i);
|
||||
out = Shapes.or(out, shape);
|
||||
}
|
||||
|
||||
out.optimize();
|
||||
return out;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north,mirror_part=mirror_head_left": {
|
||||
"model": "modernlifepatch:block/large_mirror_top_left"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_head_left": {
|
||||
"model": "modernlifepatch:block/large_mirror_top_left",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_head_left": {
|
||||
"model": "modernlifepatch:block/large_mirror_top_left",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_head_left": {
|
||||
"model": "modernlifepatch:block/large_mirror_top_left",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,mirror_part=mirror_head_right": {
|
||||
"model": "modernlifepatch:block/large_mirror_top_right"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_head_right": {
|
||||
"model": "modernlifepatch:block/large_mirror_top_right",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_head_right": {
|
||||
"model": "modernlifepatch:block/large_mirror_top_right",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_head_right": {
|
||||
"model": "modernlifepatch:block/large_mirror_top_right",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,mirror_part=mirror_foot_left": {
|
||||
"model": "modernlifepatch:block/large_mirror_bottom_left"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_foot_left": {
|
||||
"model": "modernlifepatch:block/large_mirror_bottom_left",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_foot_left": {
|
||||
"model": "modernlifepatch:block/large_mirror_bottom_left",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_foot_left": {
|
||||
"model": "modernlifepatch:block/large_mirror_bottom_left",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,mirror_part=mirror_foot_right": {
|
||||
"model": "modernlifepatch:block/large_mirror_bottom_right"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_foot_right": {
|
||||
"model": "modernlifepatch:block/large_mirror_bottom_right",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_foot_right": {
|
||||
"model": "modernlifepatch:block/large_mirror_bottom_right",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_foot_right": {
|
||||
"model": "modernlifepatch:block/large_mirror_bottom_right",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north,mirror_part=mirror_h00": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_left"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_h00": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_left",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_h00": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_left",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_h00": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_left",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,mirror_part=mirror_h01": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_middle"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_h01": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_middle",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_h01": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_middle",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_h01": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_middle",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,mirror_part=mirror_h02": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_right"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_h02": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_right",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_h02": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_right",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_h02": {
|
||||
"model": "modernlifepatch:block/massive_mirror_top_right",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,mirror_part=mirror_f10": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_left"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_f10": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_left",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_f10": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_left",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_f10": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_left",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,mirror_part=mirror_f11": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_middle"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_f11": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_middle",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_f11": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_middle",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_f11": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_middle",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,mirror_part=mirror_f12": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_right"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_f12": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_right",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_f12": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_right",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_f12": {
|
||||
"model": "modernlifepatch:block/massive_mirror_bottom_right",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north,mirror_part=mirror": {
|
||||
"model": "modernlifepatch:block/mirror"
|
||||
},
|
||||
"facing=south,mirror_part=mirror": {
|
||||
"model": "modernlifepatch:block/mirror",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror": {
|
||||
"model": "modernlifepatch:block/mirror",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror": {
|
||||
"model": "modernlifepatch:block/mirror",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north,mirror_part=mirror_head": {
|
||||
"model": "modernlifepatch:block/tall_mirror_top"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_head": {
|
||||
"model": "modernlifepatch:block/tall_mirror_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_head": {
|
||||
"model": "modernlifepatch:block/tall_mirror_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_head": {
|
||||
"model": "modernlifepatch:block/tall_mirror_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north,mirror_part=mirror_foot": {
|
||||
"model": "modernlifepatch:block/tall_mirror_bottom"
|
||||
},
|
||||
"facing=south,mirror_part=mirror_foot": {
|
||||
"model": "modernlifepatch:block/tall_mirror_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,mirror_part=mirror_foot": {
|
||||
"model": "modernlifepatch:block/tall_mirror_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,mirror_part=mirror_foot": {
|
||||
"model": "modernlifepatch:block/tall_mirror_bottom",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"25": "modernlifepatch:block/large_mirror",
|
||||
"particle": "modernlifepatch:block/large_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [7.5, 4, 8, 8], "texture": "#25"},
|
||||
"east": {"uv": [0.25, 4, 0.5, 8], "texture": "#25"},
|
||||
"south": {"uv": [0, 4, 0.5, 8], "texture": "#25"},
|
||||
"west": {"uv": [0, 4, 0.25, 8], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 0.5, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [0, 7.75, 0.5, 8], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 0],
|
||||
"to": [16, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -30, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 7.5, 7.5, 8], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 7.5, 4, 8], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [0.5, 7.75, 4, 7.5], "texture": "#25"},
|
||||
"down": {"uv": [0.5, 7.75, 4, 8], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 2, 0],
|
||||
"to": [16, 16, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -28, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 4, 15.5, 7.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 8, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 4, 4, 7.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 8, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 8, 1], "texture": "#25"},
|
||||
"down": {"uv": [0, 0, 8, 1], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 2, 0.999],
|
||||
"to": [6, 6, 0.999],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [2, 2, -1.001]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 8, 0, 9], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 0, 3], "texture": "#25"},
|
||||
"south": {"uv": [0, 8, 1, 9], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 0, 3], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 3, 0], "texture": "#25"},
|
||||
"down": {"uv": [0, 0, 3, 0], "texture": "#25"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 2],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.25, -3.75, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 13, 7]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -4, -3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "large_mirror_bottom_left",
|
||||
"origin": [-6, -14, -1.001],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"25": "modernlifepatch:block/large_mirror",
|
||||
"particle": "modernlifepatch:block/large_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 4, 7.5, 8], "texture": "#25"},
|
||||
"east": {"uv": [0.25, 4, 0, 8], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 4, 0, 8], "texture": "#25"},
|
||||
"west": {"uv": [0.5, 4, 0.25, 8], "texture": "#25"},
|
||||
"up": {"uv": [0.5, 0, 0, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [0.5, 7.75, 0, 8], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [14, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-9, -30, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0.5, 7.5, 4, 8], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [4, 7.5, 7.5, 8], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [4, 7.75, 7.5, 7.5], "texture": "#25"},
|
||||
"down": {"uv": [4, 7.75, 7.5, 8], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 2, 0],
|
||||
"to": [14, 16, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-9, -28, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 4, 12, 7.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 8, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [4, 4, 7.5, 7.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 8, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [8, 0, 16, 1], "texture": "#25"},
|
||||
"down": {"uv": [8, 0, 16, 1], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [10, 2, 0.999],
|
||||
"to": [14, 6, 0.999],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 2, -1.001]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 1, 9], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 0, 3], "texture": "#25"},
|
||||
"south": {"uv": [1, 8, 0, 9], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 0, 3], "texture": "#25"},
|
||||
"up": {"uv": [3, 0, 0, 0], "texture": "#25"},
|
||||
"down": {"uv": [3, 0, 0, 0], "texture": "#25"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 2],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.25, -3.75, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 13, 7]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -4, -3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "large_mirror_bottom_right",
|
||||
"origin": [22, -14, -1.001],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"25": "modernlifepatch:block/large_mirror",
|
||||
"particle": "modernlifepatch:block/large_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [2, 14, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 0, 7.5, 0.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 0, 4, 0.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [0.5, 0, 4, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [0.5, 0.25, 4, 0.5], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 10, 0.999],
|
||||
"to": [6, 14, 0.999],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [2, 14, -1.001]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 9, 0, 8], "texture": "#25"},
|
||||
"east": {"uv": [0, 3, 0, 0], "texture": "#25"},
|
||||
"south": {"uv": [0, 9, 1, 8], "texture": "#25"},
|
||||
"west": {"uv": [0, 3, 0, 0], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 3, 0], "texture": "#25"},
|
||||
"down": {"uv": [0, 0, 3, 0], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 0],
|
||||
"to": [16, 14, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -44, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 0.5, 15.5, 4], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 8], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 0.5, 4, 4], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 8], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 8, 1], "texture": "#25"},
|
||||
"down": {"uv": [0, 0, 8, 1], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [7.5, 0, 8, 4], "texture": "#25"},
|
||||
"east": {"uv": [0.25, 0, 0.5, 4], "texture": "#25"},
|
||||
"south": {"uv": [0, 0, 0.5, 4], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 0.25, 4], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 0.5, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [0, 7.75, 0.5, 8], "texture": "#25"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 2],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.25, -3.75, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 13, 7]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -4, -3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "large_mirror_top_left",
|
||||
"origin": [-1, -16, 0],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"25": "modernlifepatch:block/large_mirror",
|
||||
"particle": "modernlifepatch:block/large_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [10, 10, 0.999],
|
||||
"to": [14, 14, 0.999],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, -1.001]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 9, 1, 8], "texture": "#25"},
|
||||
"east": {"uv": [0, 3, 0, 0], "texture": "#25"},
|
||||
"south": {"uv": [1, 9, 0, 8], "texture": "#25"},
|
||||
"west": {"uv": [0, 3, 0, 0], "texture": "#25"},
|
||||
"up": {"uv": [3, 0, 0, 0], "texture": "#25"},
|
||||
"down": {"uv": [3, 0, 0, 0], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [9, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 0, 7.5, 4], "texture": "#25"},
|
||||
"east": {"uv": [0.25, 0, 0, 4], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 0, 0, 4], "texture": "#25"},
|
||||
"west": {"uv": [0.5, 0, 0.25, 4], "texture": "#25"},
|
||||
"up": {"uv": [0.5, 0, 0, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [0.5, 7.75, 0, 8], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [14, 14, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-9, -44, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 0.5, 12, 4], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 8], "texture": "#25"},
|
||||
"south": {"uv": [4, 0.5, 7.5, 4], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 8], "texture": "#25"},
|
||||
"up": {"uv": [8, 0, 16, 1], "texture": "#25"},
|
||||
"down": {"uv": [8, 0, 16, 1], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 0],
|
||||
"to": [14, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-9, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0.5, 0, 4, 0.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [4, 0, 7.5, 0.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [4, 0, 7.5, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [4, 0.25, 7.5, 0.5], "texture": "#25"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 2],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.25, -3.75, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 13, 7]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -4, -3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "large_mirror_top_right",
|
||||
"origin": [-1, -16, 0],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"25": "modernlifepatch:block/massive_mirror",
|
||||
"particle": "modernlifepatch:block/massive_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [11.5, 4, 12, 8], "texture": "#25"},
|
||||
"east": {"uv": [0.25, 4, 0.5, 7.75], "texture": "#25"},
|
||||
"south": {"uv": [0, 4, 0.5, 8], "texture": "#25"},
|
||||
"west": {"uv": [0, 4, 0.25, 8], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 0.5, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [0, 7.75, 0.5, 8], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 0],
|
||||
"to": [16, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [60, -30, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 7.5, 11.5, 8], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 7.5, 4, 8], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [0.5, 7.5, 4, 7.75], "texture": "#25"},
|
||||
"down": {"uv": [0.5, 7.75, 4, 8], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 2, 0],
|
||||
"to": [16, 16, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [60, -28, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 12, 11.5, 15.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 8, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 4, 4, 7.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 8, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 5.09091, 1], "texture": "#25"},
|
||||
"down": {"uv": [0, 0, 5.09091, 1], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 2, 0.999],
|
||||
"to": [8, 8, 0.999],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [2, 2, 0.999]},
|
||||
"faces": {
|
||||
"north": {"uv": [13.5, 0, 12, 1.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 0, 2], "texture": "#25"},
|
||||
"south": {"uv": [12, 0, 13.5, 1.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 0, 2], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 2, 0], "texture": "#25"},
|
||||
"down": {"uv": [0, 0, 2, 0], "texture": "#25"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 2, 0],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2, -3.5, 0],
|
||||
"scale": [0.353, 0.353, 0.353]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 13, 7]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -3.25, -4],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "massive_mirror_bottom_left",
|
||||
"origin": [-14, 2, 0.999],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"25": "modernlifepatch:block/massive_mirror",
|
||||
"particle": "modernlifepatch:block/massive_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 2, 0],
|
||||
"to": [16, 16, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 16, 0.05]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 12, 8, 15.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 8, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [4, 4, 8, 7.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 8, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [5.09091, 0, 10.90909, 1], "texture": "#25"},
|
||||
"down": {"uv": [5.09091, 0, 10.90909, 1], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [44, -30, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 7.5, 8, 8], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [4, 7.5, 8, 8], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [4, 7.5, 8, 7.75], "texture": "#25"},
|
||||
"down": {"uv": [4, 7.75, 8, 8], "texture": "#25"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 2, 0],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2, -3.5, 0],
|
||||
"scale": [0.353, 0.353, 0.353]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 13, 7]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -3.25, -4],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "massive_mirror_bottom_middle",
|
||||
"origin": [44, -30, 0],
|
||||
"color": 0,
|
||||
"children": [0, 1]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"25": "modernlifepatch:block/massive_mirror",
|
||||
"particle": "modernlifepatch:block/massive_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 16, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [12, 4, 11.5, 8], "texture": "#25"},
|
||||
"east": {"uv": [0.25, 4, 0, 8], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 4, 0, 8], "texture": "#25"},
|
||||
"west": {"uv": [0.5, 4, 0.25, 7.75], "texture": "#25"},
|
||||
"up": {"uv": [0.5, 0, 0, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [0.5, 7.75, 0, 8], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8, 2, 0.999],
|
||||
"to": [14, 8, 0.999],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 2, 0.999]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 0, 13.5, 1.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 0, 2], "texture": "#25"},
|
||||
"south": {"uv": [13.5, 0, 12, 1.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 0, 2], "texture": "#25"},
|
||||
"up": {"uv": [2, 0, 0, 0], "texture": "#25"},
|
||||
"down": {"uv": [2, 0, 0, 0], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [14, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [28, -30, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0.5, 7.5, 4, 8], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [8, 7.5, 11.5, 8], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [8, 7.5, 11.5, 7.75], "texture": "#25"},
|
||||
"down": {"uv": [8, 7.75, 11.5, 8], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 2, 0],
|
||||
"to": [14, 16, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [28, -28, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0.5, 12, 4, 15.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 8, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [8, 4, 11.5, 7.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 8, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [10.90909, 0, 16, 1], "texture": "#25"},
|
||||
"down": {"uv": [10.90909, 0, 16, 1], "texture": "#25"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 2, 0],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2, -3.5, 0],
|
||||
"scale": [0.353, 0.353, 0.353]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 13, 7]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -3.25, -4],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "massive_mirror_bottom_right",
|
||||
"origin": [44, -28, 0],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"25": "modernlifepatch:block/massive_mirror",
|
||||
"particle": "modernlifepatch:block/massive_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [2, 14, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [60, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 0, 11.5, 0.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 0, 4, 0.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [0.5, 0, 4, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [0.5, 0.25, 4, 0.5], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 8, 0.999],
|
||||
"to": [8, 14, 0.999],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [2, 14, 0.999]},
|
||||
"faces": {
|
||||
"north": {"uv": [13.5, 1.5, 12, 0], "texture": "#25"},
|
||||
"east": {"uv": [0, 2, 0, 0], "texture": "#25"},
|
||||
"south": {"uv": [12, 1.5, 13.5, 0], "texture": "#25"},
|
||||
"west": {"uv": [0, 2, 0, 0], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 2, 0], "texture": "#25"},
|
||||
"down": {"uv": [0, 0, 2, 0], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 0],
|
||||
"to": [16, 14, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [60, -44, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 8.5, 11.5, 12], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 8], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 0.5, 4, 4], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 8], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 5.09091, 1], "texture": "#25"},
|
||||
"down": {"uv": [0, 0, 5.09091, 1], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [16, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [11.5, 0, 12, 4], "texture": "#25"},
|
||||
"east": {"uv": [0.25, 0.25, 0.5, 4], "texture": "#25"},
|
||||
"south": {"uv": [0, 0, 0.5, 4], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 0.25, 4], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 0.5, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [0, 7.75, 0.5, 8], "texture": "#25"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 2, 0],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2, -3.5, 0],
|
||||
"scale": [0.353, 0.353, 0.353]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 13, 7]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -3.25, -4],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "massive_mirror_top_left",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"25": "modernlifepatch:block/massive_mirror",
|
||||
"particle": "modernlifepatch:block/massive_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 14, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [44, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 0, 8, 0.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [4, 0, 8, 0.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [4, 0, 8, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [4, 0.25, 8, 0.5], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 14, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 0.05]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 8.5, 8, 12], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 8], "texture": "#25"},
|
||||
"south": {"uv": [4, 0.5, 8, 4], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 8], "texture": "#25"},
|
||||
"up": {"uv": [5.09091, 0, 10.90909, 1], "texture": "#25"},
|
||||
"down": {"uv": [5.09091, 0, 10.90909, 1], "texture": "#25"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 2, 0],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2, -3.5, 0],
|
||||
"scale": [0.353, 0.353, 0.353]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 13, 7]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -3.25, -4],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "massive_mirror_top_middle",
|
||||
"origin": [8, 16, 0.05],
|
||||
"color": 0,
|
||||
"children": [0, 1]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"25": "modernlifepatch:block/massive_mirror",
|
||||
"particle": "modernlifepatch:block/massive_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [8, 8, 0.999],
|
||||
"to": [14, 14, 0.999],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 14, 0.999]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 1.5, 13.5, 0], "texture": "#25"},
|
||||
"east": {"uv": [0, 2, 0, 0], "texture": "#25"},
|
||||
"south": {"uv": [13.5, 1.5, 12, 0], "texture": "#25"},
|
||||
"west": {"uv": [0, 2, 0, 0], "texture": "#25"},
|
||||
"up": {"uv": [2, 0, 0, 0], "texture": "#25"},
|
||||
"down": {"uv": [2, 0, 0, 0], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 0],
|
||||
"to": [14, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [28, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0.5, 0, 4, 0.5], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"south": {"uv": [8, 0, 11.5, 0.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#25"},
|
||||
"up": {"uv": [8, 0, 11.5, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [8, 0.25, 11.5, 0.5], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [14, 14, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [28, -44, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0.5, 8.5, 4, 12], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 1, 8], "texture": "#25"},
|
||||
"south": {"uv": [8, 0.5, 11.5, 4], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 1, 8], "texture": "#25"},
|
||||
"up": {"uv": [10.90909, 0, 16, 1], "texture": "#25"},
|
||||
"down": {"uv": [10.90909, 0, 16, 1], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 0, 11.5, 4], "texture": "#25"},
|
||||
"east": {"uv": [0.25, 0, 0, 4], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 0, 0, 4], "texture": "#25"},
|
||||
"west": {"uv": [0.5, 0.25, 0.25, 4], "texture": "#25"},
|
||||
"up": {"uv": [0.5, 0, 0, 0.25], "texture": "#25"},
|
||||
"down": {"uv": [0.5, 7.75, 0, 8], "texture": "#25"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 4.5],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [0.88, 3.2, 3.38],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 2, 0],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2, -3.5, 0],
|
||||
"scale": [0.353, 0.353, 0.353]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 13, 7]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -3.25, -4],
|
||||
"scale": [0.45, 0.45, 0.45]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "massive_mirror_top_right",
|
||||
"origin": [16, 0, 0],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"25": "modernlifepatch:block/mirror",
|
||||
"particle": "modernlifepatch:block/mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [1, 16, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [7.5, 0, 8, 8], "texture": "#25"},
|
||||
"east": {"uv": [7.5, 0, 8, 8], "texture": "#25"},
|
||||
"south": {"uv": [7.5, 0, 8, 8], "texture": "#25"},
|
||||
"west": {"uv": [7.5, 0, 8, 8], "texture": "#25"},
|
||||
"up": {"uv": [7.5, 0, 8, 0.5], "texture": "#25"},
|
||||
"down": {"uv": [7.5, 7.5, 8, 8], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [7.5, 0, 8, 8], "texture": "#25"},
|
||||
"east": {"uv": [7.5, 0, 8, 8], "texture": "#25"},
|
||||
"south": {"uv": [7.5, 0, 8, 8], "texture": "#25"},
|
||||
"west": {"uv": [7.5, 0, 8, 8], "texture": "#25"},
|
||||
"up": {"uv": [7.5, 0, 8, 0.5], "texture": "#25"},
|
||||
"down": {"uv": [7.5, 7.5, 8, 8], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 0],
|
||||
"to": [15, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0.5, 0, 7.5, 0.5], "texture": "#25"},
|
||||
"east": {"uv": [7.5, 0, 8, 8], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 0, 7.5, 0.5], "texture": "#25"},
|
||||
"west": {"uv": [7.5, 0, 8, 8], "texture": "#25"},
|
||||
"up": {"uv": [7.5, 0.5, 0.5, 0], "texture": "#25"},
|
||||
"down": {"uv": [0.5, 0, 7.5, 0.5], "rotation": 180, "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0, 0],
|
||||
"to": [15, 1, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [2, -15, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0.5, 15.5, 7.5, 16], "texture": "#25"},
|
||||
"east": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 15.5, 7.5, 16], "texture": "#25"},
|
||||
"west": {"uv": [7.5, 0, 7.75, 0.25], "texture": "#25"},
|
||||
"up": {"uv": [0.5, 15.5, 7.5, 16], "rotation": 180, "texture": "#25"},
|
||||
"down": {"uv": [0.5, 15.5, 7.5, 16], "texture": "#25"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 0.099],
|
||||
"to": [15, 15, 0.099],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 1, 0.099]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 6, 15.5, 13], "texture": "#25"},
|
||||
"east": {"uv": [0, 0, 0, 3.5], "texture": "#25"},
|
||||
"south": {"uv": [0.5, 0.5, 7.5, 7.5], "texture": "#25"},
|
||||
"west": {"uv": [0, 0, 0, 3.5], "texture": "#25"},
|
||||
"up": {"uv": [0, 0, 0, 3.5], "rotation": 90, "texture": "#25"},
|
||||
"down": {"uv": [0, 0, 0, 3.5], "rotation": 270, "texture": "#25"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 2],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [3.5, -1.5, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 0, -15.25]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 0, -7]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"24": "modernlifepatch:block/tall_mirror",
|
||||
"particle": "modernlifepatch:block/tall_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [1, 16, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 0.5, 16], "texture": "#24"},
|
||||
"east": {"uv": [0, 8, 0.5, 16], "texture": "#24"},
|
||||
"south": {"uv": [0, 8, 0.5, 16], "texture": "#24"},
|
||||
"west": {"uv": [0, 8, 0.5, 16], "texture": "#24"},
|
||||
"up": {"uv": [0, 0, 0.5, 0.5], "texture": "#24"},
|
||||
"down": {"uv": [0, 15.5, 0.5, 16], "texture": "#24"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0, 0],
|
||||
"to": [15, 1, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [1, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 15.5, 8, 16], "texture": "#24"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#24"},
|
||||
"south": {"uv": [0, 15.5, 8, 16], "texture": "#24"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#24"},
|
||||
"up": {"uv": [0, 15.5, 8, 16], "texture": "#24"},
|
||||
"down": {"uv": [0, 15.5, 8, 16], "texture": "#24"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 0],
|
||||
"to": [15, 16, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [1, 30, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 8, 15.5, 15.5], "texture": "#24"},
|
||||
"east": {"uv": [0, 8, 1, 16], "texture": "#24"},
|
||||
"south": {"uv": [0.5, 8, 7.5, 15.5], "texture": "#24"},
|
||||
"west": {"uv": [0, 8, 1, 16], "texture": "#24"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#24"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#24"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 0.5, 16], "texture": "#24"},
|
||||
"east": {"uv": [0, 8, 0.5, 16], "texture": "#24"},
|
||||
"south": {"uv": [0, 8, 0.5, 16], "texture": "#24"},
|
||||
"west": {"uv": [0, 8, 0.5, 16], "texture": "#24"},
|
||||
"up": {"uv": [0, 0, 0.5, 0.5], "texture": "#24"},
|
||||
"down": {"uv": [0, 15.5, 0.5, 16], "texture": "#24"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 2],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.5, -4.5, 0],
|
||||
"scale": [0.475, 0.475, 0.475]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 0, -15.25]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -4, -3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "bottom",
|
||||
"origin": [15, -16, 0],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"24": "modernlifepatch:block/tall_mirror",
|
||||
"particle": "modernlifepatch:block/tall_mirror"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 15, 0],
|
||||
"to": [15, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [1, 15, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 8, 0.5], "texture": "#24"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#24"},
|
||||
"south": {"uv": [0, 0, 8, 0.5], "texture": "#24"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#24"},
|
||||
"up": {"uv": [0, 0, 8, 0.5], "texture": "#24"},
|
||||
"down": {"uv": [0, 0, 8, 0.5], "texture": "#24"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0, 0],
|
||||
"to": [15, 15, 0.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [1, 14, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 0.5, 15.5, 8], "texture": "#24"},
|
||||
"east": {"uv": [0, 0, 1, 8], "texture": "#24"},
|
||||
"south": {"uv": [0.5, 0.5, 7.5, 8], "texture": "#24"},
|
||||
"west": {"uv": [0, 0, 1, 8], "texture": "#24"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#24"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#24"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [15, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.5, 8], "texture": "#24"},
|
||||
"east": {"uv": [0, 0, 0.5, 8], "texture": "#24"},
|
||||
"south": {"uv": [0, 0, 0.5, 8], "texture": "#24"},
|
||||
"west": {"uv": [0, 0, 0.5, 8], "texture": "#24"},
|
||||
"up": {"uv": [0, 0, 0.5, 0.5], "texture": "#24"},
|
||||
"down": {"uv": [0, 15.5, 0.5, 16], "texture": "#24"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [1, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, -16, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.5, 8], "texture": "#24"},
|
||||
"east": {"uv": [0, 0, 0.5, 8], "texture": "#24"},
|
||||
"south": {"uv": [0, 0, 0.5, 8], "texture": "#24"},
|
||||
"west": {"uv": [0, 0, 0.5, 8], "texture": "#24"},
|
||||
"up": {"uv": [0, 0, 0.5, 0.5], "texture": "#24"},
|
||||
"down": {"uv": [0, 15.5, 0.5, 16], "texture": "#24"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 3, 3],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 2],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.5, -4.5, 0],
|
||||
"scale": [0.475, 0.475, 0.475]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 0, -15.25]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, -4, -3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "top",
|
||||
"origin": [0, -16, 0],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 750 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 575 B |
|
After Width: | Height: | Size: 575 B |
|
After Width: | Height: | Size: 373 B |
|
After Width: | Height: | Size: 356 B |
|
After Width: | Height: | Size: 269 B |
|
After Width: | Height: | Size: 311 B |
|
|
@ -9,7 +9,7 @@
|
|||
"modernlife:seed_spreader",
|
||||
"modernlife:power_transmitter",
|
||||
"modernlife:power_receiver",
|
||||
"modernlife:photon",
|
||||
"modernlife:handgun",
|
||||
"modernlife:flashlight"
|
||||
]
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@
|
|||
"block.common.MixinBookShelf",
|
||||
"block.common.MixinCanvas",
|
||||
"block.common.MixinCCTVCamera",
|
||||
"block.common.MixinCeilingFan",
|
||||
"block.common.MixinChair",
|
||||
"block.common.MixinChessBoard",
|
||||
"block.common.MixinCoffeeMug",
|
||||
|
|
|
|||
|
|
@ -1,8 +1,51 @@
|
|||
{
|
||||
"parent": "minecraft:block/stairs",
|
||||
"textures": {
|
||||
"bottom": "minecraft:block/glass",
|
||||
"top": "minecraft:block/glass",
|
||||
"side": "minecraft:block/glass"
|
||||
}
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"1": "block/glass",
|
||||
"4": "modernlife:block/glass_stairs_side",
|
||||
"6": "modernlife:block/glass_stairs_top",
|
||||
"7": "modernlife:block/glass_stairs_top_1",
|
||||
"8": "modernlife:block/glass_stairs_top_2",
|
||||
"particle": "modernlife:block/glass_stairs_side"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 16, 16], "texture": "#4", "cullface": "north"},
|
||||
"east": {"uv": [0, 8, 16, 16], "texture": "#1", "cullface": "east"},
|
||||
"south": {"uv": [16, 8, 0, 16], "texture": "#4", "cullface": "south"},
|
||||
"west": {"uv": [0, 8, 16, 16], "texture": "#6", "cullface": "west"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#8"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#1", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8, 8, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 8, 8], "texture": "#4", "cullface": "north"},
|
||||
"east": {"uv": [0, 0, 16, 8], "texture": "#1", "cullface": "east"},
|
||||
"south": {"uv": [8, 0, 0, 8], "texture": "#4", "cullface": "south"},
|
||||
"west": {"uv": [0, 0, 16, 8], "texture": "#6"},
|
||||
"up": {"uv": [8, 0, 16, 16], "texture": "#7", "cullface": "up"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, -135, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 135, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, -90, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 215 B |
|
After Width: | Height: | Size: 240 B |
|
After Width: | Height: | Size: 224 B |
|
After Width: | Height: | Size: 185 B |
|
After Width: | Height: | Size: 201 B |
|
After Width: | Height: | Size: 1.6 KiB |