Backport updates
|
@ -5,27 +5,49 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.ScheduledThreadPoolExecutor;
|
||||
|
||||
import dev.zontreck.ariaslib.util.DelayedExecutorService;
|
||||
import dev.zontreck.essentials.antiexplode.CreeperHealQueue;
|
||||
import dev.zontreck.essentials.blocks.ModBlocks;
|
||||
import dev.zontreck.essentials.client.Keybindings;
|
||||
import dev.zontreck.essentials.client.renderer.TimeBoostEntityRenderer;
|
||||
import dev.zontreck.essentials.commands.teleport.TeleportActioner;
|
||||
import dev.zontreck.essentials.configs.client.AEClientConfig;
|
||||
import dev.zontreck.essentials.configs.server.AEServerConfig;
|
||||
import dev.zontreck.essentials.entities.ModEntities;
|
||||
import dev.zontreck.essentials.events.MainEventHandlers;
|
||||
import dev.zontreck.essentials.events.TeleportEvent;
|
||||
import dev.zontreck.essentials.gui.HeartsRenderer;
|
||||
import dev.zontreck.essentials.client.renderer.HeartsRenderer;
|
||||
import dev.zontreck.essentials.imc.Events;
|
||||
import dev.zontreck.essentials.items.CreativeModeTabs;
|
||||
import dev.zontreck.essentials.items.ModItems;
|
||||
import dev.zontreck.essentials.networking.ModMessages;
|
||||
import dev.zontreck.essentials.rtp.RTPCaches;
|
||||
import dev.zontreck.essentials.rtp.RTPCachesEventHandlers;
|
||||
import dev.zontreck.essentials.util.BackPositionCaches;
|
||||
import dev.zontreck.essentials.util.CommandCooldowns;
|
||||
import dev.zontreck.libzontreck.memory.world.BlockRestoreQueue;
|
||||
import dev.zontreck.libzontreck.memory.world.BlockRestoreQueueRegistry;
|
||||
import dev.zontreck.libzontreck.memory.world.SavedBlock;
|
||||
import dev.zontreck.libzontreck.util.ChatHelpers;
|
||||
import dev.zontreck.libzontreck.util.SNbtIo;
|
||||
import dev.zontreck.libzontreck.util.ServerUtilities;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3i;
|
||||
import dev.zontreck.libzontreck.vectors.WorldPosition;
|
||||
import net.minecraft.client.renderer.entity.EntityRenderers;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingDeathEvent;
|
||||
import net.minecraftforge.event.level.ExplosionEvent;
|
||||
import net.minecraftforge.eventbus.api.EventPriority;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -53,6 +75,7 @@ public class AriasEssentials {
|
|||
public static boolean ALIVE;
|
||||
public static Map<UUID, Homes> player_homes = new HashMap<>();
|
||||
public static boolean DEBUG = true;
|
||||
public static ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
|
||||
|
||||
|
||||
|
||||
|
@ -60,10 +83,11 @@ public class AriasEssentials {
|
|||
{
|
||||
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
bus.addListener(this::setup);
|
||||
DelayedExecutorService.setup();
|
||||
|
||||
LOGGER.info("/!\\ Loading Aria's Essentials Configuration Files /!\\");
|
||||
AEServerConfig.loadFromFile();
|
||||
AEClientConfig.loadFromFile();
|
||||
LOGGER.info("/!\\ DONE LOADING AECONFIG /!\\");
|
||||
|
||||
|
||||
|
||||
|
@ -75,8 +99,16 @@ public class AriasEssentials {
|
|||
MinecraftForge.EVENT_BUS.register(new RTPCachesEventHandlers());
|
||||
MinecraftForge.EVENT_BUS.register(new CommandCooldowns());
|
||||
MinecraftForge.EVENT_BUS.register(RTPCachesEventHandlers.class);
|
||||
MinecraftForge.EVENT_BUS.register(Events.class);
|
||||
MinecraftForge.EVENT_BUS.register(MainEventHandlers.class);
|
||||
|
||||
ModItems.register(bus);
|
||||
ModBlocks.register(bus);
|
||||
ModEntities.register(bus);
|
||||
CreativeModeTabs.register(bus);
|
||||
}
|
||||
|
||||
|
||||
@SubscribeEvent
|
||||
public void onTeleport(TeleportEvent event)
|
||||
{
|
||||
|
@ -99,8 +131,9 @@ public class AriasEssentials {
|
|||
public void onServerStart(final ServerStartedEvent ev)
|
||||
{
|
||||
ALIVE=true;
|
||||
// Print out the server config
|
||||
|
||||
|
||||
LOGGER.debug(NbtUtils.structureToSnbt(AEServerConfig.getInstance().serialize()));
|
||||
}
|
||||
|
||||
|
||||
|
@ -109,9 +142,6 @@ public class AriasEssentials {
|
|||
{
|
||||
ALIVE=false;
|
||||
LOGGER.info("Tearing down Aria's Essentials functions and tasks");
|
||||
DelayedExecutorService.stop();
|
||||
|
||||
DelayedExecutorService.getInstance().EXECUTORS.clear();
|
||||
RTPCaches.Locations.clear();
|
||||
}
|
||||
|
||||
|
@ -141,9 +171,17 @@ public class AriasEssentials {
|
|||
|
||||
LOGGER.info("Client setup");
|
||||
|
||||
EntityRenderers.register(ModEntities.TIAB_ENTITY.get(), TimeBoostEntityRenderer::new);
|
||||
MinecraftForge.EVENT_BUS.register(new HeartsRenderer());
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@SubscribeEvent
|
||||
public static void onRegisterKeyBinds(RegisterKeyMappingsEvent ev)
|
||||
{
|
||||
ev.register(Keybindings.AUTOWALK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
package dev.zontreck.essentials.antiexplode;
|
||||
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.essentials.configs.server.AEServerConfig;
|
||||
import dev.zontreck.libzontreck.memory.world.*;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class CreeperHealQueue extends BlockRestoreQueue
|
||||
{
|
||||
|
||||
@Override
|
||||
public String getRestoreQueueName() {
|
||||
return "creeperheal";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean usesDatabase() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void databaseUpdate(PrimitiveBlock block) {
|
||||
if(Blocks.AIR == block.blockType) return; // Do not cache air
|
||||
super.databaseUpdate(block);
|
||||
notifyDirtyQueue(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyDirtyQueue(boolean b) {
|
||||
// Queue was modified.
|
||||
// Restart the timer for repairing blocks if necessary
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean sorted() {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
330
src/main/java/dev/zontreck/essentials/blocks/ModBlocks.java
Normal file
|
@ -0,0 +1,330 @@
|
|||
package dev.zontreck.essentials.blocks;
|
||||
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.essentials.blocks.logicgates.TFlipFlopBlock;
|
||||
import dev.zontreck.essentials.items.CreativeModeTabs;
|
||||
import dev.zontreck.libzontreck.blocks.BlockCustomVoxels;
|
||||
import dev.zontreck.libzontreck.blocks.PartialTransparentBlock;
|
||||
import dev.zontreck.libzontreck.blocks.PartialTransparentSlabBlock;
|
||||
import dev.zontreck.libzontreck.blocks.RotatableBlockCustomVoxels;
|
||||
import dev.zontreck.libzontreck.edlibmc.Auxiliaries;
|
||||
import dev.zontreck.libzontreck.edlibmc.StandardBlocks;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.block.*;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.properties.BlockSetType;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
import net.minecraft.world.phys.shapes.BooleanOp;
|
||||
import net.minecraft.world.phys.shapes.Shapes;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class ModBlocks {
|
||||
|
||||
private static BlockBehaviour.StatePredicate shulkerState = (p_152653_, p_152654_, p_152655_) -> {
|
||||
BlockEntity blockentity = p_152654_.getBlockEntity(p_152655_);
|
||||
if (!(blockentity instanceof ShulkerBoxBlockEntity)) {
|
||||
return true;
|
||||
} else {
|
||||
ShulkerBoxBlockEntity shulkerboxblockentity = (ShulkerBoxBlockEntity)blockentity;
|
||||
return shulkerboxblockentity.isClosed();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, AriasEssentials.MODID);
|
||||
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, AriasEssentials.MODID);
|
||||
|
||||
private static boolean never(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos) {
|
||||
return false;
|
||||
}
|
||||
private static boolean always(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private static boolean neverSpawn(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos, EntityType<?> entityType) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void register(IEventBus bus){
|
||||
BLOCKS.register(bus);
|
||||
ITEMS.register(bus);
|
||||
AriasEssentials.LOGGER.info("Registering all blocks...");
|
||||
}
|
||||
|
||||
private static BlockBehaviour.Properties standardBehavior()
|
||||
{
|
||||
return BlockBehaviour.Properties.of().requiresCorrectToolForDrops().strength(7F).destroyTime(6).isValidSpawn(ModBlocks::neverSpawn);
|
||||
}
|
||||
private static BlockBehaviour.Properties gratingBlock()
|
||||
{
|
||||
return standardBehavior()
|
||||
.noOcclusion()
|
||||
.strength(0.5f, 2000f)
|
||||
.isViewBlocking(ModBlocks::never);
|
||||
}
|
||||
|
||||
private static BlockBehaviour.Properties stoneLikeBehavior()
|
||||
{
|
||||
return BlockBehaviour.Properties.copy(Blocks.COBBLESTONE).isValidSpawn(ModBlocks::neverSpawn);
|
||||
}
|
||||
|
||||
private static BlockBehaviour.Properties explosionResistance()
|
||||
{
|
||||
return standardBehavior().explosionResistance(1200);
|
||||
}
|
||||
|
||||
private static BlockBehaviour.Properties noViewBlocking()
|
||||
{
|
||||
return standardBehavior().noOcclusion().isViewBlocking(ModBlocks::never);
|
||||
}
|
||||
|
||||
private static BlockBehaviour.Properties fullBright()
|
||||
{
|
||||
return standardBehavior().lightLevel((X)->{
|
||||
return 15;
|
||||
}).noOcclusion();
|
||||
}
|
||||
|
||||
private static BlockBehaviour.Properties standard = standardBehavior();
|
||||
|
||||
private static BlockBehaviour.Properties explosionResistance = explosionResistance();
|
||||
|
||||
private static BlockBehaviour.Properties noViewBlocking = noViewBlocking();
|
||||
|
||||
private static BlockBehaviour.Properties stone = stoneLikeBehavior();
|
||||
|
||||
private static BlockBehaviour.Properties gratingBlock = gratingBlock();
|
||||
|
||||
private static BlockBehaviour.Properties poolLightClean = BlockBehaviour.Properties.copy(Blocks.GLASS).lightLevel((X) -> 15);
|
||||
private static BlockBehaviour.Properties poolLightDirty = BlockBehaviour.Properties.copy(Blocks.GLASS).lightLevel((X) -> 12);
|
||||
private static BlockBehaviour.Properties poolLightFilthy = BlockBehaviour.Properties.copy(Blocks.GLASS).lightLevel((X) -> 4);
|
||||
|
||||
|
||||
public static RegistryObject<Block> registerWithItem(RegistryObject<Block> blk, Item.Properties props)
|
||||
{
|
||||
CreativeModeTabs.addToAETab(ITEMS.register(blk.getId().getPath(), ()->new BlockItem(blk.get(), props)));
|
||||
|
||||
return blk;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
ENGINEERS DECOR BLOCKS
|
||||
|
||||
*/
|
||||
|
||||
public static final RegistryObject<Block> CLINKER_BRICK_BLOCK = registerWithItem(BLOCKS.register("clinker_brick_block", ()->new StandardBlocks.BaseBlock(
|
||||
StandardBlocks.CFG_DEFAULT,
|
||||
BlockBehaviour.Properties.of().strength(0.5f, 7f).sound(SoundType.STONE)
|
||||
)), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> CLINKER_BRICK_RECESSED = registerWithItem(BLOCKS.register("clinker_brick_recessed", ()->new StandardBlocks.HorizontalWaterLoggable(
|
||||
StandardBlocks.CFG_CUTOUT|StandardBlocks.CFG_HORIZIONTAL|StandardBlocks.CFG_LOOK_PLACEMENT,
|
||||
BlockBehaviour.Properties.of().strength(0.5f, 7f).sound(SoundType.STONE),
|
||||
new AABB[] {
|
||||
Auxiliaries.getPixeledAABB( 3,0, 0, 13,16, 1),
|
||||
Auxiliaries.getPixeledAABB( 0,0, 1, 16,16,11),
|
||||
Auxiliaries.getPixeledAABB( 4,0,11, 12,16,13)
|
||||
}
|
||||
)), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> CLINKER_BRICK_VERTICALLY_SLIT = registerWithItem(BLOCKS.register("clinker_brick_vertically_slit", ()->new StandardBlocks.HorizontalWaterLoggable(
|
||||
StandardBlocks.CFG_CUTOUT|StandardBlocks.CFG_HORIZIONTAL|StandardBlocks.CFG_LOOK_PLACEMENT,
|
||||
BlockBehaviour.Properties.of().strength(0.5f, 7f).sound(SoundType.STONE),
|
||||
new AABB[] {
|
||||
Auxiliaries.getPixeledAABB( 3,0, 0, 13,16, 1),
|
||||
Auxiliaries.getPixeledAABB( 3,0,15, 13,16,16),
|
||||
Auxiliaries.getPixeledAABB( 0,0, 1, 16,16,15)
|
||||
}
|
||||
)), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> CLINKER_BRICK_SLAB = registerWithItem(BLOCKS.register("clinker_brick_slab", ()->new SlabBlock(BlockBehaviour.Properties.copy(Blocks.STONE_SLAB))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> CLINKER_BRICK_STAIRS = registerWithItem(BLOCKS.register("clinker_brick_stairs", ()->new StairBlock(CLINKER_BRICK_BLOCK.get()::defaultBlockState, BlockBehaviour.Properties.copy(Blocks.STONE_STAIRS))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> CLINKER_BRICK_WALL = registerWithItem(BLOCKS.register("clinker_brick_wall", ()->new WallBlock(BlockBehaviour.Properties.copy(Blocks.STONE_BRICK_WALL))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> CLINKER_BRICK_STAINED_BLOCK = registerWithItem(BLOCKS.register("clinker_brick_stained_block", ()->new Block(BlockBehaviour.Properties.copy(Blocks.STONE))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> CLINKER_BRICK_STAINED_SLAB = registerWithItem(BLOCKS.register("clinker_brick_stained_slab", ()-> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.STONE))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> CLINKER_BRICK_STAINED_STAIRS = registerWithItem(BLOCKS.register("clinker_brick_stained_stairs", ()-> new StairBlock(CLINKER_BRICK_STAINED_BLOCK.get()::defaultBlockState, BlockBehaviour.Properties.copy(Blocks.STONE))), new Item.Properties());
|
||||
|
||||
/*public static final RegistryObject<Block> CLINKER_BRICK_VERTICAL_SLAB_STRUCTURED = registerWithItem(BLOCKS.register("clinker_brick_vertical_slab_structured", () -> new StandardBlocks.HorizontalWaterLoggable(
|
||||
StandardBlocks.CFG_CUTOUT | StandardBlocks.CFG_HORIZIONTAL | StandardBlocks.CFG_LOOK_PLACEMENT,
|
||||
BlockBehaviour.Properties.of().strength(0.5f, 7f).sound(SoundType.STONE),
|
||||
new AABB[]{
|
||||
Auxiliaries.getPixeledAABB(0, 0, 0, 16, 16, 8),
|
||||
}
|
||||
)), new Item.Properties());*/
|
||||
|
||||
public static final RegistryObject<Block> SLAG_BRICK_BLOCK = registerWithItem(BLOCKS.register("slag_brick_block", ()-> new Block(BlockBehaviour.Properties.copy(Blocks.STONE))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> SLAG_BRICK_SLAB = registerWithItem(BLOCKS.register("slag_brick_slab", ()-> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.STONE))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> SLAG_BRICK_STAIRS = registerWithItem(BLOCKS.register("slag_brick_stairs", ()-> new StairBlock(SLAG_BRICK_BLOCK.get()::defaultBlockState, BlockBehaviour.Properties.copy(Blocks.STONE))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> SLAG_BRICK_WALL = registerWithItem(BLOCKS.register("slag_brick_wall", ()-> new WallBlock(BlockBehaviour.Properties.copy(Blocks.STONE_BRICK_WALL))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> REBAR_CONCRETE_BLOCK = registerWithItem(BLOCKS.register("rebar_concrete", ()-> new Block(BlockBehaviour.Properties.copy(Blocks.STONE).isValidSpawn(ModBlocks::neverSpawn).strength(1f, 2000f))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> REBAR_CONCRETE_SLAB = registerWithItem(BLOCKS.register("rebar_concrete_slab", ()-> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.STONE).strength(1f, 2000f).isValidSpawn(ModBlocks::neverSpawn))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> REBAR_CONCRETE_STAIRS = registerWithItem(BLOCKS.register("rebar_concrete_stairs", ()-> new StairBlock(ModBlocks.REBAR_CONCRETE_BLOCK.get()::defaultBlockState, BlockBehaviour.Properties.copy(Blocks.STONE).strength(1f, 2000f).isValidSpawn(ModBlocks::neverSpawn))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> REBAR_CONCRETE_WALL = registerWithItem(BLOCKS.register("rebar_concrete_wall", ()-> new WallBlock(BlockBehaviour.Properties.copy(Blocks.STONE).strength(1f, 2000f).isValidSpawn(ModBlocks::neverSpawn))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> REBAR_CONCRETE_TILE_BLOCK = registerWithItem(BLOCKS.register("rebar_concrete_tile", ()-> new Block(BlockBehaviour.Properties.copy(Blocks.STONE).isValidSpawn(ModBlocks::neverSpawn).strength(1f, 2000f))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> REBAR_CONCRETE_TILE_SLAB = registerWithItem(BLOCKS.register("rebar_concrete_tile_slab", ()-> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.STONE).strength(1f, 2000f).isValidSpawn(ModBlocks::neverSpawn))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> REBAR_CONCRETE_TILE_STAIRS = registerWithItem(BLOCKS.register("rebar_concrete_tile_stairs", ()-> new StairBlock(ModBlocks.REBAR_CONCRETE_BLOCK.get()::defaultBlockState, BlockBehaviour.Properties.copy(Blocks.STONE).strength(1f, 2000f).isValidSpawn(ModBlocks::neverSpawn))), new Item.Properties());
|
||||
|
||||
/*public static final RegistryObject<Block> REBAR_CONCRETE_HALFSLAB = registerWithItem(BLOCKS.register("halfslab_rebar_concrete", () -> new SlabSliceBlock(
|
||||
StandardBlocks.CFG_CUTOUT,
|
||||
BlockBehaviour.Properties.of().strength(1.0f, 2000f).sound(SoundType.STONE).isValidSpawn(ModBlocks::neverSpawn)
|
||||
)), new Item.Properties());*/
|
||||
|
||||
public static final RegistryObject<Block> PANZER_GLASS_BLOCK = registerWithItem(BLOCKS.register("panzerglass_block", ()-> new PartialTransparentBlock(BlockBehaviour.Properties.of().noOcclusion().strength(0.5f, 2000f).isValidSpawn(ModBlocks::neverSpawn).sound(SoundType.METAL))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> PANZER_GLASS_SLAB = registerWithItem(BLOCKS.register("panzerglass_slab", ()-> new PartialTransparentSlabBlock(BlockBehaviour.Properties.of().noOcclusion().strength(0.5f, 2000f).isValidSpawn(ModBlocks::neverSpawn).sound(SoundType.METAL))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> OLD_INDUSTRIAL_WOOD_PLANKS = registerWithItem(BLOCKS.register("old_industrial_wood_planks", ()-> new Block(BlockBehaviour.Properties.copy(Blocks.OAK_PLANKS).strength(0.5f, 6f).sound(SoundType.WOOD))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> OLD_INDUSTRIAL_WOOD_SLAB = registerWithItem(BLOCKS.register("old_industrial_wood_slab", ()-> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.OAK_PLANKS).strength(0.5f, 6f).sound(SoundType.WOOD))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> OLD_INDUSTRIAL_WOOD_STAIRS = registerWithItem(BLOCKS.register("old_industrial_wood_stairs", ()-> new StairBlock(ModBlocks.OLD_INDUSTRIAL_WOOD_PLANKS.get()::defaultBlockState, BlockBehaviour.Properties.copy(Blocks.OAK_PLANKS).strength(0.5f, 6f).sound(SoundType.WOOD))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> OLD_INDUSTRIAL_WOOD_DOOR = registerWithItem(BLOCKS.register("old_industrial_wood_door", ()-> new DoorBlock(BlockBehaviour.Properties.copy(Blocks.OAK_PLANKS).strength(0.5f, 6f).noOcclusion(), BlockSetType.DARK_OAK)), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> STEEL_CATWALK = registerWithItem(BLOCKS.register("steel_catwalk", ()-> new BlockCustomVoxels(gratingBlock, Block.box(0, 0, 0, 16, 2, 16))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> STEEL_CATWALK_TOP = registerWithItem(BLOCKS.register("steel_catwalk_top", ()-> new BlockCustomVoxels(gratingBlock, Block.box(0, 14, 0, 16, 16, 16))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> STEEL_GRATING = registerWithItem(BLOCKS.register("steel_floor_grating", ()-> new BlockCustomVoxels(gratingBlock, Block.box(0, 0, 0, 16, 2, 16))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> STEEL_GRATING_TOP = registerWithItem(BLOCKS.register("steel_floor_grating_top", ()-> new BlockCustomVoxels(gratingBlock, Block.box(0, 14, 0, 16, 16, 16))), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> STEEL_TABLE = registerWithItem(BLOCKS.register("steel_table", ()-> new BlockCustomVoxels(gratingBlock, Block.box(0, 0, 0, 16, 16, 16))), new Item.Properties());
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_NORTH = Shapes.join(Block.box(1, 10, 0, 15, 12, 8), Block.box(1, 2, 8, 15, 4, 16), BooleanOp.OR);
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_SOUTH = Shapes.join(Block.box(1, 10, 8, 15, 12, 16), Block.box(1, 2, 0, 15, 4, 8), BooleanOp.OR);
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_EAST = Shapes.join(Block.box(8, 10, 1, 16, 12, 15), Block.box(0, 2, 1, 8, 4, 15), BooleanOp.OR);
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_WEST = Shapes.join(Block.box(0, 10, 1, 8, 12, 15), Block.box(8, 2, 1, 16, 4, 15), BooleanOp.OR);
|
||||
|
||||
public static final RegistryObject<Block> STEEL_CATWALK_STAIRS = registerWithItem(BLOCKS.register("steel_catwalk_stairs", ()-> new RotatableBlockCustomVoxels(gratingBlock, STEEL_CATWALK_STAIRS_NORTH, STEEL_CATWALK_STAIRS_SOUTH, STEEL_CATWALK_STAIRS_WEST, STEEL_CATWALK_STAIRS_EAST)), new Item.Properties());
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_LR_NORTH = Stream.of(
|
||||
Block.box(1, 2, 8, 15, 4, 16),
|
||||
Block.box(1, 10, 0, 15, 12, 8),
|
||||
Block.box(0, 0, 0, 1, 21, 16)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_LR_SOUTH = Stream.of(
|
||||
Block.box(1, 2, 0, 15, 4, 8),
|
||||
Block.box(1, 10, 8, 15, 12, 16),
|
||||
Block.box(15, 0, 0, 16, 21, 16)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_LR_EAST = Stream.of(
|
||||
Block.box(0, 2, 1, 8, 4, 15),
|
||||
Block.box(8, 10, 1, 16, 12, 15),
|
||||
Block.box(0, 0, 0, 16, 21, 1)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_LR_WEST = Stream.of(
|
||||
Block.box(8, 2, 1, 16, 4, 15),
|
||||
Block.box(0, 10, 1, 8, 12, 15),
|
||||
Block.box(0, 0, 15, 16, 21, 16)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
public static final RegistryObject<Block> STEEL_CATWALK_STAIRS_LR = registerWithItem(BLOCKS.register("steel_catwalk_stairs_lr", ()-> new RotatableBlockCustomVoxels(gratingBlock, STEEL_CATWALK_STAIRS_LR_NORTH, STEEL_CATWALK_STAIRS_LR_SOUTH, STEEL_CATWALK_STAIRS_LR_WEST, STEEL_CATWALK_STAIRS_LR_EAST)), new Item.Properties());
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_RR_NORTH = Stream.of(
|
||||
Block.box(1, 2, 8, 15, 4, 16),
|
||||
Block.box(1, 10, 0, 15, 12, 8),
|
||||
Block.box(15, 0, 0, 16, 21, 16)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_RR_SOUTH = Stream.of(
|
||||
Block.box(1, 2, 0, 15, 4, 8),
|
||||
Block.box(1, 10, 8, 15, 12, 16),
|
||||
Block.box(0, 0, 0, 1, 21, 16)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_RR_EAST = Stream.of(
|
||||
Block.box(0, 2, 1, 8, 4, 15),
|
||||
Block.box(8, 10, 1, 16, 12, 15),
|
||||
Block.box(0, 0, 15, 16, 21, 16)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_RR_WEST = Stream.of(
|
||||
Block.box(8, 2, 1, 16, 4, 15),
|
||||
Block.box(0, 10, 1, 8, 12, 15),
|
||||
Block.box(0, 0, 0, 16, 21, 1)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
|
||||
public static final RegistryObject<Block> STEEL_CATWALK_STAIRS_RR = registerWithItem(BLOCKS.register("steel_catwalk_stairs_rr", ()-> new RotatableBlockCustomVoxels(gratingBlock, STEEL_CATWALK_STAIRS_RR_NORTH, STEEL_CATWALK_STAIRS_RR_SOUTH, STEEL_CATWALK_STAIRS_RR_WEST, STEEL_CATWALK_STAIRS_RR_EAST)), new Item.Properties());
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_DR_NORTH = Stream.of(
|
||||
Block.box(1, 10, 0, 15, 12, 8),
|
||||
Block.box(1, 2, 8, 15, 4, 16),
|
||||
Block.box(0, 0, 0, 1, 21, 16),
|
||||
Block.box(15, 0, 0, 16, 21, 16)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_DR_SOUTH = Stream.of(
|
||||
Block.box(1, 10, 8, 15, 12, 16),
|
||||
Block.box(1, 2, 0, 15, 4, 8),
|
||||
Block.box(15, 0, 0, 16, 21, 16),
|
||||
Block.box(0, 0, 0, 1, 21, 16)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_DR_WEST = Stream.of(
|
||||
Block.box(8, 10, 1, 16, 12, 15),
|
||||
Block.box(0, 2, 1, 8, 4, 15),
|
||||
Block.box(0, 0, 0, 16, 21, 1),
|
||||
Block.box(0, 0, 15, 16, 21, 16)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
|
||||
private static final VoxelShape STEEL_CATWALK_STAIRS_DR_EAST = Stream.of(
|
||||
Block.box(0, 10, 1, 8, 12, 15),
|
||||
Block.box(8, 2, 1, 16, 4, 15),
|
||||
Block.box(0, 0, 15, 16, 21, 16),
|
||||
Block.box(0, 0, 0, 16, 21, 1)
|
||||
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR)).get();
|
||||
|
||||
public static final RegistryObject<Block> STEEL_CATWALK_STAIRS_DR = registerWithItem(BLOCKS.register("steel_catwalk_stairs_dr", ()-> new RotatableBlockCustomVoxels(gratingBlock, STEEL_CATWALK_STAIRS_DR_NORTH, STEEL_CATWALK_STAIRS_DR_SOUTH, STEEL_CATWALK_STAIRS_DR_WEST, STEEL_CATWALK_STAIRS_DR_EAST)), new Item.Properties());
|
||||
|
||||
private static final VoxelShape STEEL_RAILING_NORTH = Block.box(0.25, 0.25, 0.25, 15.75, 16, 1.25);
|
||||
private static final VoxelShape STEEL_RAILING_SOUTH = Block.box(0.25, 0.25, 14.75, 15.75, 16, 15.75);
|
||||
|
||||
private static final VoxelShape STEEL_RAILING_WEST = Block.box(14.75, 0.25, 0.25, 15.75, 16, 15.75);
|
||||
private static final VoxelShape STEEL_RAILING_EAST = Block.box(0.25, 0.25, 0.25, 1.25, 16, 15.75);
|
||||
public static final RegistryObject<Block> STEEL_RAILING = registerWithItem(BLOCKS.register("steel_railing", ()->new RotatableBlockCustomVoxels(gratingBlock, STEEL_RAILING_NORTH, STEEL_RAILING_SOUTH, STEEL_RAILING_WEST, STEEL_RAILING_EAST)), new Item.Properties());
|
||||
|
||||
public static final RegistryObject<Block> STEEL_CATWALK_BLOCK = registerWithItem(BLOCKS.register("steel_catwalk_block", ()-> new Block(gratingBlock)), new Item.Properties());
|
||||
|
||||
public static final VoxelShape SHAPE_T_FLIPFLOP = Block.box(0, 0, 0, 16, 1, 16);
|
||||
|
||||
public static final RegistryObject<Block> TFLIPFLOP_BLOCK = registerWithItem(BLOCKS.register("tflipflop", () -> new TFlipFlopBlock(noViewBlocking().noOcclusion().noCollission())), new Item.Properties());
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
package dev.zontreck.essentials.blocks.logicgates;
|
||||
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.essentials.blocks.ModBlocks;
|
||||
import dev.zontreck.libzontreck.blocks.RedstoneBlock;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class TFlipFlopBlock extends RedstoneBlock
|
||||
{
|
||||
|
||||
|
||||
public TFlipFlopBlock(Properties p_49795_) {
|
||||
super(p_49795_, Direction.NORTH, Direction.SOUTH);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean propagatesSkylightDown(BlockState p_49928_, BlockGetter p_49929_, BlockPos p_49930_) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
|
||||
return ModBlocks.SHAPE_T_FLIPFLOP;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRedstone(LevelReader levelReader, BlockPos blockPos, boolean b) {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRedstoneInputChanged(LevelReader levelReader, BlockPos blockPos, boolean b) {
|
||||
BlockState state = levelReader.getBlockState(blockPos);
|
||||
AriasEssentials.LOGGER.info("Redstone connected to TFlipFlop block, B : " + b + "; INP:" + state.getValue(INPUT_POWER) + "; POW:" + state.getValue(POWERED));
|
||||
if (b) {
|
||||
if (state.getValue(POWERED)) {
|
||||
state.setValue(POWERED, false);
|
||||
} else {
|
||||
state.setValue(POWERED, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSignal(BlockState state, BlockGetter level, BlockPos pos, Direction direction) {
|
||||
int signal = super.getSignal(state, level, pos, direction);
|
||||
return state.getValue(FACING) == direction ? signal : 0;
|
||||
}
|
||||
}
|
|
@ -5,9 +5,8 @@ import com.mojang.blaze3d.platform.InputConstants;
|
|||
import net.minecraft.client.KeyMapping;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class Keybindings {
|
||||
|
@ -20,5 +19,11 @@ public class Keybindings {
|
|||
final KeyMapping key = new KeyMapping(name, keycode, category);
|
||||
return key;
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerKeyMappings(RegisterKeyMappingsEvent event)
|
||||
{
|
||||
event.register(AUTOWALK);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
package dev.zontreck.essentials.gui;
|
||||
package dev.zontreck.essentials.client.renderer;
|
||||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
|
@ -17,7 +17,7 @@ import dev.zontreck.essentials.configs.client.AEClientConfig;
|
|||
import net.minecraft.Util;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.Gui;
|
||||
import net.minecraft.client.gui.GuiComponent;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
|
@ -44,7 +44,7 @@ public class HeartsRenderer {
|
|||
"textures/gui/hearts.png");
|
||||
private static final ResourceLocation ICON_ABSORB = new ResourceLocation(AriasEssentials.MODID,
|
||||
"textures/gui/absorb.png");
|
||||
private static final ResourceLocation ICON_VANILLA = GuiComponent.GUI_ICONS_LOCATION;
|
||||
private static final ResourceLocation ICON_VANILLA = Gui.GUI_ICONS_LOCATION;
|
||||
|
||||
private final Minecraft mc = Minecraft.getInstance();
|
||||
|
||||
|
@ -67,8 +67,8 @@ public class HeartsRenderer {
|
|||
* @param width Width to draw
|
||||
* @param height Height to draw
|
||||
*/
|
||||
private void blit(PoseStack matrixStack, int x, int y, int textureX, int textureY, int width, int height) {
|
||||
Minecraft.getInstance().gui.blit(matrixStack, x, y, textureX, textureY, width, height);
|
||||
private void blit(GuiGraphics matrixStack, int x, int y, int textureX, int textureY, int width, int height, ResourceLocation resource) {
|
||||
matrixStack.blit(resource, x, y, textureX, textureY, width, height);
|
||||
}
|
||||
|
||||
/* HUD */
|
||||
|
@ -178,7 +178,7 @@ public class HeartsRenderer {
|
|||
MARGIN += 72;
|
||||
float absorbRemaining = absorb;
|
||||
|
||||
PoseStack matrixStack = event.getPoseStack();
|
||||
GuiGraphics matrixStack = event.getGuiGraphics();
|
||||
for (int i = Mth.ceil((healthMax + absorb) / 2.0F) - 1; i >= 0; --i) {
|
||||
int row = Mth.ceil((float) (i + 1) / 10.0F) - 1;
|
||||
int x = left + i % 10 * 8;
|
||||
|
@ -189,29 +189,29 @@ public class HeartsRenderer {
|
|||
if (i == this.regen)
|
||||
y -= 2;
|
||||
|
||||
this.blit(matrixStack, x, y, BACKGROUND, TOP, 9, 9);
|
||||
this.blit(matrixStack, x, y, BACKGROUND, TOP, 9, 9, ICON_VANILLA);
|
||||
|
||||
if (highlight) {
|
||||
if (i * 2 + 1 < healthLast) {
|
||||
this.blit(matrixStack, x, y, MARGIN + 54, TOP, 9, 9); // 6
|
||||
this.blit(matrixStack, x, y, MARGIN + 54, TOP, 9, 9, ICON_VANILLA); // 6
|
||||
} else if (i * 2 + 1 == healthLast) {
|
||||
this.blit(matrixStack, x, y, MARGIN + 63, TOP, 9, 9); // 7
|
||||
this.blit(matrixStack, x, y, MARGIN + 63, TOP, 9, 9, ICON_VANILLA); // 7
|
||||
}
|
||||
}
|
||||
|
||||
if (absorbRemaining > 0.0F) {
|
||||
if (absorbRemaining == absorb && absorb % 2.0F == 1.0F) {
|
||||
this.blit(matrixStack, x, y, MARGIN + 153, TOP, 9, 9); // 17
|
||||
this.blit(matrixStack, x, y, MARGIN + 153, TOP, 9, 9, ICON_VANILLA); // 17
|
||||
absorbRemaining -= 1.0F;
|
||||
} else {
|
||||
this.blit(matrixStack, x, y, MARGIN + 144, TOP, 9, 9); // 16
|
||||
this.blit(matrixStack, x, y, MARGIN + 144, TOP, 9, 9, ICON_VANILLA); // 16
|
||||
absorbRemaining -= 2.0F;
|
||||
}
|
||||
} else {
|
||||
if (i * 2 + 1 < health) {
|
||||
this.blit(matrixStack, x, y, MARGIN + 36, TOP, 9, 9); // 4
|
||||
this.blit(matrixStack, x, y, MARGIN + 36, TOP, 9, 9, ICON_VANILLA); // 4
|
||||
} else if (i * 2 + 1 == health) {
|
||||
this.blit(matrixStack, x, y, MARGIN + 45, TOP, 9, 9); // 5
|
||||
this.blit(matrixStack, x, y, MARGIN + 45, TOP, 9, 9, ICON_VANILLA); // 5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -229,10 +229,9 @@ public class HeartsRenderer {
|
|||
RenderSystem.disableBlend();
|
||||
this.mc.getProfiler().pop();
|
||||
MinecraftForge.EVENT_BUS
|
||||
.post(new RenderGuiOverlayEvent.Post(mc.getWindow(), event.getPoseStack(), event.getPartialTick(), ActualOverlay));
|
||||
.post(new RenderGuiOverlayEvent.Post(mc.getWindow(), event.getGuiGraphics(), event.getPartialTick(), ActualOverlay));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the texture from potion effects
|
||||
*
|
||||
|
@ -264,7 +263,7 @@ public class HeartsRenderer {
|
|||
* @param yBasePos Health bar top corner
|
||||
* @param player Player instance
|
||||
*/
|
||||
private void renderExtraHearts(PoseStack matrixStack, int xBasePos, int yBasePos, Player player) {
|
||||
private void renderExtraHearts(GuiGraphics matrixStack, int xBasePos, int yBasePos, Player player) {
|
||||
int potionOffset = this.getPotionOffset(player);
|
||||
|
||||
// Extra hearts
|
||||
|
@ -273,7 +272,6 @@ public class HeartsRenderer {
|
|||
this.renderCustomHearts(matrixStack, xBasePos, yBasePos, potionOffset, hp, false);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Renders the absorption health above 10 hearts
|
||||
*
|
||||
|
@ -282,7 +280,7 @@ public class HeartsRenderer {
|
|||
* @param yBasePos Health bar top corner
|
||||
* @param player Player instance
|
||||
*/
|
||||
private void renderExtraAbsorption(PoseStack matrixStack, int xBasePos, int yBasePos, Player player) {
|
||||
private void renderExtraAbsorption(GuiGraphics matrixStack, int xBasePos, int yBasePos, Player player) {
|
||||
int potionOffset = this.getPotionOffset(player);
|
||||
|
||||
// Extra hearts
|
||||
|
@ -303,6 +301,7 @@ public class HeartsRenderer {
|
|||
|
||||
/**
|
||||
* Shared logic to render custom hearts
|
||||
*
|
||||
* @param matrixStack Matrix stack instance
|
||||
* @param xBasePos Health bar top corner
|
||||
* @param yBasePos Health bar top corner
|
||||
|
@ -310,7 +309,8 @@ public class HeartsRenderer {
|
|||
* @param count Number to render
|
||||
* @param absorb If true, render absorption hearts
|
||||
*/
|
||||
private void renderCustomHearts(PoseStack matrixStack, int xBasePos, int yBasePos, int potionOffset, int count, boolean absorb) {
|
||||
private void renderCustomHearts(GuiGraphics matrixStack, int xBasePos, int yBasePos, int potionOffset, int count,
|
||||
boolean absorb) {
|
||||
int regenOffset = absorb ? 10 : 0;
|
||||
for (int iter = 0; iter < count / 20; iter++) {
|
||||
int renderHearts = (count - 20 * (iter + 1)) / 2;
|
||||
|
@ -321,16 +321,16 @@ public class HeartsRenderer {
|
|||
for (int i = 0; i < renderHearts; i++) {
|
||||
int y = this.getYRegenOffset(i, regenOffset);
|
||||
if (absorb) {
|
||||
this.blit(matrixStack, xBasePos + 8 * i, yBasePos + y, 0, 54, 9, 9);
|
||||
this.blit(matrixStack, xBasePos + 8 * i, yBasePos + y, 0, 54, 9, 9, ICON_ABSORB);
|
||||
}
|
||||
this.blit(matrixStack, xBasePos + 8 * i, yBasePos + y, 18 * heartIndex, potionOffset, 9, 9);
|
||||
this.blit(matrixStack, xBasePos + 8 * i, yBasePos + y, 18 * heartIndex, potionOffset, 9, 9, ICON_HEARTS);
|
||||
}
|
||||
if (count % 2 == 1 && renderHearts < 10) {
|
||||
int y = this.getYRegenOffset(renderHearts, regenOffset);
|
||||
if (absorb) {
|
||||
this.blit(matrixStack, xBasePos + 8 * renderHearts, yBasePos + y, 0, 54, 9, 9);
|
||||
this.blit(matrixStack, xBasePos + 8 * renderHearts, yBasePos + y, 0, 54, 9, 9, ICON_ABSORB);
|
||||
}
|
||||
this.blit(matrixStack, xBasePos + 8 * renderHearts, yBasePos + y, 9 + 18 * heartIndex, potionOffset, 9, 9);
|
||||
this.blit(matrixStack, xBasePos + 8 * renderHearts, yBasePos + y, 9 + 18 * heartIndex, potionOffset, 9, 9, ICON_HEARTS);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
package dev.zontreck.essentials.client.renderer;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.math.Axis;
|
||||
import dev.zontreck.essentials.entities.TimeBoostEntity;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.client.gui.Font;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.entity.EntityRenderer;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import org.joml.Quaternionf;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
public class TimeBoostEntityRenderer extends EntityRenderer<TimeBoostEntity>
|
||||
{
|
||||
|
||||
public TimeBoostEntityRenderer(EntityRendererProvider.Context erp) {
|
||||
super(erp);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void render(TimeBoostEntity entity, float entityYaw, float partialTicks, PoseStack matrixStack, MultiBufferSource bufferIn, int packedLightIn) {
|
||||
String timeRate = "x" + 2 * entity.getTimeRate();
|
||||
float paddingLeftRight = 2 * entity.getTimeRate() < 10 ? 0.11F : 0.19F;
|
||||
drawText(matrixStack, bufferIn, timeRate, new Vector3f(-paddingLeftRight, 0.064F, 0.51F), Axis.YP.rotationDegrees(0), ChatFormatting.WHITE.getColor()); // Front
|
||||
drawText(matrixStack, bufferIn, timeRate, new Vector3f(paddingLeftRight, 0.064F, -0.51F), Axis.YP.rotationDegrees(180F), ChatFormatting.WHITE.getColor()); // Back
|
||||
drawText(matrixStack, bufferIn, timeRate, new Vector3f(0.51F, 0.064F, paddingLeftRight), Axis.YP.rotationDegrees(90F), ChatFormatting.WHITE.getColor()); // Right
|
||||
drawText(matrixStack, bufferIn, timeRate, new Vector3f(-0.51F, 0.064F, -paddingLeftRight), Axis.YP.rotationDegrees(-90F), ChatFormatting.WHITE.getColor()); // Left
|
||||
drawText(matrixStack, bufferIn, timeRate, new Vector3f(-paddingLeftRight, 0.51F, -0.064F), Axis.XP.rotationDegrees(90F), ChatFormatting.WHITE.getColor()); // Top
|
||||
drawText(matrixStack, bufferIn, timeRate, new Vector3f(-paddingLeftRight, -0.51F, 0.064F), Axis.XP.rotationDegrees(-90F), ChatFormatting.WHITE.getColor()); // Bottom
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureLocation(TimeBoostEntity entity) {
|
||||
return null;
|
||||
}
|
||||
|
||||
private void drawText(PoseStack matrixStack, MultiBufferSource source, String text, Vector3f translateVector, Quaternionf rotate, int color) {
|
||||
matrixStack.pushPose();
|
||||
matrixStack.translate(translateVector.x(), translateVector.y(), translateVector.z());
|
||||
matrixStack.scale(0.02F, -0.02F, 0.02F);
|
||||
matrixStack.mulPose(rotate);
|
||||
getFont().drawInBatch(
|
||||
text,
|
||||
0,
|
||||
0,
|
||||
-1,
|
||||
false,
|
||||
matrixStack.last().pose(),
|
||||
source,
|
||||
Font.DisplayMode.NORMAL,
|
||||
0,
|
||||
color
|
||||
);
|
||||
matrixStack.popPose();
|
||||
}
|
||||
}
|
|
@ -2,7 +2,6 @@ package dev.zontreck.essentials.commands.gui;
|
|||
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.BoolArgumentType;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.essentials.Messages;
|
||||
import dev.zontreck.essentials.events.CommandExecutionEvent;
|
||||
import dev.zontreck.essentials.networking.ModMessages;
|
||||
|
@ -10,7 +9,6 @@ import dev.zontreck.essentials.networking.packets.s2c.S2CUpdateHearts;
|
|||
import dev.zontreck.libzontreck.util.ChatHelpers;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
||||
public class HeartsCommand
|
||||
|
@ -23,30 +21,24 @@ public class HeartsCommand
|
|||
private static int hearts(CommandSourceStack stack, boolean compressHearts)
|
||||
{
|
||||
|
||||
ServerPlayer player = null;
|
||||
try {
|
||||
player = stack.getPlayerOrException();
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(player, "hearts");
|
||||
var exec = new CommandExecutionEvent(stack.getPlayer(), "hearts");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
// Send the state to the client, then update the config
|
||||
// Send feedback to the user
|
||||
ChatHelpers.broadcastTo(player.getUUID(), ChatHelpers.macro(Messages.HEARTS_UPDATED), stack.getServer());
|
||||
ChatHelpers.broadcastTo(stack.getPlayer().getUUID(), ChatHelpers.macro(Messages.HEARTS_UPDATED), stack.getServer());
|
||||
|
||||
S2CUpdateHearts update = new S2CUpdateHearts(compressHearts);
|
||||
ModMessages.sendToPlayer(update, player);
|
||||
ModMessages.sendToPlayer(update, stack.getPlayer());
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static int usage(CommandSourceStack stack)
|
||||
{
|
||||
ChatHelpers.broadcastTo(stack.getEntity().getUUID(), ChatHelpers.macro(Messages.HEARTS_USAGE), stack.getServer());
|
||||
ChatHelpers.broadcastTo(stack.getPlayer().getUUID(), ChatHelpers.macro(Messages.HEARTS_USAGE), stack.getServer());
|
||||
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -3,7 +3,6 @@ package dev.zontreck.essentials.commands.homes;
|
|||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.StringArgumentType;
|
||||
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.essentials.Messages;
|
||||
import dev.zontreck.essentials.events.CommandExecutionEvent;
|
||||
|
@ -22,10 +21,8 @@ public class DelHomeCommand {
|
|||
Commands.literal("rmhome")
|
||||
.executes(c->rmHome(c.getSource(), "default"))
|
||||
.then(Commands.argument("nickname", StringArgumentType.string())
|
||||
.suggests(HomesSuggestionProvider.PROVIDER)
|
||||
.executes(c -> rmHome(c.getSource(), StringArgumentType.getString(c, "nickname")))
|
||||
)
|
||||
|
||||
)
|
||||
);
|
||||
|
||||
//dispatcher.register(Commands.literal("sethome").then(Commands.argument("nickname", StringArgumentType.string())).executes(command -> {
|
||||
|
@ -37,12 +34,7 @@ public class DelHomeCommand {
|
|||
private static int rmHome(CommandSourceStack ctx, String homeName)
|
||||
{
|
||||
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(ctx.getPlayerOrException(), "delhome");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(ctx.getPlayer(), "delhome");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
|
|
@ -22,8 +22,7 @@ import net.minecraftforge.common.MinecraftForge;
|
|||
public class HomeCommand {
|
||||
public static void register(CommandDispatcher<CommandSourceStack> dispatcher)
|
||||
{
|
||||
dispatcher.register(Commands.literal("home").executes(c-> home(c.getSource(), "default"))
|
||||
.then(Commands.argument("nickname", StringArgumentType.string()).suggests(HomesSuggestionProvider.PROVIDER).executes(c -> home(c.getSource(), StringArgumentType.getString(c, "nickname")))));
|
||||
dispatcher.register(Commands.literal("home").executes(c-> home(c.getSource(), "default")).then(Commands.argument("name", StringArgumentType.string()).executes(c->home(c.getSource(), StringArgumentType.getString(c, "name")))));
|
||||
|
||||
//dispatcher.register(Commands.literal("sethome").then(Commands.argument("nickname", StringArgumentType.string())).executes(command -> {
|
||||
//String arg = StringArgumentType.getString(command, "nickname");
|
||||
|
@ -33,12 +32,7 @@ public class HomeCommand {
|
|||
|
||||
private static int home(CommandSourceStack ctx, String homeName)
|
||||
{
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(ctx.getPlayerOrException(), "home");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(ctx.getPlayer(), "home");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
|
|
@ -60,7 +60,7 @@ public class HomesCommand {
|
|||
{
|
||||
stack = new ItemStack(Items.GRASS_BLOCK, 1);
|
||||
}
|
||||
stack.setHoverName(ChatHelpers.macro(string.homeName));
|
||||
stack.setHoverName(Component.literal(string.homeName));
|
||||
|
||||
ChestGUIButton button = new ChestGUIButton(stack, (stackx, container, lore)-> {
|
||||
|
||||
|
|
|
@ -17,8 +17,9 @@ import dev.zontreck.essentials.homes.Home;
|
|||
import dev.zontreck.libzontreck.chat.ChatColor;
|
||||
import dev.zontreck.essentials.configs.server.AEServerConfig;
|
||||
import dev.zontreck.libzontreck.util.ChatHelpers;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2f;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2i;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3d;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
@ -43,12 +44,7 @@ public class SetHomeCommand {
|
|||
private static int setHome(CommandSourceStack ctx, String homeName)
|
||||
{
|
||||
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(ctx.getPlayerOrException(), "sethome");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(ctx.getPlayer(), "sethome");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
@ -64,7 +60,7 @@ public class SetHomeCommand {
|
|||
p = ctx.getPlayerOrException();
|
||||
|
||||
|
||||
if(TeleportActioner.isBlacklistedDimension(p.getLevel()))
|
||||
if(TeleportActioner.isBlacklistedDimension(p.serverLevel()))
|
||||
{
|
||||
ChatHelpers.broadcastTo(p, ChatHelpers.macro(Messages.ESSENTIALS_PREFIX + AEServerConfig.getInstance().messages.BlacklistedDimensionError), p.server);
|
||||
|
||||
|
@ -74,11 +70,10 @@ public class SetHomeCommand {
|
|||
Vec3 position = p.position();
|
||||
Vec2 rot = p.getRotationVector();
|
||||
|
||||
TeleportDestination dest = new TeleportDestination(new Vector3(position), new Vector2(rot), p.getLevel());
|
||||
|
||||
BlockState bs = p.getLevel().getBlockState(dest.Position.moveDown().asBlockPos());
|
||||
TeleportDestination dest = new TeleportDestination(new Vector3d(position), new Vector2f(rot), p.serverLevel());
|
||||
BlockState bs = p.serverLevel().getBlockState(dest.Position.moveDown().asBlockPos());
|
||||
|
||||
Home newhome = new Home(p, homeName, dest, new ItemStack(bs.getBlock().asItem()));
|
||||
Home newhome = new Home(p, homeName, dest, new ItemStack(p.getBlockStateOn().getBlock().asItem()));
|
||||
AriasEssentials.player_homes.get(p.getUUID()).add(newhome);
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package dev.zontreck.essentials.commands.teleport;
|
||||
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.essentials.Messages;
|
||||
import dev.zontreck.essentials.configs.server.AEServerConfig;
|
||||
import dev.zontreck.essentials.events.CommandExecutionEvent;
|
||||
|
@ -21,12 +20,7 @@ public class BackCommand
|
|||
|
||||
public static int back(CommandSourceStack ctx)
|
||||
{
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(ctx.getPlayerOrException(), "back");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(ctx.getPlayer(), "back");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
@ -34,20 +28,20 @@ public class BackCommand
|
|||
try {
|
||||
if(!AEServerConfig.getInstance().back.Enabled && !ctx.hasPermission(ctx.getServer().getOperatorUserPermissionLevel()))
|
||||
{
|
||||
ChatHelpers.broadcastTo(ctx.getPlayerOrException(), ChatHelpers.macro(Messages.TELEPORT_BACK_DISABLED), ctx.getServer());
|
||||
ChatHelpers.broadcastTo(ctx.getPlayer(), ChatHelpers.macro(Messages.TELEPORT_BACK_DISABLED), ctx.getServer());
|
||||
return 0;
|
||||
}
|
||||
|
||||
WorldPosition wp = BackPositionCaches.Pop(ctx.getPlayerOrException().getUUID());
|
||||
WorldPosition wp = BackPositionCaches.Pop(ctx.getPlayer().getUUID());
|
||||
|
||||
ChatHelpers.broadcastTo(ctx.getPlayerOrException(), ChatHelpers.macro(Messages.TELEPORT_BACK), ctx.getServer());
|
||||
ChatHelpers.broadcastTo(ctx.getPlayer(), ChatHelpers.macro(Messages.TELEPORT_BACK), ctx.getServer());
|
||||
|
||||
TeleportContainer cont = new TeleportContainer(ctx.getPlayerOrException(), wp.Position.asMinecraftVector(), ctx.getRotation(), wp.getActualDimension());
|
||||
TeleportContainer cont = new TeleportContainer(ctx.getPlayer(), wp.Position.asMinecraftVector(), ctx.getRotation(), wp.getActualDimension());
|
||||
|
||||
TeleportActioner.ApplyTeleportEffect(ctx.getPlayerOrException());
|
||||
TeleportActioner.ApplyTeleportEffect(ctx.getPlayer());
|
||||
TeleportActioner.PerformTeleport(cont, true);
|
||||
} catch (Exception e) {
|
||||
ChatHelpers.broadcastTo(ctx.getEntity().getUUID(), ChatHelpers.macro(Messages.NO_BACK), ctx.getServer());
|
||||
ChatHelpers.broadcastTo(ctx.getPlayer(), ChatHelpers.macro(Messages.NO_BACK), ctx.getServer());
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ package dev.zontreck.essentials.commands.teleport;
|
|||
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.essentials.events.CommandExecutionEvent;
|
||||
import dev.zontreck.essentials.rtp.RandomPositionFactory;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
|
@ -28,12 +27,7 @@ public class RTPCommand {
|
|||
|
||||
private static int rtp(CommandSourceStack source) {
|
||||
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(source.getPlayerOrException(), "rtp");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(source.getPlayer(), "rtp");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
@ -64,7 +58,7 @@ public class RTPCommand {
|
|||
Vec3 pos = pla.position();
|
||||
|
||||
//boolean found_place= false;
|
||||
RandomPositionFactory.beginRTP(pla, pla.getLevel());
|
||||
RandomPositionFactory.beginRTP(pla, pla.serverLevel());
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ package dev.zontreck.essentials.commands.teleport;
|
|||
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.essentials.Messages;
|
||||
import dev.zontreck.essentials.events.CommandExecutionEvent;
|
||||
import dev.zontreck.libzontreck.util.ChatHelpers;
|
||||
|
@ -28,12 +27,7 @@ public class SpawnCommand {
|
|||
|
||||
private static int respawn(CommandSourceStack source) {
|
||||
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(source.getPlayerOrException(), "spawn");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(source.getPlayer(), "spawn");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
@ -42,10 +36,10 @@ public class SpawnCommand {
|
|||
|
||||
ChatHelpers.broadcastTo(p.getUUID(), ChatHelpers.macro(Messages.RESPAWNING), p.server);
|
||||
|
||||
BlockPos spawn = p.getLevel().getSharedSpawnPos();
|
||||
BlockPos spawn = p.serverLevel().getSharedSpawnPos();
|
||||
|
||||
TeleportActioner.ApplyTeleportEffect(p);
|
||||
TeleportContainer cont = new TeleportContainer(p, new Vec3(spawn.getX(), spawn.getY(), spawn.getZ()), Vec2.ZERO, p.getLevel());
|
||||
TeleportContainer cont = new TeleportContainer(p, new Vec3(spawn.getX(), spawn.getY(), spawn.getZ()), Vec2.ZERO, p.serverLevel());
|
||||
TeleportActioner.PerformTeleport(cont, false);
|
||||
|
||||
|
||||
|
|
|
@ -2,9 +2,7 @@ package dev.zontreck.essentials.commands.teleport;
|
|||
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.ariaslib.terminal.Task;
|
||||
import dev.zontreck.ariaslib.util.DelayedExecutorService;
|
||||
import dev.zontreck.essentials.Messages;
|
||||
import dev.zontreck.essentials.events.CommandExecutionEvent;
|
||||
import dev.zontreck.libzontreck.chat.ChatColor;
|
||||
|
@ -38,12 +36,7 @@ public class TPACommand {
|
|||
|
||||
private static int tpa(CommandSourceStack source, ServerPlayer serverPlayer) {
|
||||
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(source.getPlayerOrException(), "tpa");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(source.getPlayer(), "tpa");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
@ -108,23 +101,29 @@ public class TPACommand {
|
|||
append(ChatHelpers.macro(Messages.TELEPORT_DENY).setStyle(s2)), serverPlayer.server);
|
||||
|
||||
TeleportRegistry.get().add(cont);
|
||||
DelayedExecutorService.getInstance().schedule(new Task("tpa_expire",true){
|
||||
Thread tx = new Thread(new Task("tpa_expire",true){
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try {
|
||||
Thread.sleep(30 * 1000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if(!(TeleportRegistry.get().contains(cont)))return;
|
||||
TeleportRegistry.get().remove(cont);
|
||||
|
||||
ChatHelpers.broadcastTo(cont.ToPlayer, ChatHelpers.macro("!Dark_Red!Teleport request has expired"), cont.Dimension.getServer());
|
||||
ChatHelpers.broadcastTo(cont.FromPlayer, ChatHelpers.macro("!Dark_Red!Teleport request has expired"), cont.Dimension.getServer());
|
||||
}
|
||||
}, 30);
|
||||
});
|
||||
tx.start();
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static int usage(CommandSourceStack source) {
|
||||
|
||||
ChatHelpers.broadcastTo(source.getEntity().getUUID(), ChatHelpers.macro("/tpa USAGE\n\n "+ChatColor.BOLD + ChatColor.DARK_GRAY+"/tpa "+ChatColor.DARK_RED+"target_player\n"), source.getServer());
|
||||
source.sendSystemMessage(ChatHelpers.macro("/tpa USAGE\n\n "+ChatColor.BOLD + ChatColor.DARK_GRAY+"/tpa "+ChatColor.DARK_RED+"target_player\n"));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,9 +2,7 @@ package dev.zontreck.essentials.commands.teleport;
|
|||
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.ariaslib.terminal.Task;
|
||||
import dev.zontreck.ariaslib.util.DelayedExecutorService;
|
||||
import dev.zontreck.essentials.Messages;
|
||||
import dev.zontreck.essentials.events.CommandExecutionEvent;
|
||||
import dev.zontreck.libzontreck.chat.ChatColor;
|
||||
|
@ -34,12 +32,7 @@ public class TPAHereCommand {
|
|||
|
||||
private static int tpa(CommandSourceStack source, ServerPlayer serverPlayer) {
|
||||
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(source.getPlayerOrException(), "tpahere");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(source.getPlayer(), "tpahere");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
@ -105,22 +98,27 @@ public class TPAHereCommand {
|
|||
|
||||
TeleportRegistry.get().add(cont);
|
||||
|
||||
DelayedExecutorService.getInstance().schedule(new Task("tpahere_expire",true){
|
||||
Thread tx = new Thread(new Task("tpahere_expire",true){
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try {
|
||||
Thread.sleep(30 * 1000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if(!(TeleportRegistry.get().contains(cont)))return;
|
||||
TeleportRegistry.get().remove(cont);
|
||||
|
||||
ChatHelpers.broadcastTo(cont.ToPlayer, ChatHelpers.macro("!Dark_Red!Teleport request has expired"), cont.Dimension.getServer());
|
||||
ChatHelpers.broadcastTo(cont.FromPlayer, ChatHelpers.macro("!Dark_Red!Teleport request has expired"), cont.Dimension.getServer());
|
||||
}
|
||||
}, 30);
|
||||
});
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static int usage(CommandSourceStack source) {
|
||||
ChatHelpers.broadcastTo(source.getEntity().getUUID(), ChatHelpers.macro("/tpahere USAGE\n\n !Bold!!Dark_Gray!/tpahere !Dark_Red!target_player\n"), source.getServer());
|
||||
source.sendSystemMessage(ChatHelpers.macro("/tpahere USAGE\n\n !Bold!!Dark_Gray!/tpahere !Dark_Red!target_player\n"));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,6 @@ import java.util.UUID;
|
|||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.StringArgumentType;
|
||||
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.essentials.Messages;
|
||||
import dev.zontreck.essentials.events.CommandExecutionEvent;
|
||||
import dev.zontreck.libzontreck.chat.ChatColor;
|
||||
|
@ -26,12 +25,7 @@ public class TPAcceptCommand {
|
|||
|
||||
private static int doAccept(CommandSourceStack source, String TPID) {
|
||||
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(source.getPlayerOrException(), "tpaccept");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(source.getPlayer(), "tpaccept");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
@ -60,7 +54,7 @@ public class TPAcceptCommand {
|
|||
cont.PlayerInst = from;
|
||||
cont.Position = to.position();
|
||||
cont.Rotation = to.getRotationVector();
|
||||
cont.Dimension = to.getLevel();
|
||||
cont.Dimension = to.serverLevel();
|
||||
|
||||
TeleportActioner.ApplyTeleportEffect(from);
|
||||
TeleportActioner.PerformTeleport(cont, false);
|
||||
|
|
|
@ -2,7 +2,6 @@ package dev.zontreck.essentials.commands.teleport;
|
|||
|
||||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.BoolArgumentType;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.essentials.Messages;
|
||||
import dev.zontreck.libzontreck.chestgui.ChestGUI;
|
||||
import dev.zontreck.libzontreck.chestgui.ChestGUIButton;
|
||||
|
@ -28,19 +27,13 @@ public class TPEffectsCommand
|
|||
|
||||
public static int tpeffects(CommandSourceStack source, boolean disabled)
|
||||
{
|
||||
ServerPlayer player = null;
|
||||
try {
|
||||
player = source.getPlayerOrException();
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
ServerPlayer player = source.getPlayer();
|
||||
|
||||
try {
|
||||
Profile prof = Profile.get_profile_of(player.getStringUUID());
|
||||
prof.NBT.putBoolean("tpeffects", disabled);
|
||||
|
||||
ChatHelpers.broadcastTo(player.getUUID(), ChatHelpers.macro(Messages.TP_EFFECTS_TOGGLED, disabled ? "disabled" : "enabled"), player.server);
|
||||
|
||||
return 0;
|
||||
} catch (UserProfileNotYetExistsException e) {
|
||||
throw new RuntimeException(e);
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
package dev.zontreck.essentials.commands.teleport;
|
||||
|
||||
import dev.zontreck.ariaslib.util.DelayedExecutorService;
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.essentials.configs.server.AEServerConfig;
|
||||
import dev.zontreck.libzontreck.profiles.Profile;
|
||||
import dev.zontreck.libzontreck.profiles.UserProfileNotYetExistsException;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3d;
|
||||
import dev.zontreck.libzontreck.vectors.WorldPosition;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.commands.EffectCommands;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
|
@ -21,26 +19,18 @@ public class TeleportActioner
|
|||
{
|
||||
public static void PerformTeleport(TeleportContainer contain, boolean eventless){
|
||||
//sub_runnable run = new sub_runnable(contain);
|
||||
DelayedExecutorService.getInstance().schedule(new TeleportRunnable(contain, eventless), 2);
|
||||
Thread tx = new Thread(new TeleportRunnable(contain, eventless));
|
||||
tx.start();
|
||||
}
|
||||
|
||||
public static boolean isBlacklistedDimension(ServerLevel level)
|
||||
{
|
||||
WorldPosition pos = new WorldPosition(Vector3.ZERO, level);
|
||||
WorldPosition pos = new WorldPosition(Vector3d.ZERO, level);
|
||||
return AEServerConfig.getInstance().teleport.Blacklist.contains(pos.Dimension);
|
||||
}
|
||||
|
||||
public static void ApplyTeleportEffect(ServerPlayer player){
|
||||
try {
|
||||
Profile prof = Profile.get_profile_of(player.getStringUUID());
|
||||
if(prof.NBT.getBoolean("tpeffects"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
} catch (UserProfileNotYetExistsException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
if(isBlacklistedDimension(player.getLevel())){
|
||||
if(isBlacklistedDimension(player.serverLevel())){
|
||||
return;
|
||||
}
|
||||
// 10/05/2022 - Thinking ahead here to future proof it so i can do things in threads safely
|
||||
|
@ -53,7 +43,7 @@ public class TeleportActioner
|
|||
for(int i = 0; i < effects.size(); i++) {
|
||||
RegistryObject<MobEffect> effect = RegistryObject.create(new ResourceLocation(effects.get(i)), ForgeRegistries.MOB_EFFECTS);
|
||||
|
||||
int duration = AriasEssentials.random.nextInt(2, 5) * 20;
|
||||
int duration = AriasEssentials.random.nextInt(5, 10) * 20;
|
||||
int amplifier = AriasEssentials.random.nextInt(1, 3);
|
||||
|
||||
if (effects.get(i).equals("minecraft:slow_falling"))
|
||||
|
|
|
@ -3,7 +3,7 @@ package dev.zontreck.essentials.commands.teleport;
|
|||
import java.time.Instant;
|
||||
import java.util.UUID;
|
||||
|
||||
import dev.zontreck.libzontreck.vectors.Vector3;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3d;
|
||||
import dev.zontreck.libzontreck.vectors.WorldPosition;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
@ -42,7 +42,7 @@ public class TeleportContainer implements Comparable{
|
|||
|
||||
public TeleportContainer(ServerPlayer f_p, Vec3 f_pos, Vec2 f_rot, ServerLevel f_dim) {
|
||||
SetTeleportDestination(f_p, f_pos, f_rot, f_dim);
|
||||
world_pos = new WorldPosition(new Vector3(f_pos), f_dim);
|
||||
world_pos = new WorldPosition(new Vector3d(f_pos), f_dim);
|
||||
}
|
||||
|
||||
private void SetTeleportDestination(ServerPlayer f_p, Vec3 f_pos, Vec2 f_rot, ServerLevel f_dim) {
|
||||
|
@ -50,7 +50,7 @@ public class TeleportContainer implements Comparable{
|
|||
Position = f_pos;
|
||||
Rotation = f_rot;
|
||||
Dimension = f_dim;
|
||||
world_pos = new WorldPosition(new Vector3(f_pos), f_dim);
|
||||
world_pos = new WorldPosition(new Vector3d(f_pos), f_dim);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
package dev.zontreck.essentials.commands.teleport;
|
||||
|
||||
import dev.zontreck.libzontreck.vectors.Vector2;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3;
|
||||
import dev.zontreck.libzontreck.api.Vector2;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2f;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2i;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3d;
|
||||
import dev.zontreck.libzontreck.vectors.WorldPosition;
|
||||
import dev.zontreck.libzontreck.exceptions.InvalidDeserialization;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
|
@ -13,20 +15,20 @@ import net.minecraft.server.level.ServerLevel;
|
|||
**/
|
||||
public class TeleportDestination extends WorldPosition
|
||||
{
|
||||
public Vector2 Rotation;
|
||||
public Vector2f Rotation;
|
||||
|
||||
public TeleportDestination(CompoundTag tag) throws InvalidDeserialization
|
||||
{
|
||||
super(tag, true);
|
||||
Rotation = new Vector2(tag.getString("Rotation"));
|
||||
Rotation = Vector2f.parseString(tag.getString("Rotation"));
|
||||
}
|
||||
public TeleportDestination(Vector3 pos, Vector2 rot, String dim)
|
||||
public TeleportDestination(Vector3d pos, Vector2f rot, String dim)
|
||||
{
|
||||
super(pos, dim);
|
||||
Rotation = rot;
|
||||
}
|
||||
|
||||
public TeleportDestination(Vector3 pos, Vector2 rot, ServerLevel dim)
|
||||
public TeleportDestination(Vector3d pos, Vector2f rot, ServerLevel dim)
|
||||
{
|
||||
super(pos,dim);
|
||||
Rotation=rot;
|
||||
|
|
|
@ -2,7 +2,6 @@ package dev.zontreck.essentials.commands.teleport;
|
|||
|
||||
|
||||
import dev.zontreck.ariaslib.terminal.Task;
|
||||
import dev.zontreck.ariaslib.util.DelayedExecutorService;
|
||||
import dev.zontreck.essentials.events.TeleportEvent;
|
||||
import dev.zontreck.libzontreck.vectors.WorldPosition;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
@ -35,15 +34,23 @@ public class TeleportRunnable extends Task
|
|||
|
||||
Action.PlayerInst.onUpdateAbilities();
|
||||
|
||||
DelayedExecutorService.getInstance().schedule(new Task("tp_action",true){
|
||||
|
||||
Thread tx = new Thread(new Task("tp_action",true){
|
||||
public final TeleportContainer container=Action;
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
container.PlayerInst.onUpdateAbilities();
|
||||
container.PlayerInst.setPos(container.Position);
|
||||
container.PlayerInst.giveExperiencePoints(1);
|
||||
}
|
||||
}, 1);
|
||||
});
|
||||
|
||||
tx.start();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package dev.zontreck.essentials.commands.warps;
|
|||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.StringArgumentType;
|
||||
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.essentials.Messages;
|
||||
import dev.zontreck.essentials.events.CommandExecutionEvent;
|
||||
import dev.zontreck.essentials.warps.NoSuchWarpException;
|
||||
|
@ -30,12 +29,7 @@ public class DelWarpCommand {
|
|||
|
||||
private static int setWarp(CommandSourceStack source, String string) {
|
||||
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(source.getPlayerOrException(), "delwarp");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(source.getPlayer(), "delwarp");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
|
|
@ -7,7 +7,6 @@ import java.sql.SQLException;
|
|||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.StringArgumentType;
|
||||
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.essentials.Messages;
|
||||
import dev.zontreck.essentials.commands.teleport.TeleportDestination;
|
||||
import dev.zontreck.essentials.events.CommandExecutionEvent;
|
||||
|
@ -16,8 +15,9 @@ import dev.zontreck.essentials.warps.Warp;
|
|||
import dev.zontreck.essentials.warps.WarpsProvider;
|
||||
import dev.zontreck.libzontreck.chat.ChatColor;
|
||||
import dev.zontreck.libzontreck.util.ChatHelpers;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2f;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2i;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3d;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.network.chat.Component;
|
||||
|
@ -41,12 +41,7 @@ public class RTPWarpCommand {
|
|||
|
||||
private static int setWarp(CommandSourceStack source, String string) {
|
||||
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(source.getPlayerOrException(), "setwarp");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(source.getPlayer(), "setwarp");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
@ -56,7 +51,7 @@ public class RTPWarpCommand {
|
|||
Vec3 position = p.position();
|
||||
Vec2 rot = p.getRotationVector();
|
||||
|
||||
TeleportDestination dest = new TeleportDestination(new Vector3(position), new Vector2(rot), p.getLevel());
|
||||
TeleportDestination dest = new TeleportDestination(new Vector3d(position), new Vector2f(rot), p.serverLevel());
|
||||
Warp warp = new Warp(p.getUUID(), string, true, true, dest, new ItemStack(p.getFeetBlockState().getBlock().asItem()));
|
||||
WarpCreatedEvent event = new WarpCreatedEvent(warp);
|
||||
if(MinecraftForge.EVENT_BUS.post(event))
|
||||
|
|
|
@ -7,7 +7,6 @@ import java.sql.SQLException;
|
|||
import com.mojang.brigadier.CommandDispatcher;
|
||||
import com.mojang.brigadier.arguments.StringArgumentType;
|
||||
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.essentials.Messages;
|
||||
import dev.zontreck.essentials.commands.teleport.TeleportDestination;
|
||||
import dev.zontreck.essentials.events.CommandExecutionEvent;
|
||||
|
@ -16,8 +15,9 @@ import dev.zontreck.essentials.warps.Warp;
|
|||
import dev.zontreck.essentials.warps.WarpsProvider;
|
||||
import dev.zontreck.libzontreck.chat.ChatColor;
|
||||
import dev.zontreck.libzontreck.util.ChatHelpers;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2f;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2i;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3d;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.network.chat.Component;
|
||||
|
@ -42,12 +42,7 @@ public class SetWarpCommand {
|
|||
|
||||
private static int setWarp(CommandSourceStack source, String string) {
|
||||
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(source.getPlayerOrException(), "setwarp");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(source.getPlayer(), "setwarp");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return 0;
|
||||
|
@ -58,9 +53,8 @@ public class SetWarpCommand {
|
|||
Vec3 position = p.position();
|
||||
Vec2 rot = p.getRotationVector();
|
||||
|
||||
TeleportDestination dest = new TeleportDestination(new Vector3(position), new Vector2(rot), p.getLevel());
|
||||
|
||||
BlockState bs = p.getLevel().getBlockState(dest.Position.moveDown().asBlockPos());
|
||||
TeleportDestination dest = new TeleportDestination(new Vector3d(position), new Vector2f(rot), p.serverLevel());
|
||||
BlockState bs = p.serverLevel().getBlockState(dest.Position.moveDown().asBlockPos());
|
||||
|
||||
Warp w = new Warp(p.getUUID(), string, false, true, dest, new ItemStack(bs.getBlock().asItem()));
|
||||
WarpCreatedEvent event = new WarpCreatedEvent(w);
|
||||
|
|
|
@ -15,7 +15,7 @@ import dev.zontreck.essentials.warps.Warp;
|
|||
import dev.zontreck.essentials.warps.WarpsProvider;
|
||||
import dev.zontreck.libzontreck.chat.Clickable;
|
||||
import dev.zontreck.libzontreck.util.ChatHelpers;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3d;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
|
@ -64,12 +64,12 @@ public class WarpCommand {
|
|||
|
||||
if(type==1){
|
||||
try {
|
||||
var exec = new CommandExecutionEvent(source.getPlayerOrException(), "rtp");
|
||||
var exec = new CommandExecutionEvent(source.getPlayer(), "rtp");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return;
|
||||
}
|
||||
dest.Position = Vector3.ZERO;
|
||||
dest.Position = Vector3d.ZERO;
|
||||
RandomPositionFactory.beginRTP(p, f_dim);
|
||||
return;
|
||||
} catch (Exception e) {
|
||||
|
@ -78,12 +78,7 @@ public class WarpCommand {
|
|||
}
|
||||
}
|
||||
|
||||
CommandExecutionEvent exec = null;
|
||||
try {
|
||||
exec = new CommandExecutionEvent(source.getPlayerOrException(), "warp");
|
||||
} catch (CommandSyntaxException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
var exec = new CommandExecutionEvent(source.getPlayer(), "warp");
|
||||
if(MinecraftForge.EVENT_BUS.post(exec))
|
||||
{
|
||||
return;
|
||||
|
|
|
@ -30,7 +30,7 @@ import dev.zontreck.libzontreck.util.ChatHelpers;
|
|||
import dev.zontreck.libzontreck.util.heads.HeadCache;
|
||||
import dev.zontreck.libzontreck.util.heads.HeadUtilities;
|
||||
import dev.zontreck.libzontreck.vectors.Vector2i;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3d;
|
||||
import net.minecraft.commands.CommandSourceStack;
|
||||
import net.minecraft.commands.Commands;
|
||||
import net.minecraft.network.chat.*;
|
||||
|
@ -118,7 +118,7 @@ public class WarpsCommand {
|
|||
TeleportDestination dest = warp.destination;
|
||||
if(warpType == 1)
|
||||
{
|
||||
dest.Position = Vector3.ZERO;
|
||||
dest.Position = Vector3d.ZERO;
|
||||
RandomPositionFactory.beginRTP(p, warp.destination.getActualDimension());
|
||||
chestGui.close();
|
||||
return;
|
||||
|
@ -141,7 +141,11 @@ public class WarpsCommand {
|
|||
.withInfo(new LoreEntry.Builder().text(ChatHelpers.macro(appendType, warp.destination.Dimension).getString()).build());
|
||||
|
||||
ChatHelpers.broadcastTo(p, warpMsg, p.server);
|
||||
if(!(warps.size() > (2*9)))
|
||||
if(warps.size() > (2*9))
|
||||
{
|
||||
// Say to person
|
||||
ChatHelpers.broadcastTo(p, warpMsg, p.server);
|
||||
}else
|
||||
chestGui.withButton(button);
|
||||
|
||||
iconY++;
|
||||
|
|
13
src/main/java/dev/zontreck/essentials/configs/NBTKeys.java
Normal file
|
@ -0,0 +1,13 @@
|
|||
package dev.zontreck.essentials.configs;
|
||||
|
||||
|
||||
public class NBTKeys {
|
||||
// for time in a bottle item
|
||||
public static final String STORED_TIME = "storedTime";
|
||||
public static final String TOTAL_ACCUMULATED_TIME = "totalAccumulatedTime";
|
||||
|
||||
// for time accelerator entity
|
||||
public static final String ENTITY_TIME_RATE = "timeRate";
|
||||
public static final String ENTITY_REMAINING_TIME = "remainingTime";
|
||||
public static final String ENTITY_POS = "position";
|
||||
}
|
|
@ -1,11 +1,8 @@
|
|||
package dev.zontreck.essentials.configs.client;
|
||||
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import dev.zontreck.ariaslib.util.FileIO;
|
||||
import dev.zontreck.essentials.util.EssentialsDatastore;
|
||||
import dev.zontreck.libzontreck.util.SNbtIo;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
|
||||
import java.nio.file.Path;
|
||||
|
||||
|
@ -31,6 +28,7 @@ public class AEClientConfig
|
|||
Path serverConfig = EssentialsDatastore.of("client.snbt");
|
||||
if(serverConfig.toFile().exists())
|
||||
{
|
||||
|
||||
inst = deserialize(SNbtIo.loadSnbt(serverConfig));
|
||||
}else {
|
||||
initNewConfig();
|
||||
|
@ -59,8 +57,6 @@ public class AEClientConfig
|
|||
Path serverConfig = EssentialsDatastore.of("client.snbt", false);
|
||||
|
||||
CompoundTag tag = inst.serialize();
|
||||
|
||||
|
||||
SNbtIo.writeSnbt(serverConfig, tag);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
package dev.zontreck.essentials.configs.server;
|
||||
|
||||
import dev.zontreck.ariaslib.util.Lists;
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.essentials.configs.server.sections.*;
|
||||
import dev.zontreck.essentials.util.EssentialsDatastore;
|
||||
import dev.zontreck.essentials.util.Maps;
|
||||
import dev.zontreck.libzontreck.chat.ChatColor;
|
||||
import dev.zontreck.libzontreck.util.SNbtIo;
|
||||
import net.minecraft.nbt.*;
|
||||
|
||||
|
@ -20,24 +22,42 @@ public class AEServerConfig
|
|||
public Back back;
|
||||
public Teleportation teleport;
|
||||
public Messages messages;
|
||||
public Bottles bottles;
|
||||
public CreeperHeal creeperHeal;
|
||||
|
||||
|
||||
|
||||
public static AEServerConfig deserialize(CompoundTag tag)
|
||||
{
|
||||
AEServerConfig config = new AEServerConfig();
|
||||
config.costs = Costs.deserialize(tag.getCompound(Costs.TAG_NAME));
|
||||
config.limits = Limitations.deserialize(tag.getCompound(Limitations.TAG_NAME));
|
||||
config.cooldowns = new HashMap<>();
|
||||
ListTag cools = tag.getList(Cooldown.TAG_NAME, ListTag.TAG_COMPOUND);
|
||||
for(Tag cooldown : cools)
|
||||
{
|
||||
Cooldown cd = Cooldown.deserialize((CompoundTag) cooldown);
|
||||
config.cooldowns.put(cd.Command, cd);
|
||||
try {
|
||||
AriasEssentials.LOGGER.info("Loading Aria's Essentials configuration for - Server");
|
||||
config.costs = Costs.deserialize(tag.getCompound(Costs.TAG_NAME));
|
||||
config.limits = Limitations.deserialize(tag.getCompound(Limitations.TAG_NAME));
|
||||
config.cooldowns = new HashMap<>();
|
||||
ListTag cools = tag.getList(Cooldown.TAG_NAME, ListTag.TAG_COMPOUND);
|
||||
for(Tag cooldown : cools)
|
||||
{
|
||||
Cooldown cd = Cooldown.deserialize((CompoundTag) cooldown);
|
||||
config.cooldowns.put(cd.Command, cd);
|
||||
}
|
||||
config.back = Back.deserialize(tag.getCompound(Back.TAG_NAME));
|
||||
config.teleport = Teleportation.deserialize(tag.getCompound(Teleportation.TAG_NAME));
|
||||
config.messages = Messages.deserialize(tag.getCompound(Messages.TAG_NAME));
|
||||
if(tag.contains(Bottles.TAG_NAME))
|
||||
{
|
||||
config.bottles = Bottles.deserialize(tag.getCompound(Bottles.TAG_NAME));
|
||||
} else config.bottles = new Bottles();
|
||||
|
||||
if(tag.contains(CreeperHeal.TAG_NAME))
|
||||
{
|
||||
config.creeperHeal = CreeperHeal.deserialize(tag.getCompound(CreeperHeal.TAG_NAME));
|
||||
} else config.creeperHeal = new CreeperHeal();
|
||||
|
||||
AriasEssentials.LOGGER.info("Aria's Essentials Server Configuration Loaded");
|
||||
} catch(Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
config.back = Back.deserialize(tag.getCompound(Back.TAG_NAME));
|
||||
config.teleport = Teleportation.deserialize(tag.getCompound(Teleportation.TAG_NAME));
|
||||
config.messages = Messages.deserialize(tag.getCompound(Messages.TAG_NAME));
|
||||
|
||||
|
||||
return config;
|
||||
|
@ -45,11 +65,12 @@ public class AEServerConfig
|
|||
|
||||
public static void loadFromFile()
|
||||
{
|
||||
Path serverConfig = EssentialsDatastore.of("server.snbt");
|
||||
Path serverConfig = EssentialsDatastore.of("server.snbt",false);
|
||||
if(serverConfig.toFile().exists())
|
||||
{
|
||||
|
||||
inst = deserialize(SNbtIo.loadSnbt(serverConfig));
|
||||
|
||||
save(); // incase of updates
|
||||
}else {
|
||||
initNewConfig();
|
||||
}
|
||||
|
@ -60,7 +81,7 @@ public class AEServerConfig
|
|||
private static void initNewConfig()
|
||||
{
|
||||
inst = new AEServerConfig();
|
||||
inst.reset();
|
||||
inst.reset(); // also saves
|
||||
}
|
||||
|
||||
private void reset()
|
||||
|
@ -76,7 +97,7 @@ public class AEServerConfig
|
|||
back = new Back();
|
||||
teleport = new Teleportation();
|
||||
teleport.Effects = Lists.of(
|
||||
"minecraft:blindness",
|
||||
"minecraft:darkness",
|
||||
"minecraft:levitation",
|
||||
"minecraft:slow_falling",
|
||||
"minecraft:hunger"
|
||||
|
@ -89,6 +110,8 @@ public class AEServerConfig
|
|||
"witherstormmod:bowels"
|
||||
);
|
||||
messages = new Messages();
|
||||
bottles = new Bottles();
|
||||
creeperHeal = new CreeperHeal();
|
||||
|
||||
|
||||
|
||||
|
@ -100,7 +123,6 @@ public class AEServerConfig
|
|||
Path serverConfig = EssentialsDatastore.of("server.snbt", false);
|
||||
|
||||
CompoundTag tag = inst.serialize();
|
||||
|
||||
SNbtIo.writeSnbt(serverConfig, tag);
|
||||
}
|
||||
|
||||
|
@ -118,6 +140,8 @@ public class AEServerConfig
|
|||
tag.put(Back.TAG_NAME, back.serialize());
|
||||
tag.put(Teleportation.TAG_NAME, teleport.serialize());
|
||||
tag.put(Messages.TAG_NAME, messages.serialize());
|
||||
tag.put(Bottles.TAG_NAME, bottles.serialize());
|
||||
tag.put(CreeperHeal.TAG_NAME, creeperHeal.serialize());
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
package dev.zontreck.essentials.configs.server.sections;
|
||||
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
|
||||
public class Bottles {
|
||||
public static final String TAG_NAME = "bottles";
|
||||
public static final String TAG_DURATION = "durationEachUse";
|
||||
public static final String TAG_TICKS = "ticks";
|
||||
public static final String TAG_RANDOM_TICKS = "avgRandomTicks";
|
||||
public static final String TAG_MAX_TIME_RATE = "maxTimeRate";
|
||||
public static final String TAG_STORED_TIME = "maxTime";
|
||||
|
||||
public static final String TAG_MESSAGE_STORED_TIME = "msg_storedTime";
|
||||
public static final String TAG_MESSAGE_ACCUMULATED_TIME = "msg_accumulatedTime";
|
||||
public static final String TAG_TOTAL_USES = "msg_totalUses";
|
||||
|
||||
|
||||
|
||||
|
||||
public int eachUseDuration = 30;
|
||||
public int ticks = 20;
|
||||
public int avgRandomTicks = 512;
|
||||
public int maxTimeRate = 8;
|
||||
public int maxTime = (60 * 60 * 24 * 30); // 30 days is the default
|
||||
public String storedTimeStr = "!Dark_Green!Stored Time: [0]";
|
||||
public String accumulatedTimeStr = "!Gray!Total Accumulated Time: [0]";
|
||||
public String totalUses = "!Dark_Red!Total available uses: [0]";
|
||||
|
||||
|
||||
|
||||
public CompoundTag serialize()
|
||||
{
|
||||
CompoundTag tag = new CompoundTag();
|
||||
tag.putInt(TAG_DURATION, eachUseDuration);
|
||||
tag.putInt(TAG_TICKS, ticks);
|
||||
tag.putInt(TAG_RANDOM_TICKS, avgRandomTicks);
|
||||
tag.putInt(TAG_MAX_TIME_RATE, maxTimeRate);
|
||||
tag.putString(TAG_MESSAGE_STORED_TIME, storedTimeStr);
|
||||
tag.putString(TAG_MESSAGE_ACCUMULATED_TIME, accumulatedTimeStr);
|
||||
tag.putString(TAG_TOTAL_USES, totalUses);
|
||||
tag.putInt(TAG_STORED_TIME, maxTime);
|
||||
|
||||
|
||||
return tag;
|
||||
}
|
||||
|
||||
public static Bottles deserialize(CompoundTag tag)
|
||||
{
|
||||
Bottles bottles = new Bottles();
|
||||
if(tag.contains(TAG_DURATION))
|
||||
{
|
||||
bottles.eachUseDuration = tag.getInt(TAG_DURATION);
|
||||
}
|
||||
|
||||
if(tag.contains(TAG_TICKS))
|
||||
bottles.ticks = tag.getInt(TAG_TICKS);
|
||||
|
||||
if(tag.contains(TAG_RANDOM_TICKS))
|
||||
bottles.avgRandomTicks = tag.getInt(TAG_RANDOM_TICKS);
|
||||
|
||||
if(tag.contains(TAG_MAX_TIME_RATE))
|
||||
bottles.maxTimeRate = tag.getInt(TAG_MAX_TIME_RATE);
|
||||
|
||||
if(tag.contains(TAG_MESSAGE_STORED_TIME))
|
||||
bottles.storedTimeStr = tag.getString(TAG_MESSAGE_STORED_TIME);
|
||||
|
||||
if(tag.contains(TAG_MESSAGE_ACCUMULATED_TIME))
|
||||
bottles.accumulatedTimeStr = tag.getString(TAG_MESSAGE_ACCUMULATED_TIME);
|
||||
|
||||
if(tag.contains(TAG_STORED_TIME))
|
||||
bottles.maxTime = tag.getInt(TAG_STORED_TIME);
|
||||
|
||||
if(tag.contains(TAG_TOTAL_USES))
|
||||
bottles.totalUses = tag.getString(TAG_TOTAL_USES);
|
||||
|
||||
|
||||
|
||||
|
||||
return bottles;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package dev.zontreck.essentials.configs.server.sections;
|
||||
|
||||
import dev.zontreck.ariaslib.util.Lists;
|
||||
import dev.zontreck.essentials.configs.server.AEServerConfig;
|
||||
import dev.zontreck.libzontreck.util.TagUtils;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.ListTag;
|
||||
import net.minecraft.nbt.StringTag;
|
||||
import net.minecraft.nbt.Tag;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CreeperHeal
|
||||
{
|
||||
public static final String TAG_NAME = "creeper_heal";
|
||||
public static final String TAG_BLACKLIST = "blacklisted_dims";
|
||||
public static final String TAG_DURATION = "duration";
|
||||
|
||||
|
||||
public List<String> blacklistedDimensions = Lists.of("minecraft:the_nether", "minecraft:the_end");
|
||||
|
||||
public int duration = 40; // Once every 2 seconds
|
||||
|
||||
public CompoundTag serialize()
|
||||
{
|
||||
CompoundTag tag = new CompoundTag();
|
||||
ListTag blacklist = new ListTag();
|
||||
for(String dimension : blacklistedDimensions)
|
||||
{
|
||||
blacklist.add(StringTag.valueOf(dimension));
|
||||
}
|
||||
tag.put(TAG_BLACKLIST, blacklist);
|
||||
tag.putInt(TAG_DURATION, duration);
|
||||
|
||||
return tag;
|
||||
}
|
||||
|
||||
public static CreeperHeal deserialize(CompoundTag tag)
|
||||
{
|
||||
CreeperHeal heal = new CreeperHeal();
|
||||
heal.duration = TagUtils.intOr(tag, TAG_DURATION, 40);
|
||||
|
||||
ListTag lst = tag.getList(TAG_BLACKLIST, StringTag.TAG_STRING);
|
||||
heal.blacklistedDimensions.clear();
|
||||
for(Tag t : lst)
|
||||
{
|
||||
heal.blacklistedDimensions.add(t.getAsString());
|
||||
}
|
||||
|
||||
return heal;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,470 @@
|
|||
package dev.zontreck.essentials.data;
|
||||
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.essentials.blocks.ModBlocks;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.level.block.*;
|
||||
import net.minecraft.world.level.block.state.properties.*;
|
||||
import net.minecraftforge.client.model.generators.BlockStateProvider;
|
||||
import net.minecraftforge.client.model.generators.ConfiguredModel;
|
||||
import net.minecraftforge.client.model.generators.ModelFile;
|
||||
import net.minecraftforge.client.model.generators.VariantBlockStateBuilder;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
public class ModBlockStatesProvider extends BlockStateProvider {
|
||||
public ModBlockStatesProvider(PackOutput output, ExistingFileHelper existingFileHelper) {
|
||||
super(output, AriasEssentials.MODID, existingFileHelper);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerStatesAndModels() {
|
||||
|
||||
|
||||
ResourceLocation[] clinkerBlock = new ResourceLocation[]{
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_texture0"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_texture1"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_texture2"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_texture3"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_texture4"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_texture5"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_texture6"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_texture7")
|
||||
};
|
||||
ResourceLocation[] clinkerStainedBlock = new ResourceLocation[]{
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_stained_texture0"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_stained_texture1"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_stained_texture2"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_stained_texture3"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_stained_texture4"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_stained_texture5"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_stained_texture6"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/clinker_brick/clinker_brick_stained_texture7")
|
||||
};
|
||||
|
||||
ResourceLocation[] slagBricks = new ResourceLocation[]{
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/slag_brick/slag_brick_texture0"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/slag_brick/slag_brick_texture1"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/slag_brick/slag_brick_texture2"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/slag_brick/slag_brick_texture3"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/slag_brick/slag_brick_texture4"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/slag_brick/slag_brick_texture5"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/slag_brick/slag_brick_texture6"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/slag_brick/slag_brick_texture7")
|
||||
};
|
||||
|
||||
ResourceLocation[] rebarConcrete = new ResourceLocation[] {
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_texture0"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_texture1"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_texture2"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_texture3"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_texture4"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_texture5"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_texture6"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_texture7")
|
||||
};
|
||||
|
||||
ResourceLocation[] rebarConcreteTile = new ResourceLocation[] {
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_tile_texture0"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_tile_texture1"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_tile_texture2"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_tile_texture3"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_tile_texture4"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_tile_texture5"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_tile_texture6"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/concrete/rebar_concrete_tile_texture7")
|
||||
};
|
||||
|
||||
ResourceLocation[] panzerglass = new ResourceLocation[]{
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/glass/panzerglass_block_texture0"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/glass/panzerglass_block_texture1"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/glass/panzerglass_block_texture2"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/glass/panzerglass_block_texture3")
|
||||
};
|
||||
|
||||
ResourceLocation[] oldIndustrialWood = new ResourceLocation[]{
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/material/industrial_planks_texture0"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/material/industrial_planks_texture1"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/material/industrial_planks_texture2"),
|
||||
new ResourceLocation(AriasEssentials.MODID, "engineersdecor/material/industrial_planks_texture3"),
|
||||
};
|
||||
|
||||
variantCubeBlock(ModBlocks.CLINKER_BRICK_BLOCK, clinkerBlock);
|
||||
customSlabBlock(ModBlocks.CLINKER_BRICK_SLAB, clinkerBlock);
|
||||
customStairBlock(ModBlocks.CLINKER_BRICK_STAIRS, clinkerBlock);
|
||||
variantCubeBlock(ModBlocks.CLINKER_BRICK_STAINED_BLOCK, clinkerStainedBlock);
|
||||
customSlabBlock(ModBlocks.CLINKER_BRICK_STAINED_SLAB, clinkerStainedBlock);
|
||||
customStairBlock(ModBlocks.CLINKER_BRICK_STAINED_STAIRS, clinkerStainedBlock);
|
||||
|
||||
wallBlock(ModBlocks.CLINKER_BRICK_WALL, new ResourceLocation(AriasEssentials.MODID, "block/engineersdecor/clinker_brick/clinker_brick_wall0"));
|
||||
|
||||
variantCubeBlock(ModBlocks.SLAG_BRICK_BLOCK, slagBricks);
|
||||
customSlabBlock(ModBlocks.SLAG_BRICK_SLAB, slagBricks);
|
||||
customStairBlock(ModBlocks.SLAG_BRICK_STAIRS, slagBricks);
|
||||
wallBlock(ModBlocks.SLAG_BRICK_WALL, new ResourceLocation(AriasEssentials.MODID, "block/engineersdecor/slag_brick/slag_brick_wall0"));
|
||||
|
||||
variantCubeBlock(ModBlocks.REBAR_CONCRETE_BLOCK, rebarConcrete);
|
||||
customSlabBlock(ModBlocks.REBAR_CONCRETE_SLAB, rebarConcrete);
|
||||
customStairBlock(ModBlocks.REBAR_CONCRETE_STAIRS, rebarConcrete);
|
||||
wallBlock(ModBlocks.REBAR_CONCRETE_WALL, new ResourceLocation(AriasEssentials.MODID, "block/" + rebarConcrete[0].getPath()));
|
||||
|
||||
variantCubeBlock(ModBlocks.REBAR_CONCRETE_TILE_BLOCK, rebarConcreteTile);
|
||||
customSlabBlock(ModBlocks.REBAR_CONCRETE_TILE_SLAB, rebarConcreteTile);
|
||||
customStairBlock(ModBlocks.REBAR_CONCRETE_TILE_STAIRS, rebarConcreteTile);
|
||||
|
||||
variantTransparentCubeBlock(ModBlocks.PANZER_GLASS_BLOCK, new ResourceLocation(AriasEssentials.MODID, "engineersdecor/glass/panzerglass_block_texture_inventory"), panzerglass);
|
||||
customTransparentSlabBlock(ModBlocks.PANZER_GLASS_SLAB, panzerglass);
|
||||
|
||||
variantCubeBlock(ModBlocks.OLD_INDUSTRIAL_WOOD_PLANKS, oldIndustrialWood);
|
||||
customSlabBlock(ModBlocks.OLD_INDUSTRIAL_WOOD_SLAB, oldIndustrialWood);
|
||||
customStairBlock(ModBlocks.OLD_INDUSTRIAL_WOOD_STAIRS, oldIndustrialWood);
|
||||
doorBlock(ModBlocks.OLD_INDUSTRIAL_WOOD_DOOR, new ResourceLocation(AriasEssentials.MODID, "block/engineersdecor/door/old_industrial_door_texture_bottom"), new ResourceLocation(AriasEssentials.MODID, "block/engineersdecor/door/old_industrial_door_texture_top"));
|
||||
|
||||
blockWithExistingModel(ModBlocks.STEEL_GRATING, "block/engineersdecor/furniture/steel_floor_grating", false);
|
||||
blockWithExistingModel(ModBlocks.STEEL_GRATING_TOP, "block/engineersdecor/furniture/steel_floor_grating_top", false);
|
||||
blockWithExistingModel(ModBlocks.STEEL_TABLE, "block/engineersdecor/furniture/steel_table", false);
|
||||
blockWithExistingModel(ModBlocks.STEEL_CATWALK, "block/engineersdecor/furniture/steel_catwalk", false);
|
||||
blockWithExistingModel(ModBlocks.STEEL_CATWALK_TOP, "block/engineersdecor/furniture/steel_catwalk_top", false);
|
||||
blockWithExistingModel(ModBlocks.STEEL_RAILING, "block/engineersdecor/furniture/steel_railing", true);
|
||||
blockWithExistingModel(ModBlocks.STEEL_CATWALK_STAIRS, "block/engineersdecor/furniture/steel_catwalk_stairs", true);
|
||||
blockWithExistingModel(ModBlocks.STEEL_CATWALK_STAIRS_LR, "block/engineersdecor/furniture/steel_catwalk_stairs_lr", true);
|
||||
blockWithExistingModel(ModBlocks.STEEL_CATWALK_STAIRS_RR, "block/engineersdecor/furniture/steel_catwalk_stairs_rr", true);
|
||||
blockWithExistingModel(ModBlocks.STEEL_CATWALK_STAIRS_DR, "block/engineersdecor/furniture/steel_catwalk_stairs_dr", true);
|
||||
|
||||
blockWithExistingModel(ModBlocks.STEEL_CATWALK_BLOCK, "block/engineersdecor/steel_catwalk_block", false);
|
||||
|
||||
blockWithExistingModel(ModBlocks.TFLIPFLOP_BLOCK, "block/logicgates/tflipflop", true);
|
||||
|
||||
}
|
||||
|
||||
private void blockWithExistingModel(RegistryObject<Block> blk, String model, boolean rotatable)
|
||||
{
|
||||
ResourceLocation modelLoc = new ResourceLocation(AriasEssentials.MODID, model);
|
||||
ModelFile mFile = models().withExistingParent(name(blk.get()), modelLoc);
|
||||
|
||||
if(!rotatable)
|
||||
simpleBlock(blk.get(), mFile);
|
||||
else horizontalBlock(blk.get(), mFile);
|
||||
|
||||
simpleBlockItem(blk.get(), mFile);
|
||||
}
|
||||
|
||||
private void doorBlock(RegistryObject<Block> blk, ResourceLocation textureTop, ResourceLocation textureBottom)
|
||||
{
|
||||
doorBlockWithRenderType((DoorBlock) blk.get(), textureBottom, textureTop, new ResourceLocation("translucent"));
|
||||
|
||||
simpleBlockItem(blk.get(), models().doorBottomLeft(name(blk.get()), textureBottom, textureTop));
|
||||
}
|
||||
|
||||
private void wallBlock(RegistryObject<Block> blk, ResourceLocation texture)
|
||||
{
|
||||
wallBlock((WallBlock) blk.get(), texture);
|
||||
var wallInv = models().wallInventory(name(blk.get()) + "_inventory", texture);
|
||||
|
||||
simpleBlockItem(blk.get(), wallInv);
|
||||
}
|
||||
|
||||
private void blockWithItem(RegistryObject<Block> blockRegistryObject) {
|
||||
simpleBlockWithItem(blockRegistryObject.get(), cubeAll(blockRegistryObject.get()));
|
||||
}
|
||||
|
||||
private void blockWithItem(RegistryObject<Block> blockRegistryObject, ModelFile model) {
|
||||
simpleBlockWithItem(blockRegistryObject.get(), model);
|
||||
}
|
||||
|
||||
private void stairBlock(RegistryObject<Block> blk, RegistryObject<Block> texture) {
|
||||
stairsBlock((StairBlock) blk.get(), blockTexture(texture.get()));
|
||||
simpleBlockItem(blk.get(), stairsModel(blk.get(), texture.get()));
|
||||
}
|
||||
|
||||
private void carpetBlock(RegistryObject<Block> blk, RegistryObject<Block> texture) {
|
||||
simpleBlockWithItem(blk.get(), carpetModel(blk.get(), texture.get()));
|
||||
}
|
||||
|
||||
private String name(Block block) {
|
||||
return this.key(block).getPath();
|
||||
}
|
||||
|
||||
private ResourceLocation key(Block block) {
|
||||
return ForgeRegistries.BLOCKS.getKey(block);
|
||||
}
|
||||
|
||||
public ModelFile stairsModel(Block block, Block texture) {
|
||||
return this.models().stairs(name(block), blockTexture(texture), blockTexture(texture), blockTexture(texture));
|
||||
}
|
||||
|
||||
public ModelFile carpetModel(Block block, Block texture) {
|
||||
return this.models().carpet(name(block), blockTexture(texture));
|
||||
}
|
||||
|
||||
public ModelFile slabModel(Block block, Block texture) {
|
||||
return this.models().slab(name(block), blockTexture(texture), blockTexture(texture), blockTexture(texture));
|
||||
}
|
||||
|
||||
private void slabBlock(RegistryObject<Block> blk, RegistryObject<Block> texture) {
|
||||
slabBlock((SlabBlock) blk.get(), blockTexture(texture.get()), blockTexture(texture.get()));
|
||||
simpleBlockItem(blk.get(), slabModel(blk.get(), texture.get()));
|
||||
}
|
||||
|
||||
private void customSlabBlock(RegistryObject<Block> blockId, ResourceLocation... variations) {
|
||||
VariantBlockStateBuilder builder = getVariantBuilder(blockId.get());
|
||||
|
||||
|
||||
AtomicReference<ModelFile> model0 = new AtomicReference<>();
|
||||
|
||||
builder.forAllStates((state)->{
|
||||
ConfiguredModel[] models = new ConfiguredModel[variations.length];
|
||||
|
||||
|
||||
String appendName = "";
|
||||
SlabType type = state.getValue(SlabBlock.TYPE);
|
||||
|
||||
if(type == SlabType.BOTTOM)
|
||||
appendName = "_bottom";
|
||||
else if(type == SlabType.TOP)
|
||||
appendName = "_top";
|
||||
else if(type == SlabType.DOUBLE)
|
||||
appendName = "_double";
|
||||
|
||||
for (int i = 0; i < variations.length; i++) {
|
||||
ResourceLocation texture = variations[i];
|
||||
ResourceLocation rss = new ResourceLocation(texture.getNamespace(), "block/" + texture.getPath());
|
||||
ModelFile model = null;
|
||||
if(type == SlabType.TOP)
|
||||
model = models().slabTop(name(blockId.get()) + "_model" + i + appendName, rss, rss, rss);
|
||||
else if(type == SlabType.BOTTOM)
|
||||
model = models().slab(name(blockId.get()) + "_model" + i + appendName, rss, rss, rss);
|
||||
else if(type == SlabType.DOUBLE)
|
||||
model = models().cubeAll(name(blockId.get()) + "_model" + i + appendName, rss);
|
||||
|
||||
|
||||
ConfiguredModel[] cfgModel = ConfiguredModel.builder().modelFile(model).build();
|
||||
|
||||
if(i==0 && model0.get()==null && type == SlabType.BOTTOM) model0.set(model);
|
||||
|
||||
models[i] = cfgModel[0];
|
||||
//builder.partialState().addModels(cfgModel);
|
||||
}
|
||||
return models;
|
||||
});
|
||||
|
||||
|
||||
simpleBlockItem(blockId.get(), model0.get());
|
||||
}
|
||||
|
||||
private void customStairBlock(RegistryObject<Block> blockId, ResourceLocation... variations) {
|
||||
VariantBlockStateBuilder builder = getVariantBuilder(blockId.get());
|
||||
ResourceLocation blockDefault = blockTexture(blockId.get());
|
||||
|
||||
|
||||
AtomicReference<ModelFile> model0 = new AtomicReference<>();
|
||||
|
||||
builder.forAllStates((state)->{
|
||||
ConfiguredModel[] models = new ConfiguredModel[variations.length];
|
||||
Direction facing = (Direction)state.getValue(StairBlock.FACING);
|
||||
Half half = (Half)state.getValue(StairBlock.HALF);
|
||||
StairsShape shape = (StairsShape)state.getValue(StairBlock.SHAPE);
|
||||
int yRot = (int)facing.getClockWise().toYRot();
|
||||
if (shape == StairsShape.INNER_LEFT || shape == StairsShape.OUTER_LEFT) {
|
||||
yRot += 270;
|
||||
}
|
||||
|
||||
if (shape != StairsShape.STRAIGHT && half == Half.TOP) {
|
||||
yRot += 90;
|
||||
}
|
||||
|
||||
yRot %= 360;
|
||||
boolean uvlock = yRot != 0 || half == Half.TOP;
|
||||
|
||||
String modelName = (shape == StairsShape.STRAIGHT) ? "" : (shape != StairsShape.INNER_LEFT && shape != StairsShape.INNER_RIGHT) ? "_outer":"_inner";
|
||||
boolean straight = (shape == StairsShape.STRAIGHT);
|
||||
boolean inner = (shape == StairsShape.INNER_LEFT || shape == StairsShape.INNER_RIGHT);
|
||||
|
||||
|
||||
for (int i = 0; i < variations.length; i++) {
|
||||
ResourceLocation texture = variations[i];
|
||||
ResourceLocation rss = new ResourceLocation(texture.getNamespace(), "block/" + texture.getPath());
|
||||
ModelFile cubeModel = null;
|
||||
if(straight)
|
||||
cubeModel = models().stairs(
|
||||
blockId.getId().getPath() + "_model"+i + modelName, // Model name
|
||||
rss, rss, rss // Texture location
|
||||
);
|
||||
|
||||
if(inner)
|
||||
cubeModel = models().stairsInner(blockId.getId().getPath()+"_model"+i + modelName, rss, rss, rss);
|
||||
else if(!inner && !straight)
|
||||
cubeModel = models().stairsOuter(blockId.getId().getPath() + "_model"+i+modelName, rss, rss, rss);
|
||||
|
||||
ConfiguredModel[] cfgModel = ConfiguredModel.builder().modelFile(cubeModel).rotationX(half == Half.BOTTOM ? 0 : 180).rotationY(yRot).uvLock(uvlock).build();
|
||||
|
||||
if(i==0 && model0.get()==null) model0.set(cubeModel);
|
||||
|
||||
models[i] = cfgModel[0];
|
||||
//builder.partialState().addModels(cfgModel);
|
||||
}
|
||||
|
||||
return models;
|
||||
});
|
||||
|
||||
|
||||
simpleBlockItem(blockId.get(), model0.get());
|
||||
}
|
||||
private void customTransparentSlabBlock(RegistryObject<Block> blockId, ResourceLocation... variations) {
|
||||
VariantBlockStateBuilder builder = getVariantBuilder(blockId.get());
|
||||
|
||||
|
||||
AtomicReference<ModelFile> model0 = new AtomicReference<>();
|
||||
|
||||
builder.forAllStates((state)->{
|
||||
ConfiguredModel[] models = new ConfiguredModel[variations.length];
|
||||
|
||||
|
||||
String appendName = "";
|
||||
SlabType type = state.getValue(SlabBlock.TYPE);
|
||||
|
||||
if(type == SlabType.BOTTOM)
|
||||
appendName = "_bottom";
|
||||
else if(type == SlabType.TOP)
|
||||
appendName = "_top";
|
||||
else if(type == SlabType.DOUBLE)
|
||||
appendName = "_double";
|
||||
|
||||
for (int i = 0; i < variations.length; i++) {
|
||||
ResourceLocation texture = variations[i];
|
||||
ResourceLocation rss = new ResourceLocation(texture.getNamespace(), "block/" + texture.getPath());
|
||||
ModelFile model = null;
|
||||
if(type == SlabType.TOP)
|
||||
model = models().slabTop(name(blockId.get()) + "_model" + i + appendName, rss, rss, rss).renderType(new ResourceLocation("translucent"));
|
||||
else if(type == SlabType.BOTTOM)
|
||||
model = models().slab(name(blockId.get()) + "_model" + i + appendName, rss, rss, rss).renderType(new ResourceLocation("translucent"));
|
||||
else if(type == SlabType.DOUBLE)
|
||||
model = models().cubeAll(name(blockId.get()) + "_model" + i + appendName, rss).renderType(new ResourceLocation("translucent"));
|
||||
|
||||
|
||||
ConfiguredModel[] cfgModel = ConfiguredModel.builder().modelFile(model).build();
|
||||
|
||||
if(i==0 && model0.get()==null && type == SlabType.BOTTOM) model0.set(model);
|
||||
|
||||
models[i] = cfgModel[0];
|
||||
//builder.partialState().addModels(cfgModel);
|
||||
}
|
||||
return models;
|
||||
});
|
||||
|
||||
|
||||
simpleBlockItem(blockId.get(), model0.get());
|
||||
}
|
||||
|
||||
private void customTransparentStairBlock(RegistryObject<Block> blockId, ResourceLocation... variations) {
|
||||
VariantBlockStateBuilder builder = getVariantBuilder(blockId.get());
|
||||
ResourceLocation blockDefault = blockTexture(blockId.get());
|
||||
|
||||
|
||||
AtomicReference<ModelFile> model0 = new AtomicReference<>();
|
||||
|
||||
builder.forAllStates((state)->{
|
||||
ConfiguredModel[] models = new ConfiguredModel[variations.length];
|
||||
Direction facing = (Direction)state.getValue(StairBlock.FACING);
|
||||
Half half = (Half)state.getValue(StairBlock.HALF);
|
||||
StairsShape shape = (StairsShape)state.getValue(StairBlock.SHAPE);
|
||||
int yRot = (int)facing.getClockWise().toYRot();
|
||||
if (shape == StairsShape.INNER_LEFT || shape == StairsShape.OUTER_LEFT) {
|
||||
yRot += 270;
|
||||
}
|
||||
|
||||
if (shape != StairsShape.STRAIGHT && half == Half.TOP) {
|
||||
yRot += 90;
|
||||
}
|
||||
|
||||
yRot %= 360;
|
||||
boolean uvlock = yRot != 0 || half == Half.TOP;
|
||||
|
||||
String modelName = (shape == StairsShape.STRAIGHT) ? "" : (shape != StairsShape.INNER_LEFT && shape != StairsShape.INNER_RIGHT) ? "_outer":"_inner";
|
||||
boolean straight = (shape == StairsShape.STRAIGHT);
|
||||
boolean inner = (shape == StairsShape.INNER_LEFT || shape == StairsShape.INNER_RIGHT);
|
||||
|
||||
|
||||
for (int i = 0; i < variations.length; i++) {
|
||||
ResourceLocation texture = variations[i];
|
||||
ResourceLocation rss = new ResourceLocation(texture.getNamespace(), "block/" + texture.getPath());
|
||||
ModelFile cubeModel = null;
|
||||
if(straight)
|
||||
cubeModel = models().stairs(
|
||||
blockId.getId().getPath() + "_model"+i + modelName, // Model name
|
||||
rss, rss, rss // Texture location
|
||||
).renderType(new ResourceLocation("translucent"));
|
||||
|
||||
if(inner)
|
||||
cubeModel = models().stairsInner(blockId.getId().getPath()+"_model"+i + modelName, rss, rss, rss).renderType(new ResourceLocation("translucent"));
|
||||
else if(!inner && !straight)
|
||||
cubeModel = models().stairsOuter(blockId.getId().getPath() + "_model"+i+modelName, rss, rss, rss).renderType(new ResourceLocation("translucent"));
|
||||
|
||||
ConfiguredModel[] cfgModel = ConfiguredModel.builder().modelFile(cubeModel).rotationX(half == Half.BOTTOM ? 0 : 180).rotationY(yRot).uvLock(uvlock).build();
|
||||
|
||||
if(i==0 && model0.get()==null) model0.set(cubeModel);
|
||||
|
||||
models[i] = cfgModel[0];
|
||||
//builder.partialState().addModels(cfgModel);
|
||||
}
|
||||
|
||||
return models;
|
||||
});
|
||||
|
||||
|
||||
simpleBlockItem(blockId.get(), model0.get());
|
||||
}
|
||||
|
||||
public void variantCubeBlock(RegistryObject<Block> blockId, ResourceLocation... variations) {
|
||||
VariantBlockStateBuilder builder = getVariantBuilder(blockId.get());
|
||||
ResourceLocation blockDefault = blockTexture(blockId.get());
|
||||
|
||||
ModelFile model0 = null;
|
||||
for (int i = 0; i < variations.length; i++) {
|
||||
ResourceLocation texture = variations[i];
|
||||
ResourceLocation rss = new ResourceLocation(texture.getNamespace(), "block/" + texture.getPath());
|
||||
ModelFile cubeModel = models().cubeAll(
|
||||
blockId.getId().getPath() + "_model"+i, // Model name
|
||||
rss // Texture location
|
||||
);
|
||||
var cfgModel = ConfiguredModel.builder().modelFile(cubeModel).build();
|
||||
if(i==0)model0 = cubeModel;
|
||||
builder.partialState().addModels(cfgModel);
|
||||
}
|
||||
|
||||
|
||||
|
||||
simpleBlockItem(blockId.get(), model0);
|
||||
}
|
||||
|
||||
public void variantTransparentCubeBlock(RegistryObject<Block> blockId, ResourceLocation inventory, ResourceLocation... variations) {
|
||||
VariantBlockStateBuilder builder = getVariantBuilder(blockId.get());
|
||||
ResourceLocation blockDefault = blockTexture(blockId.get());
|
||||
|
||||
ModelFile model0 = models().cubeAll(name(blockId.get()) + "_inventory", new ResourceLocation(inventory.getNamespace(), "block/" + inventory.getPath())).renderType(new ResourceLocation("translucent"));
|
||||
|
||||
|
||||
for (int i = 0; i < variations.length; i++) {
|
||||
ResourceLocation texture = variations[i];
|
||||
ResourceLocation rss = new ResourceLocation(texture.getNamespace(), "block/" + texture.getPath());
|
||||
|
||||
ModelFile cubeModel = models().cubeAll(
|
||||
blockId.getId().getPath() + "_model"+i, // Model name
|
||||
rss // Texture location
|
||||
).renderType(new ResourceLocation("translucent"));
|
||||
var cfgModel = ConfiguredModel.builder().modelFile(cubeModel).build();
|
||||
//if(i==0)model0 = cubeModel;
|
||||
builder.partialState().addModels(cfgModel);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
simpleBlockItem(blockId.get(), model0);
|
||||
}
|
||||
}
|
28
src/main/java/dev/zontreck/essentials/data/ModDatagen.java
Normal file
|
@ -0,0 +1,28 @@
|
|||
package dev.zontreck.essentials.data;
|
||||
|
||||
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import net.minecraftforge.data.event.GatherDataEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
@Mod.EventBusSubscriber(modid = AriasEssentials.MODID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class ModDatagen
|
||||
{
|
||||
|
||||
@SubscribeEvent
|
||||
public static void gatherData(GatherDataEvent event)
|
||||
{
|
||||
DataGenerator gen = event.getGenerator();
|
||||
PackOutput output = gen.getPackOutput();
|
||||
|
||||
ExistingFileHelper helper = event.getExistingFileHelper();
|
||||
|
||||
gen.addProvider(true, new ModBlockStatesProvider(output, helper));
|
||||
gen.addProvider(true, new ModItemModelsProvider(output,helper));
|
||||
gen.addProvider(true, ModLootTablesProvider.create(output));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
package dev.zontreck.essentials.data;
|
||||
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.essentials.items.ModItems;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraftforge.client.model.generators.ItemModelBuilder;
|
||||
import net.minecraftforge.client.model.generators.ItemModelProvider;
|
||||
import net.minecraftforge.client.model.generators.ModelFile;
|
||||
import net.minecraftforge.common.data.ExistingFileHelper;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class ModItemModelsProvider extends ItemModelProvider
|
||||
{
|
||||
public ModItemModelsProvider(PackOutput output, ExistingFileHelper helper)
|
||||
{
|
||||
super(output, AriasEssentials.MODID, helper);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerModels() {
|
||||
|
||||
item(ModItems.METAL_BAR);
|
||||
item(ModItems.TIME_IN_A_BOTTLE);
|
||||
|
||||
/*
|
||||
Engineer's Decor Items
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
DEPRECATED ITEMS
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private ItemModelBuilder item(RegistryObject<Item> ite) {
|
||||
return this.item((ResourceLocation) Objects.requireNonNull(ForgeRegistries.ITEMS.getKey(ite.get())));
|
||||
}
|
||||
|
||||
private ItemModelBuilder item(ResourceLocation item) {
|
||||
return (ItemModelBuilder)((ItemModelBuilder)((ItemModelBuilder)this.getBuilder(item.toString())).parent(new ModelFile.UncheckedModelFile("item/generated"))).texture("layer0", new ResourceLocation(item.getNamespace(), "item/" + item.getPath()));
|
||||
}
|
||||
private ItemModelBuilder deprecated(RegistryObject<Item> ite) {
|
||||
return this.deprecated((ResourceLocation) Objects.requireNonNull(ForgeRegistries.ITEMS.getKey(ite.get())));
|
||||
}
|
||||
|
||||
private ItemModelBuilder deprecated(ResourceLocation item) {
|
||||
return (ItemModelBuilder)((ItemModelBuilder)((ItemModelBuilder)this.getBuilder(item.toString())).parent(new ModelFile.UncheckedModelFile("item/generated"))).texture("layer0", new ResourceLocation(item.getNamespace(), "item/deprecated"));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package dev.zontreck.essentials.data;
|
||||
|
||||
import dev.zontreck.essentials.data.loot.ModBlockLootTablesProvider;
|
||||
import net.minecraft.data.PackOutput;
|
||||
import net.minecraft.data.loot.LootTableProvider;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
|
||||
import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class ModLootTablesProvider
|
||||
{
|
||||
public static LootTableProvider create(PackOutput output)
|
||||
{
|
||||
return new LootTableProvider(output, Set.of(), List.of(
|
||||
new LootTableProvider.SubProviderEntry(ModBlockLootTablesProvider::new, LootContextParamSets.BLOCK)
|
||||
));
|
||||
}
|
||||
}
|
7
src/main/java/dev/zontreck/essentials/data/README.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
Datagen
|
||||
======
|
||||
____________
|
||||
|
||||
This is the datagen system for Aria's Essentials.
|
||||
|
||||
Please exercise caution when updating this, and test everything.
|
|
@ -0,0 +1,111 @@
|
|||
package dev.zontreck.essentials.data.loot;
|
||||
|
||||
import dev.zontreck.essentials.blocks.ModBlocks;
|
||||
import net.minecraft.data.loot.BlockLootSubProvider;
|
||||
import net.minecraft.world.flag.FeatureFlags;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.level.block.*;
|
||||
import net.minecraft.world.level.storage.loot.LootTable;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootItem;
|
||||
import net.minecraft.world.level.storage.loot.entries.LootPoolEntryContainer;
|
||||
import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount;
|
||||
import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction;
|
||||
import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public class ModBlockLootTablesProvider extends BlockLootSubProvider
|
||||
{
|
||||
public ModBlockLootTablesProvider()
|
||||
{
|
||||
super(Set.of(), FeatureFlags.REGISTRY.allFlags());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void generate() {
|
||||
|
||||
|
||||
/*
|
||||
Engineer's Decor Blocks
|
||||
*/
|
||||
dropSelf(ModBlocks.CLINKER_BRICK_BLOCK.get());
|
||||
dropSelf(ModBlocks.CLINKER_BRICK_RECESSED.get());
|
||||
dropSelf(ModBlocks.CLINKER_BRICK_VERTICALLY_SLIT.get());
|
||||
createSlabItemTable(ModBlocks.CLINKER_BRICK_SLAB);
|
||||
dropSelf(ModBlocks.CLINKER_BRICK_STAIRS.get());
|
||||
dropSelf(ModBlocks.CLINKER_BRICK_STAINED_BLOCK.get());
|
||||
createSlabItemTable(ModBlocks.CLINKER_BRICK_STAINED_SLAB);
|
||||
dropSelf(ModBlocks.CLINKER_BRICK_STAINED_STAIRS.get());
|
||||
dropSelf(ModBlocks.CLINKER_BRICK_WALL.get());
|
||||
|
||||
dropSelf(ModBlocks.SLAG_BRICK_BLOCK.get());
|
||||
createSlabItemTable(ModBlocks.SLAG_BRICK_SLAB);
|
||||
dropSelf(ModBlocks.SLAG_BRICK_WALL.get());
|
||||
dropSelf(ModBlocks.SLAG_BRICK_STAIRS.get());
|
||||
|
||||
dropSelf(ModBlocks.REBAR_CONCRETE_BLOCK.get());
|
||||
createSlabItemTable(ModBlocks.REBAR_CONCRETE_SLAB);
|
||||
dropSelf(ModBlocks.REBAR_CONCRETE_STAIRS.get());
|
||||
dropSelf(ModBlocks.REBAR_CONCRETE_WALL.get());
|
||||
|
||||
dropSelf(ModBlocks.REBAR_CONCRETE_TILE_BLOCK.get());
|
||||
createSlabItemTable(ModBlocks.REBAR_CONCRETE_TILE_SLAB);
|
||||
dropSelf(ModBlocks.REBAR_CONCRETE_TILE_STAIRS.get());
|
||||
|
||||
dropSelf(ModBlocks.PANZER_GLASS_BLOCK.get());
|
||||
createSlabItemTable(ModBlocks.PANZER_GLASS_SLAB);
|
||||
|
||||
dropSelf(ModBlocks.OLD_INDUSTRIAL_WOOD_PLANKS.get());
|
||||
createSlabItemTable(ModBlocks.OLD_INDUSTRIAL_WOOD_SLAB);
|
||||
dropSelf(ModBlocks.OLD_INDUSTRIAL_WOOD_STAIRS.get());
|
||||
createDoorTable(ModBlocks.OLD_INDUSTRIAL_WOOD_DOOR);
|
||||
|
||||
dropSelf(ModBlocks.STEEL_TABLE.get());
|
||||
dropSelf(ModBlocks.STEEL_CATWALK.get());
|
||||
dropSelf(ModBlocks.STEEL_RAILING.get());
|
||||
dropSelf(ModBlocks.STEEL_CATWALK_STAIRS.get());
|
||||
dropSelf(ModBlocks.STEEL_CATWALK_STAIRS_LR.get());
|
||||
dropSelf(ModBlocks.STEEL_CATWALK_STAIRS_RR.get());
|
||||
dropSelf(ModBlocks.STEEL_CATWALK_STAIRS_DR.get());
|
||||
dropSelf(ModBlocks.STEEL_GRATING.get());
|
||||
|
||||
dropSelf(ModBlocks.STEEL_GRATING_TOP.get());
|
||||
dropSelf(ModBlocks.STEEL_CATWALK_TOP.get());
|
||||
|
||||
dropSelf(ModBlocks.STEEL_CATWALK_BLOCK.get());
|
||||
|
||||
dropSelf(ModBlocks.TFLIPFLOP_BLOCK.get());
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void createDoorTable(RegistryObject<Block> blk)
|
||||
{
|
||||
var loot = createDoorTable(blk.get());
|
||||
|
||||
add(blk.get(), loot);
|
||||
}
|
||||
|
||||
private void createSlabItemTable(RegistryObject<Block> slab)
|
||||
{
|
||||
var loot = createSlabItemTable(slab.get());
|
||||
add(slab.get(), loot);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<Block> getKnownBlocks() {
|
||||
return ModBlocks.BLOCKS.getEntries().stream().map(RegistryObject::get)::iterator;
|
||||
}
|
||||
|
||||
|
||||
protected LootTable.Builder createCopperOreDrops(Block block, Item rawOre) {
|
||||
return createSilkTouchDispatchTable(block, (LootPoolEntryContainer.Builder) this.applyExplosionDecay(block, LootItem.lootTableItem(rawOre).apply(SetItemCountFunction.setCount(UniformGenerator.between(2.0F, 5.0F))).apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE))));
|
||||
}
|
||||
|
||||
protected LootTable.Builder createOreDrop(Block block, Item rawOre) {
|
||||
return createSilkTouchDispatchTable(block, (LootPoolEntryContainer.Builder)this.applyExplosionDecay(block, LootItem.lootTableItem(rawOre).apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE))));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package dev.zontreck.essentials.entities;
|
||||
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.MobCategory;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
public class ModEntities
|
||||
{
|
||||
public static final DeferredRegister<EntityType<?>> REGISTER = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, AriasEssentials.MODID);
|
||||
|
||||
public static RegistryObject<EntityType<TimeBoostEntity>> TIAB_ENTITY = REGISTER.register("tiab_entity_type", ()->EntityType.Builder.<TimeBoostEntity>of(TimeBoostEntity::new, MobCategory.MISC)
|
||||
.sized(0.1f, 0.1f)
|
||||
.build(new ResourceLocation(AriasEssentials.MODID, "tiab_entity_type").toString())
|
||||
);
|
||||
|
||||
|
||||
public static void register(IEventBus bus) {
|
||||
REGISTER.register(bus);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,128 @@
|
|||
package dev.zontreck.essentials.entities;
|
||||
|
||||
import dev.zontreck.essentials.configs.NBTKeys;
|
||||
import dev.zontreck.essentials.configs.server.AEServerConfig;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||
import net.minecraft.network.syncher.EntityDataAccessor;
|
||||
import net.minecraft.network.syncher.EntityDataSerializers;
|
||||
import net.minecraft.network.syncher.SynchedEntityData;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityTicker;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.network.NetworkHooks;
|
||||
|
||||
public class TimeBoostEntity extends Entity
|
||||
{
|
||||
private static final EntityDataAccessor<Integer> timeRate = SynchedEntityData.defineId(TimeBoostEntity.class, EntityDataSerializers.INT);
|
||||
|
||||
private int remainingTime;
|
||||
private BlockPos position;
|
||||
|
||||
|
||||
public TimeBoostEntity(EntityType entityType, Level worldIn) {
|
||||
super(entityType, worldIn);
|
||||
entityData.set(timeRate, 1);
|
||||
}
|
||||
|
||||
|
||||
public TimeBoostEntity(Level worldIn, BlockPos pos, double posX, double posY, double posZ) {
|
||||
this(ModEntities.TIAB_ENTITY.get(), worldIn);
|
||||
this.position = pos;
|
||||
this.setPos(posX, posY, posZ);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void defineSynchedData() {
|
||||
entityData.define(timeRate, 1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
protected void readAdditionalSaveData(CompoundTag compound) {
|
||||
entityData.set(timeRate, compound.getInt(NBTKeys.ENTITY_TIME_RATE));
|
||||
setRemainingTime(compound.getInt(NBTKeys.ENTITY_REMAINING_TIME));
|
||||
this.position = NbtUtils.readBlockPos(compound.getCompound(NBTKeys.ENTITY_POS));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addAdditionalSaveData(CompoundTag compound) {
|
||||
compound.putInt(NBTKeys.ENTITY_TIME_RATE, getTimeRate());
|
||||
compound.putInt(NBTKeys.ENTITY_REMAINING_TIME, getRemainingTime());
|
||||
compound.put(NBTKeys.ENTITY_POS, NbtUtils.writeBlockPos(this.position));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||
return NetworkHooks.getEntitySpawningPacket(this);
|
||||
}
|
||||
|
||||
public int getTimeRate() {
|
||||
return entityData.get(timeRate);
|
||||
}
|
||||
|
||||
public void setTimeRate(int rate) {
|
||||
entityData.set(timeRate, rate);
|
||||
}
|
||||
|
||||
public int getRemainingTime() {
|
||||
return this.remainingTime;
|
||||
}
|
||||
|
||||
public void setRemainingTime(int remainingTime) {
|
||||
this.remainingTime = remainingTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
Level level = level();
|
||||
|
||||
if(position == null)
|
||||
{
|
||||
if(!level.isClientSide)
|
||||
{
|
||||
remove(RemovalReason.KILLED);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
BlockState state = level.getBlockState(position);
|
||||
ServerLevel serverWorld = level.getServer().getLevel(level.dimension());
|
||||
BlockEntity targetTE = level.getBlockEntity(position);
|
||||
|
||||
|
||||
for (int i = 0; i < getTimeRate(); i++) {
|
||||
if (targetTE != null) {
|
||||
// if is TileEntity (furnace, brewing stand, ...)
|
||||
BlockEntityTicker<BlockEntity> ticker = targetTE.getBlockState().getTicker(level, (BlockEntityType<BlockEntity>) targetTE.getType());
|
||||
if (ticker != null) {
|
||||
ticker.tick(level, position, targetTE.getBlockState(), targetTE);
|
||||
}
|
||||
} else if (serverWorld != null && state.isRandomlyTicking()) {
|
||||
// if is random ticket block (grass block, sugar cane, wheat or sapling, ...)
|
||||
if (level.random.nextInt(AEServerConfig.getInstance().bottles.avgRandomTicks) == 0) {
|
||||
state.randomTick(serverWorld, position, level.random);
|
||||
}
|
||||
} else {
|
||||
// block entity broken
|
||||
this.remove(RemovalReason.KILLED);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
this.remainingTime -= 1;
|
||||
if (this.remainingTime <= 0 && !level.isClientSide) {
|
||||
this.remove(RemovalReason.KILLED);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package dev.zontreck.essentials.events;
|
||||
|
||||
import dev.zontreck.essentials.configs.server.AEServerConfig;
|
||||
import dev.zontreck.libzontreck.memory.world.BlockRestoreQueue;
|
||||
import dev.zontreck.libzontreck.memory.world.BlockRestoreQueueRegistry;
|
||||
import dev.zontreck.libzontreck.memory.world.SavedBlock;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3i;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraftforge.event.level.ExplosionEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class MainEventHandlers
|
||||
{
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onExplosionEvent(ExplosionEvent event)
|
||||
{
|
||||
for(BlockPos pos : event.getExplosion().getToBlow())
|
||||
{
|
||||
SavedBlock sb = SavedBlock.takeSnapshot(new Vector3i(pos), event.getLevel());
|
||||
|
||||
BlockRestoreQueue queue = BlockRestoreQueueRegistry.getQueue("creeperheal");
|
||||
queue.enqueueBlock(sb);
|
||||
|
||||
event.getLevel().removeBlockEntity(pos);
|
||||
event.getLevel().setBlock(pos, Blocks.AIR.defaultBlockState(), Block.UPDATE_CLIENTS, 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
package dev.zontreck.essentials.events;
|
||||
|
||||
import dev.zontreck.libzontreck.vectors.Vector3;
|
||||
import dev.zontreck.libzontreck.vectors.WorldPosition;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
|
|
@ -15,17 +15,4 @@ import java.util.List;
|
|||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public class HomesSuggestionProvider {
|
||||
public static SuggestionProvider<CommandSourceStack> PROVIDER = (ctx,suggestionsBuilder)->{
|
||||
Homes homes = HomesProvider.getHomesForPlayer(ctx.getSource().getPlayerOrException().getUUID().toString());
|
||||
|
||||
List<String> homesList = new ArrayList<>();
|
||||
|
||||
for(Home home : homes.getList())
|
||||
{
|
||||
homesList.add(home.homeName);
|
||||
}
|
||||
|
||||
|
||||
return SharedSuggestionProvider.suggest((String[]) homesList.toArray(), suggestionsBuilder);
|
||||
};
|
||||
}
|
||||
|
|
49
src/main/java/dev/zontreck/essentials/imc/Events.java
Normal file
|
@ -0,0 +1,49 @@
|
|||
package dev.zontreck.essentials.imc;
|
||||
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.essentials.antiexplode.CreeperHealQueue;
|
||||
import dev.zontreck.essentials.commands.teleport.TeleportActioner;
|
||||
import dev.zontreck.essentials.commands.teleport.TeleportContainer;
|
||||
import dev.zontreck.essentials.configs.server.AEServerConfig;
|
||||
import dev.zontreck.essentials.util.BackPositionCaches;
|
||||
import dev.zontreck.libzontreck.config.ServerConfig;
|
||||
import dev.zontreck.libzontreck.events.BlockRestoreQueueRegistrationEvent;
|
||||
import dev.zontreck.libzontreck.events.TeleportEvent;
|
||||
import dev.zontreck.libzontreck.memory.world.BlockRestoreQueue;
|
||||
import dev.zontreck.libzontreck.memory.world.BlockRestoreQueueRegistry;
|
||||
import dev.zontreck.libzontreck.memory.world.BlockRestoreRunner;
|
||||
import dev.zontreck.libzontreck.memory.world.SavedBlock;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3i;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.phys.Vec2;
|
||||
import net.minecraftforge.event.level.ExplosionEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
|
||||
import java.util.Timer;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class Events
|
||||
{
|
||||
@SubscribeEvent
|
||||
public static void onTeleportRequest(TeleportEvent ev)
|
||||
{
|
||||
ev.setCanceled(true);
|
||||
|
||||
TeleportActioner.ApplyTeleportEffect(ev.getPlayer());
|
||||
|
||||
TeleportContainer container = new TeleportContainer(ev.getPlayer(), ev.getPosition().Position.asMinecraftVector(), Vec2.ZERO, ev.getPosition().getActualDimension());
|
||||
|
||||
TeleportActioner.PerformTeleport(container, false);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onRegisterRestoreQueues (BlockRestoreQueueRegistrationEvent event)
|
||||
{
|
||||
CreeperHealQueue queue = new CreeperHealQueue();
|
||||
event.register(queue);
|
||||
queue.schedule(AEServerConfig.getInstance().creeperHeal.duration * 50L, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package dev.zontreck.essentials.items;
|
||||
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@Mod.EventBusSubscriber(modid = AriasEssentials.MODID, value = Dist.CLIENT)
|
||||
public class CreativeModeTabs {
|
||||
public static DeferredRegister<CreativeModeTab> REGISTER = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, AriasEssentials.MODID);
|
||||
|
||||
public static void register(IEventBus bus) {
|
||||
REGISTER.register(bus);
|
||||
}
|
||||
public static final List<Supplier<? extends ItemLike>> AE_TAB_ITEMS = new ArrayList<>();
|
||||
public static RegistryObject<CreativeModeTab> AE_GAME_TAB = REGISTER.register("ariasessentials", ()->CreativeModeTab.builder()
|
||||
.icon(ModItems.TIME_IN_A_BOTTLE.get()::getDefaultInstance)
|
||||
.title(Component.translatable("itemGroup.tabs.ariasessentials"))
|
||||
.displayItems((display, output) -> AE_TAB_ITEMS.forEach(it->output.accept(it.get())))
|
||||
.build());
|
||||
|
||||
public static <T extends Item> RegistryObject<T> addToAETab(RegistryObject<T> item)
|
||||
{
|
||||
AE_TAB_ITEMS.add(item);
|
||||
return item;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package dev.zontreck.essentials.items;
|
||||
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import net.minecraftforge.event.TickEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
@Mod.EventBusSubscriber(modid = AriasEssentials.MODID)
|
||||
public class EventHandlers
|
||||
{
|
||||
}
|
22
src/main/java/dev/zontreck/essentials/items/ModItems.java
Normal file
|
@ -0,0 +1,22 @@
|
|||
package dev.zontreck.essentials.items;
|
||||
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.essentials.items.implementation.TimeBottle;
|
||||
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 DeferredRegister<Item> REGISTRY = DeferredRegister.create(ForgeRegistries.ITEMS, AriasEssentials.MODID);
|
||||
|
||||
public static void register(IEventBus bus) {
|
||||
REGISTRY.register(bus);
|
||||
}
|
||||
|
||||
public static RegistryObject<Item> TIME_IN_A_BOTTLE = CreativeModeTabs.addToAETab(REGISTRY.register("tiab", ()->new TimeBottle()));
|
||||
|
||||
public static RegistryObject<Item> METAL_BAR = CreativeModeTabs.addToAETab(REGISTRY.register("metal_bar", ()->new Item(new Item.Properties())));
|
||||
}
|
|
@ -0,0 +1,146 @@
|
|||
package dev.zontreck.essentials.items.abstraction;
|
||||
|
||||
import dev.zontreck.essentials.configs.server.AEServerConfig;
|
||||
import dev.zontreck.essentials.entities.TimeBoostEntity;
|
||||
import dev.zontreck.essentials.util.SoundUtilities;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public abstract class AbstractBottle extends Item {
|
||||
private static final String[] NOTES = {"C", "D", "E", "F", "G2", "A2", "B2", "C2", "D2", "E2", "F2"};
|
||||
|
||||
public AbstractBottle() {
|
||||
super(new Properties().stacksTo(1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResult useOn(UseOnContext context) {
|
||||
Level level = context.getLevel();
|
||||
|
||||
if (level.isClientSide) {
|
||||
return InteractionResult.PASS;
|
||||
}
|
||||
|
||||
BlockPos pos = context.getClickedPos();
|
||||
BlockState blockState = level.getBlockState(pos);
|
||||
BlockEntity targetTE = level.getBlockEntity(pos);
|
||||
ItemStack stack = context.getItemInHand();
|
||||
Player player = context.getPlayer();
|
||||
|
||||
if (targetTE == null && !blockState.isRandomlyTicking()) {
|
||||
return InteractionResult.FAIL;
|
||||
}
|
||||
|
||||
int nextRate = 1;
|
||||
int energyRequired = getEnergyCost(nextRate);
|
||||
boolean isCreativeMode = player != null && player.isCreative();
|
||||
|
||||
Optional<TimeBoostEntity> o = level.getEntitiesOfClass(TimeBoostEntity.class, new AABB(pos)).stream().findFirst();
|
||||
|
||||
if (o.isPresent()) {
|
||||
TimeBoostEntity entityTA = o.get();
|
||||
int currentRate = entityTA.getTimeRate();
|
||||
|
||||
if (currentRate >= Math.pow(2, AEServerConfig.getInstance().bottles.maxTimeRate - 1)) {
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
|
||||
nextRate = currentRate * 2;
|
||||
energyRequired = getEnergyCost(nextRate);
|
||||
|
||||
if (!canUse(stack, isCreativeMode, energyRequired)) {
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
|
||||
entityTA.setTimeRate(nextRate);
|
||||
entityTA.setRemainingTime(entityTA.getRemainingTime() + AEServerConfig.getInstance().bottles.eachUseDuration);
|
||||
} else {
|
||||
// First use
|
||||
if (!canUse(stack, isCreativeMode, energyRequired)) {
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
|
||||
TimeBoostEntity entityTA = new TimeBoostEntity(level, pos, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5);
|
||||
entityTA.setRemainingTime(getEachUseDuration());
|
||||
level.addFreshEntity(entityTA);
|
||||
}
|
||||
|
||||
if (!isCreativeMode) {
|
||||
this.applyDamage(stack, energyRequired);
|
||||
}
|
||||
playSound(level, pos, nextRate);
|
||||
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
|
||||
protected int getEachUseDuration() {
|
||||
return AEServerConfig.getInstance().bottles.ticks * AEServerConfig.getInstance().bottles.eachUseDuration;
|
||||
}
|
||||
|
||||
public int getEnergyCost(int timeRate) {
|
||||
if (timeRate <= 1) return getEachUseDuration();
|
||||
return timeRate / 2 * getEachUseDuration();
|
||||
}
|
||||
|
||||
public boolean canUse(ItemStack stack, boolean isCreativeMode, int energyRequired) {
|
||||
return getStoredEnergy(stack) >= energyRequired || isCreativeMode;
|
||||
}
|
||||
|
||||
protected abstract int getStoredEnergy(ItemStack stack);
|
||||
|
||||
protected abstract void setStoredEnergy(ItemStack stack, int energy);
|
||||
|
||||
protected abstract void applyDamage(ItemStack stack, int damage);
|
||||
|
||||
public void playSound(Level level, BlockPos pos, int nextRate) {
|
||||
switch (nextRate) {
|
||||
case 1:
|
||||
SoundUtilities.playNoteBlockHarpSound(level, pos, NOTES[0]);
|
||||
break;
|
||||
case 2:
|
||||
SoundUtilities.playNoteBlockHarpSound(level, pos, NOTES[1]);
|
||||
break;
|
||||
case 4:
|
||||
SoundUtilities.playNoteBlockHarpSound(level, pos, NOTES[2]);
|
||||
break;
|
||||
case 8:
|
||||
SoundUtilities.playNoteBlockHarpSound(level, pos, NOTES[3]);
|
||||
break;
|
||||
case 16:
|
||||
SoundUtilities.playNoteBlockHarpSound(level, pos, NOTES[4]);
|
||||
break;
|
||||
case 32:
|
||||
SoundUtilities.playNoteBlockHarpSound(level, pos, NOTES[5]);
|
||||
break;
|
||||
case 64:
|
||||
SoundUtilities.playNoteBlockHarpSound(level, pos, NOTES[6]);
|
||||
break;
|
||||
case 128:
|
||||
SoundUtilities.playNoteBlockHarpSound(level, pos, NOTES[7]);
|
||||
break;
|
||||
case 256:
|
||||
SoundUtilities.playNoteBlockHarpSound(level, pos, NOTES[8]);
|
||||
break;
|
||||
case 512:
|
||||
SoundUtilities.playNoteBlockHarpSound(level, pos, NOTES[9]);
|
||||
break;
|
||||
default:
|
||||
SoundUtilities.playNoteBlockHarpSound(level, pos, NOTES[10]);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) {
|
||||
return !ItemStack.isSameItem(oldStack, newStack);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
package dev.zontreck.essentials.items.implementation;
|
||||
|
||||
import dev.zontreck.ariaslib.util.TimeUtil;
|
||||
import dev.zontreck.essentials.configs.NBTKeys;
|
||||
import dev.zontreck.essentials.configs.server.AEServerConfig;
|
||||
import dev.zontreck.essentials.items.abstraction.AbstractBottle;
|
||||
import dev.zontreck.essentials.util.StylesUtil;
|
||||
import dev.zontreck.libzontreck.util.ChatHelpers;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TimeBottle extends AbstractBottle
|
||||
{
|
||||
|
||||
public TimeBottle() {
|
||||
super();
|
||||
}
|
||||
@Override
|
||||
public boolean isFoil(ItemStack stack) {
|
||||
sanityCheck(stack);
|
||||
|
||||
return stack.getTag().contains(NBTKeys.STORED_TIME);
|
||||
}
|
||||
|
||||
private void sanityCheck(ItemStack stack) {
|
||||
|
||||
if(!stack.hasTag() || stack.getTag()==null)
|
||||
{
|
||||
stack.setTag(new CompoundTag());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack itemStack, Level world, List<Component> tooltip, TooltipFlag flag) {
|
||||
super.appendHoverText(itemStack, world, tooltip, flag);
|
||||
|
||||
int storedTime = this.getStoredEnergy(itemStack);
|
||||
|
||||
int totalAccumulatedTime = this.getTotalAccumulatedTime(itemStack);
|
||||
|
||||
tooltip.add(ChatHelpers.macro(AEServerConfig.getInstance().bottles.storedTimeStr, TimeUtil.secondsToTimeNotation(TimeUtil.ticksToSeconds(storedTime, AEServerConfig.getInstance().bottles.ticks)).toString()));
|
||||
|
||||
tooltip.add(ChatHelpers.macro(AEServerConfig.getInstance().bottles.accumulatedTimeStr, TimeUtil.secondsToTimeNotation(TimeUtil.ticksToSeconds(totalAccumulatedTime, AEServerConfig.getInstance().bottles.ticks)).toString()));
|
||||
|
||||
tooltip.add(ChatHelpers.macro(AEServerConfig.getInstance().bottles.totalUses, "" + TimeUtil.ticksToSeconds(storedTime, AEServerConfig.getInstance().bottles.ticks) / AEServerConfig.getInstance().bottles.eachUseDuration));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getStoredEnergy(ItemStack stack) {
|
||||
return stack.getOrCreateTag().getInt(NBTKeys.STORED_TIME);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setStoredEnergy(ItemStack stack, int energy) {
|
||||
int newStoredTime = Math.min(energy, AEServerConfig.getInstance().bottles.maxTime * 20);
|
||||
stack.getOrCreateTag().putInt(NBTKeys.STORED_TIME, newStoredTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyDamage(ItemStack stack, int damage) {
|
||||
setStoredEnergy(stack, getStoredEnergy(stack) - damage);
|
||||
}
|
||||
|
||||
public int getTotalAccumulatedTime(ItemStack stack) {
|
||||
return stack.getOrCreateTag().getInt(NBTKeys.TOTAL_ACCUMULATED_TIME);
|
||||
}
|
||||
|
||||
public void setTotalAccumulatedTime(ItemStack stack, int value) {
|
||||
int newValue = Math.min(value, AEServerConfig.getInstance().bottles.maxTime * 20);
|
||||
stack.getOrCreateTag().putInt(NBTKeys.TOTAL_ACCUMULATED_TIME, newValue);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void inventoryTick(ItemStack itemStack, Level level, Entity entity, int itemSlot, boolean isSelected) {
|
||||
super.inventoryTick(itemStack, level, entity, itemSlot, isSelected);
|
||||
if (level.isClientSide) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (level.getGameTime() % AEServerConfig.getInstance().bottles.ticks == 0) {
|
||||
int storedTime = this.getStoredEnergy(itemStack);
|
||||
if (storedTime < (AEServerConfig.getInstance().bottles.maxTime * 20)) {
|
||||
this.setStoredEnergy(itemStack, storedTime + AEServerConfig.getInstance().bottles.ticks);
|
||||
}
|
||||
|
||||
int totalAccumulatedTime = this.getTotalAccumulatedTime(itemStack);
|
||||
if (totalAccumulatedTime < (AEServerConfig.getInstance().bottles.maxTime * 20)) {
|
||||
this.setTotalAccumulatedTime(itemStack, totalAccumulatedTime + AEServerConfig.getInstance().bottles.ticks);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,7 +2,8 @@ package dev.zontreck.essentials.rtp;
|
|||
|
||||
import dev.zontreck.ariaslib.util.Lists;
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3d;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3i;
|
||||
import dev.zontreck.libzontreck.vectors.WorldPosition;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
|
@ -30,7 +31,7 @@ public class RTP {
|
|||
private int tries;
|
||||
|
||||
public RTP(ServerLevel level) {
|
||||
position = new WorldPosition(new Vector3(0, -60, 0), WorldPosition.getDim(level));
|
||||
position = new WorldPosition(new Vector3d(0, -60, 0), WorldPosition.getDim(level));
|
||||
dimension = position.getActualDimension();
|
||||
|
||||
if (position.getActualDimension().dimensionType().hasCeiling()) {
|
||||
|
@ -105,11 +106,11 @@ public class RTP {
|
|||
|
||||
Random rng = new Random(Instant.now().getEpochSecond());
|
||||
|
||||
Vector3 pos;
|
||||
Vector3d pos;
|
||||
BlockPos bpos;
|
||||
|
||||
do {
|
||||
pos = new Vector3(rng.nextDouble(0xFFFF), -60, rng.nextDouble(0xFFFF));
|
||||
pos = new Vector3d(rng.nextDouble(0xFFFF), -60, rng.nextDouble(0xFFFF));
|
||||
|
||||
pos = spiralPositions(pos);
|
||||
position.Position = pos;
|
||||
|
@ -124,18 +125,18 @@ public class RTP {
|
|||
ChunkStatus status = ChunkStatus.SPAWN;
|
||||
dimension.getChunk(bpos.getX() >> 4, bpos.getZ() >> 4, status);
|
||||
|
||||
Vector3 pos = new Vector3(dimension.getHeightmapPos(heightMapType, bpos));
|
||||
Vector3d pos = new Vector3d(dimension.getHeightmapPos(heightMapType, bpos));
|
||||
return dimension.getWorldBorder().isWithinBounds(pos.asBlockPos());
|
||||
}
|
||||
|
||||
private Vector3 spiralPositions(Vector3 position) {
|
||||
Vec3i posi = position.asMinecraftVec3i();
|
||||
private Vector3d spiralPositions(Vector3d position) {
|
||||
Vec3i posi = position.asVec3i();
|
||||
BlockPos startBlockPos = new BlockPos(posi.getX(), dimension.getSeaLevel(), posi.getZ());
|
||||
|
||||
for (BlockPos pos : BlockPos.spiralAround(startBlockPos, 16, Direction.WEST, Direction.NORTH)) {
|
||||
if (isSafe(pos)) {
|
||||
// Set the new position
|
||||
return new Vector3(pos);
|
||||
return new Vector3d(pos);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,6 @@ public class RTPCaches
|
|||
|
||||
public static void deserialize(CompoundTag tag)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import net.minecraft.server.level.ServerLevel;
|
|||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.TickEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.server.ServerLifecycleHooks;
|
||||
|
||||
public class RTPCachesEventHandlers
|
||||
{
|
||||
|
@ -21,7 +22,7 @@ public class RTPCachesEventHandlers
|
|||
{
|
||||
if(!AriasEssentials.ALIVE) return;
|
||||
lastTick++;
|
||||
MinecraftServer server = LibZontreck.THE_SERVER;
|
||||
MinecraftServer server = ServerLifecycleHooks.getCurrentServer();
|
||||
if(lastTick>=400)
|
||||
{
|
||||
lastTick=0;
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
package dev.zontreck.essentials.rtp;
|
||||
|
||||
import dev.zontreck.ariaslib.util.DelayedExecutorService;
|
||||
import dev.zontreck.essentials.commands.teleport.TeleportActioner;
|
||||
import dev.zontreck.essentials.commands.teleport.TeleportContainer;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3;
|
||||
import dev.zontreck.libzontreck.vectors.Vector3d;
|
||||
import dev.zontreck.libzontreck.vectors.WorldPosition;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
@ -20,9 +19,9 @@ public class RandomPositionFactory {
|
|||
public static RTP beginRTPSearch(ServerLevel level)
|
||||
{
|
||||
RTP tmp = new RTP(level);
|
||||
tmp.position = new WorldPosition(new Vector3(0,0,0), WorldPosition.getDim(level));
|
||||
tmp.position = new WorldPosition(new Vector3d(0,0,0), WorldPosition.getDim(level));
|
||||
Thread tx = new Thread(new RandomPositionLocator(tmp));
|
||||
tx.setName("RTPTask-"+ DelayedExecutorService.getNext());
|
||||
tx.setName("RTPTask");
|
||||
tx.start();
|
||||
|
||||
return tmp;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package dev.zontreck.essentials.rtp;
|
||||
|
||||
import dev.zontreck.ariaslib.terminal.Task;
|
||||
import dev.zontreck.ariaslib.util.DelayedExecutorService;
|
||||
import dev.zontreck.essentials.AriasEssentials;
|
||||
import dev.zontreck.essentials.events.RTPFoundEvent;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
package dev.zontreck.essentials.util;
|
||||
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
||||
/**
|
||||
* {@link SoundUtilities#playNoteBlockHarpSound(Level, BlockPos, String)} was taken/derrived from Time-in-a-bottle github.
|
||||
*/
|
||||
public class SoundUtilities {
|
||||
public static void playNoteBlockHarpSound(Level level, BlockPos pos, String note) {
|
||||
// https://minecraft.gamepedia.com/Note_Block
|
||||
switch (note) {
|
||||
// Octave 1
|
||||
case "F#" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.5F);
|
||||
case "G" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.529732F);
|
||||
case "G#" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.561231F);
|
||||
case "A" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.594604F);
|
||||
case "A#" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.629961F);
|
||||
case "B" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.667420F);
|
||||
case "C" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.707107F);
|
||||
case "C#" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.749154F);
|
||||
case "D" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.793701F);
|
||||
case "D#" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.840896F);
|
||||
case "E" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.890899F);
|
||||
case "F" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 0.943874F);
|
||||
|
||||
|
||||
// Octave 2
|
||||
case "F#2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1F);
|
||||
case "G2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1.059463F);
|
||||
case "G#2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1.122462F);
|
||||
case "A2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1.189207F);
|
||||
case "A#2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1.259921F);
|
||||
case "B2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1.334840F);
|
||||
case "C2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1.414214F);
|
||||
case "C#2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1.498307F);
|
||||
case "D2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1.587401F);
|
||||
case "D#2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1.681793F);
|
||||
case "E2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1.781797F);
|
||||
case "F2" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 1.887749F);
|
||||
case "F#3" -> level.playSound(null, pos, SoundEvents.NOTE_BLOCK_HARP.get(), SoundSource.BLOCKS, 0.5F, 2F);
|
||||
}
|
||||
}
|
||||
}
|
10
src/main/java/dev/zontreck/essentials/util/StylesUtil.java
Normal file
|
@ -0,0 +1,10 @@
|
|||
package dev.zontreck.essentials.util;
|
||||
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.network.chat.Style;
|
||||
|
||||
public class StylesUtil {
|
||||
|
||||
public static final Style GREEN = Style.EMPTY.applyFormat(ChatFormatting.GREEN);
|
||||
public static final Style GRAY = Style.EMPTY.applyFormat(ChatFormatting.GRAY);
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_recessed_model"
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_recessed_model",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_recessed_model",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_recessed_model",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_sastor_corner_model"
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_sastor_corner_model",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_sastor_corner_model",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_sastor_corner_model",
|
||||
"y": 90
|
||||
},
|
||||
"facing=up": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_sastor_up_model"
|
||||
},
|
||||
"facing=down": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_sastor_down_model"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_vertically_slit_model"
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_vertically_slit_model",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_vertically_slit_model",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east": {
|
||||
"model": "ariasessentials:block/engineersdecor/brick/clinker_brick_vertically_slit_model",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +1,50 @@
|
|||
{
|
||||
"itemGroup.tabs.ariasessentials": "Aria's Essentials",
|
||||
|
||||
"item.ariasessentials.tiab": "Time in a Bottle",
|
||||
"item.ariasessentials.eiab": "Energy in a Bottle",
|
||||
"item.ariasessentials.metal_bar": "Metal Bar",
|
||||
|
||||
|
||||
"block.ariasessentials.clinker_brick_block": "Clinker Brick Block",
|
||||
"block.ariasessentials.clinker_brick_wall": "Clinker Brick Wall",
|
||||
"block.ariasessentials.clinker_brick_recessed": "Recessed Clinker Brick",
|
||||
"block.ariasessentials.clinker_brick_vertically_slit": "Vertically Slit Clinker Bricks",
|
||||
"block.ariasessentials.clinker_brick_slab": "Clinker Brick Slab",
|
||||
"block.ariasessentials.clinker_brick_stairs": "Clinker Brick Stairs",
|
||||
"block.ariasessentials.clinker_brick_stained_block": "Stained Clinker Brick Block",
|
||||
"block.ariasessentials.clinker_brick_stained_slab": "Stained Clinker Brick Slab",
|
||||
"block.ariasessentials.clinker_brick_stained_stairs": "Stained Clinker Brick Stairs",
|
||||
"block.ariasessentials.clinker_brick_sastor_corner_block": "Sandstone Ornated Clinker Brick",
|
||||
"block.ariasessentials.slag_brick_block": "Slag Brick Block",
|
||||
"block.ariasessentials.slag_brick_slab": "Slag Brick Slab",
|
||||
"block.ariasessentials.slag_brick_stairs": "Slag Brick Stairs",
|
||||
"block.ariasessentials.slag_brick_wall": "Slag Brick Wall",
|
||||
"block.ariasessentials.rebar_concrete": "Rebar Concrete Block",
|
||||
"block.ariasessentials.rebar_concrete_slab": "Rebar Concrete Slab",
|
||||
"block.ariasessentials.rebar_concrete_stairs": "Rebar Concrete Stairs",
|
||||
"block.ariasessentials.rebar_concrete_tile": "Rebar Concrete Tile",
|
||||
"block.ariasessentials.rebar_concrete_tile_slab": "Rebar Concrete Tile Slab",
|
||||
"block.ariasessentials.rebar_concrete_tile_stairs": "Rebar Concrete Tile Stairs",
|
||||
"block.ariasessentials.rebar_concrete_wall": "Rebar Concrete Wall",
|
||||
"block.ariasessentials.panzerglass_block": "Panzer Glass Block",
|
||||
"block.ariasessentials.panzerglass_slab": "Panzer Glass Slab",
|
||||
"block.ariasessentials.old_industrial_wood_door": "Old Industrial Wood Door",
|
||||
"block.ariasessentials.old_industrial_wood_planks": "Old Industrial Wood Planks",
|
||||
"block.ariasessentials.old_industrial_wood_slab": "Old Industrial Wood Slab",
|
||||
"block.ariasessentials.old_industrial_wood_stairs": "Old Industrial Wood Stairs",
|
||||
"block.ariasessentials.steel_floor_grating": "Steel Floor Grating",
|
||||
"block.ariasessentials.steel_table": "Steel Table",
|
||||
"block.ariasessentials.steel_catwalk": "Steel Catwalk",
|
||||
"block.ariasessentials.steel_catwalk_top": "Top Oriented Steel Catwalk",
|
||||
"block.ariasessentials.steel_railing": "Steel Railing",
|
||||
"block.ariasessentials.steel_catwalk_stairs": "Steel Catwalk Stairs",
|
||||
"block.ariasessentials.steel_catwalk_stairs_lr": "Steel Catwalk Left Rail",
|
||||
"block.ariasessentials.steel_catwalk_stairs_rr": "Steel Catwalk Right Rail",
|
||||
"block.ariasessentials.steel_catwalk_stairs_dr": "Steel Catwalk Double Rail",
|
||||
"block.ariasessentials.steel_catwalk_block": "Steel Catwalk Block",
|
||||
"block.ariasessentials.tflipflop": "T-Flip Flop (WIP)",
|
||||
|
||||
"key.category.ariasessentials": "Aria's Essentials",
|
||||
"key.ariasessentials.autowalk": "Auto Walk"
|
||||
}
|
|
@ -0,0 +1,283 @@
|
|||
{
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"f": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_pole_side",
|
||||
"s": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_upplate_top_texture",
|
||||
"particle": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_texture0",
|
||||
"d": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_texture0"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
4,
|
||||
0,
|
||||
11
|
||||
],
|
||||
"to": [
|
||||
12,
|
||||
16,
|
||||
13
|
||||
],
|
||||
"rotation": {
|
||||
"angle": 0,
|
||||
"axis": "y",
|
||||
"origin": [
|
||||
8,
|
||||
8,
|
||||
6
|
||||
]
|
||||
},
|
||||
"faces": {
|
||||
"east": {
|
||||
"uv": [
|
||||
3,
|
||||
0,
|
||||
5,
|
||||
16
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"south": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
12,
|
||||
16
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"west": {
|
||||
"uv": [
|
||||
11,
|
||||
0,
|
||||
13,
|
||||
16
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"up": {
|
||||
"uv": [
|
||||
4,
|
||||
11,
|
||||
12,
|
||||
13
|
||||
],
|
||||
"texture": "#s"
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
4,
|
||||
3,
|
||||
12,
|
||||
5
|
||||
],
|
||||
"texture": "#s"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"to": [
|
||||
8,
|
||||
16,
|
||||
11
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
12,
|
||||
16
|
||||
],
|
||||
"texture": "#f"
|
||||
},
|
||||
"south": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
12,
|
||||
16
|
||||
],
|
||||
"texture": "#f"
|
||||
},
|
||||
"west": {
|
||||
"uv": [
|
||||
1,
|
||||
0,
|
||||
11,
|
||||
16
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
1,
|
||||
8,
|
||||
11
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
5,
|
||||
8,
|
||||
15
|
||||
],
|
||||
"texture": "#d"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [
|
||||
8,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"to": [
|
||||
16,
|
||||
16,
|
||||
11
|
||||
],
|
||||
"rotation": {
|
||||
"angle": 0,
|
||||
"axis": "y",
|
||||
"origin": [
|
||||
16,
|
||||
8,
|
||||
8
|
||||
]
|
||||
},
|
||||
"faces": {
|
||||
"north": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
12,
|
||||
16
|
||||
],
|
||||
"texture": "#f"
|
||||
},
|
||||
"east": {
|
||||
"uv": [
|
||||
5,
|
||||
0,
|
||||
15,
|
||||
16
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"south": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
12,
|
||||
16
|
||||
],
|
||||
"texture": "#f"
|
||||
},
|
||||
"up": {
|
||||
"uv": [
|
||||
8,
|
||||
1,
|
||||
16,
|
||||
11
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
8,
|
||||
5,
|
||||
16,
|
||||
15
|
||||
],
|
||||
"texture": "#d"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [
|
||||
3,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [
|
||||
13,
|
||||
16,
|
||||
1
|
||||
],
|
||||
"rotation": {
|
||||
"angle": 0,
|
||||
"axis": "y",
|
||||
"origin": [
|
||||
8,
|
||||
8,
|
||||
-3
|
||||
]
|
||||
},
|
||||
"faces": {
|
||||
"north": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
14,
|
||||
16
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"east": {
|
||||
"uv": [
|
||||
15,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#s"
|
||||
},
|
||||
"south": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
12,
|
||||
16
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"west": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
16
|
||||
],
|
||||
"texture": "#s"
|
||||
},
|
||||
"up": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
12,
|
||||
1
|
||||
],
|
||||
"texture": "#s"
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
4,
|
||||
15,
|
||||
12,
|
||||
16
|
||||
],
|
||||
"texture": "#s"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
{
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"d": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_corner_down_texture",
|
||||
"n": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_corner_side_texture",
|
||||
"particle": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_texture0",
|
||||
"s": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_texture0",
|
||||
"u": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_corner_up_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [
|
||||
16,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"uv": [
|
||||
16,
|
||||
0,
|
||||
0,
|
||||
16
|
||||
],
|
||||
"texture": "#n",
|
||||
"cullface": "north"
|
||||
},
|
||||
"east": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#n",
|
||||
"cullface": "east"
|
||||
},
|
||||
"south": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#s",
|
||||
"cullface": "south"
|
||||
},
|
||||
"west": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#s",
|
||||
"cullface": "west"
|
||||
},
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#u",
|
||||
"cullface": "up"
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#d",
|
||||
"cullface": "down"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"particle": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_texture0",
|
||||
"down": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_upplate_top_texture",
|
||||
"up": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_texture0",
|
||||
"north": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_downplate_side_texture",
|
||||
"south": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_downplate_side_texture",
|
||||
"west": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_downplate_side_texture",
|
||||
"east": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_downplate_side_texture"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"particle": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_texture0",
|
||||
"down": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_texture0",
|
||||
"up": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_upplate_top_texture",
|
||||
"north": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_upplate_side_texture",
|
||||
"south": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_upplate_side_texture",
|
||||
"west": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_upplate_side_texture",
|
||||
"east": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_upplate_side_texture"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,247 @@
|
|||
{
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"f": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_pole_side",
|
||||
"s": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_sastor_upplate_top_texture",
|
||||
"particle": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_texture0",
|
||||
"d": "ariasessentials:block/engineersdecor/clinker_brick/clinker_brick_texture0"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"to": [
|
||||
8,
|
||||
16,
|
||||
15
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
12,
|
||||
16
|
||||
],
|
||||
"texture": "#f"
|
||||
},
|
||||
"south": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
12,
|
||||
16
|
||||
],
|
||||
"texture": "#f"
|
||||
},
|
||||
"west": {
|
||||
"uv": [
|
||||
1,
|
||||
0,
|
||||
15,
|
||||
16
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"up": {
|
||||
"uv": [
|
||||
0,
|
||||
1,
|
||||
8,
|
||||
15
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
0,
|
||||
1,
|
||||
8,
|
||||
15
|
||||
],
|
||||
"texture": "#d"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [
|
||||
8,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"to": [
|
||||
16,
|
||||
16,
|
||||
15
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
12,
|
||||
16
|
||||
],
|
||||
"texture": "#f"
|
||||
},
|
||||
"east": {
|
||||
"uv": [
|
||||
1,
|
||||
0,
|
||||
15,
|
||||
16
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"south": {
|
||||
"uv": [
|
||||
4,
|
||||
0,
|
||||
12,
|
||||
16
|
||||
],
|
||||
"texture": "#f"
|
||||
},
|
||||
"up": {
|
||||
"uv": [
|
||||
8,
|
||||
1,
|
||||
16,
|
||||
15
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
8,
|
||||
1,
|
||||
16,
|
||||
15
|
||||
],
|
||||
"texture": "#d"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [
|
||||
3,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"to": [
|
||||
13,
|
||||
16,
|
||||
1
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"uv": [
|
||||
3,
|
||||
0,
|
||||
13,
|
||||
16
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"east": {
|
||||
"uv": [
|
||||
15,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#s"
|
||||
},
|
||||
"west": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
16
|
||||
],
|
||||
"texture": "#s"
|
||||
},
|
||||
"up": {
|
||||
"uv": [
|
||||
3,
|
||||
0,
|
||||
13,
|
||||
1
|
||||
],
|
||||
"texture": "#s"
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
3,
|
||||
15,
|
||||
13,
|
||||
16
|
||||
],
|
||||
"texture": "#s"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [
|
||||
3,
|
||||
0,
|
||||
15
|
||||
],
|
||||
"to": [
|
||||
13,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"faces": {
|
||||
"east": {
|
||||
"uv": [
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
16
|
||||
],
|
||||
"texture": "#s"
|
||||
},
|
||||
"south": {
|
||||
"uv": [
|
||||
3,
|
||||
0,
|
||||
13,
|
||||
16
|
||||
],
|
||||
"texture": "#d"
|
||||
},
|
||||
"west": {
|
||||
"uv": [
|
||||
15,
|
||||
0,
|
||||
16,
|
||||
16
|
||||
],
|
||||
"texture": "#s"
|
||||
},
|
||||
"up": {
|
||||
"uv": [
|
||||
3,
|
||||
15,
|
||||
13,
|
||||
16
|
||||
],
|
||||
"texture": "#s"
|
||||
},
|
||||
"down": {
|
||||
"uv": [
|
||||
3,
|
||||
0,
|
||||
13,
|
||||
1
|
||||
],
|
||||
"texture": "#s"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"particle": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"s": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"t": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_top"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, -0.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 16, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 16, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 1],
|
||||
"to": [16, 2, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 1, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [15, 1, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 15],
|
||||
"to": [16, 2, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, 14.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 14, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [15, 14, 16, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 15, 16, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 1],
|
||||
"to": [1, 2, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-7, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 1, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 1, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 1],
|
||||
"to": [15, 2, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [1, 1, 15, 15], "texture": "#t"},
|
||||
"down": {"uv": [1, 1, 15, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 1],
|
||||
"to": [15, 1, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -7.5, 0.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#t"},
|
||||
"down": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#t"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [70, -2, 3],
|
||||
"translation": [0.25, 1, 1.75],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [8, 0, 42],
|
||||
"translation": [8.5, 0, -5.75],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"translation": [0.25, 1.25, -3],
|
||||
"scale": [0.6, 0.6, 0.6]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [-90, 0, 0],
|
||||
"translation": [0, 0, -4],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,152 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"frame": "ariasessentials:block/engineersdecor/material/steel_texture",
|
||||
"particle": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"s": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"t": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_top"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, -0.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 16, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 16, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 1],
|
||||
"to": [16, 2, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 1, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [15, 1, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 15],
|
||||
"to": [16, 2, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, 14.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 14, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [15, 14, 16, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 15, 16, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 1],
|
||||
"to": [1, 2, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-7, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 1, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 1, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 1],
|
||||
"to": [15, 2, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [1, 1, 15, 15], "texture": "#t"},
|
||||
"down": {"uv": [1, 1, 15, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 1],
|
||||
"to": [15, 1, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -7.5, 0.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#t"},
|
||||
"down": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 2, 0],
|
||||
"to": [1, 15, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [15, 1, 16, 14], "texture": "#frame"},
|
||||
"east": {"uv": [15, 1, 16, 14], "texture": "#frame"},
|
||||
"south": {"uv": [0, 1, 1, 14], "texture": "#frame"},
|
||||
"west": {"uv": [0, 1, 1, 14], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 15, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 1], "texture": "#frame"},
|
||||
"east": {"uv": [15, 0, 16, 1], "texture": "#frame"},
|
||||
"south": {"uv": [0, 0, 16, 1], "texture": "#frame"},
|
||||
"west": {"uv": [0, 0, 1, 1], "texture": "#frame"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#frame"},
|
||||
"down": {"uv": [0, 15, 16, 16], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 14.5, 0.25],
|
||||
"to": [15, 15, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 1, 15, 1.5], "texture": "#frame"},
|
||||
"south": {"uv": [1, 1, 15, 1.5], "texture": "#frame"},
|
||||
"up": {"uv": [1, 0.25, 15, 1], "texture": "#frame"},
|
||||
"down": {"uv": [1, 15, 15, 15.75], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 2, 0],
|
||||
"to": [16, 15, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 1, 1, 14], "texture": "#frame"},
|
||||
"east": {"uv": [15, 1, 16, 14], "texture": "#frame"},
|
||||
"south": {"uv": [15, 1, 16, 14], "texture": "#frame"},
|
||||
"west": {"uv": [0, 1, 1, 14], "texture": "#frame"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [70, -2, 3],
|
||||
"translation": [0.25, 1, 1.75],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [8, 0, 42],
|
||||
"translation": [8.5, 0, -5.75],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"translation": [0.25, 3, -3],
|
||||
"scale": [0.6, 0.6, 0.6]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [-90, 0, 0],
|
||||
"translation": [0, 0, -4],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,187 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"frame": "ariasessentials:block/engineersdecor/material/steel_texture",
|
||||
"particle": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"s": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"t": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_top"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 2, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, -0.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 16, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 16, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 1],
|
||||
"to": [16, 2, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 1, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [15, 1, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 15],
|
||||
"to": [16, 2, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, 14.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 14, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [15, 14, 16, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 15, 16, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 1],
|
||||
"to": [1, 2, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-7, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 1, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 1, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 1],
|
||||
"to": [15, 2, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [1, 1, 15, 15], "texture": "#t"},
|
||||
"down": {"uv": [1, 1, 15, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 1],
|
||||
"to": [15, 1, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -7.5, 0.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#t"},
|
||||
"down": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 2, 0],
|
||||
"to": [1, 15, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [15, 1, 16, 14], "texture": "#frame"},
|
||||
"east": {"uv": [15, 1, 16, 14], "texture": "#frame"},
|
||||
"south": {"uv": [0, 1, 1, 14], "texture": "#frame"},
|
||||
"west": {"uv": [0, 1, 1, 14], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 2, 15],
|
||||
"to": [16, 15, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [23, 8, 15.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 1, 1, 14], "texture": "#frame"},
|
||||
"east": {"uv": [0, 1, 1, 14], "texture": "#frame"},
|
||||
"south": {"uv": [15, 1, 16, 14], "texture": "#frame"},
|
||||
"west": {"uv": [15, 1, 16, 14], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 15, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 1], "texture": "#frame"},
|
||||
"east": {"uv": [15, 0, 16, 1], "texture": "#frame"},
|
||||
"south": {"uv": [0, 0, 16, 1], "texture": "#frame"},
|
||||
"west": {"uv": [0, 0, 1, 1], "texture": "#frame"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#frame"},
|
||||
"down": {"uv": [0, 15, 16, 16], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 15, 1],
|
||||
"to": [16, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 2]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 1], "texture": "#frame"},
|
||||
"east": {"uv": [0, 0, 15, 1], "texture": "#frame"},
|
||||
"south": {"uv": [15, 0, 16, 1], "texture": "#frame"},
|
||||
"west": {"uv": [1, 0, 16, 1], "texture": "#frame"},
|
||||
"up": {"uv": [15, 1, 16, 16], "texture": "#frame"},
|
||||
"down": {"uv": [15, 0, 16, 15], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 14.5, 0.25],
|
||||
"to": [15, 15, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 1, 15, 1.5], "texture": "#frame"},
|
||||
"south": {"uv": [1, 1, 15, 1.5], "texture": "#frame"},
|
||||
"up": {"uv": [1, 0.25, 15, 1], "texture": "#frame"},
|
||||
"down": {"uv": [1, 15, 15, 15.75], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 14.5, 1],
|
||||
"to": [15.75, 15, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [9, 7, 1]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 1, 15, 1.5], "texture": "#frame"},
|
||||
"west": {"uv": [1, 1, 15, 1.5], "texture": "#frame"},
|
||||
"up": {"uv": [15, 1, 15.75, 15], "texture": "#frame"},
|
||||
"down": {"uv": [15, 1, 15.75, 15], "texture": "#frame"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 2, 0],
|
||||
"to": [16, 15, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 1, 1, 14], "texture": "#frame"},
|
||||
"east": {"uv": [15, 1, 16, 14], "texture": "#frame"},
|
||||
"south": {"uv": [15, 1, 16, 14], "texture": "#frame"},
|
||||
"west": {"uv": [0, 1, 1, 14], "texture": "#frame"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [70, -2, 3],
|
||||
"translation": [0.75, 1.75, 1.25],
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [20, -59, 15],
|
||||
"translation": [8.5, 0, -5.75],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [0.25, 0, -3],
|
||||
"scale": [0.6, 0.6, 0.6]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [-90, 0, 0],
|
||||
"translation": [0, 0, -3.5],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,289 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"particle": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"s": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"t": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_top"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 2, 15],
|
||||
"to": [15, 4, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 16.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 16, 0], "texture": "#s"},
|
||||
"down": {"uv": [0, 16, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 2, 9],
|
||||
"to": [15, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 7, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [15, 15, 16, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 8],
|
||||
"to": [15, 4, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 9.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 16, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 16, 0], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 9],
|
||||
"to": [2, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 7, 1, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 1, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 3, 9],
|
||||
"to": [14, 3, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -5.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 1, 14, 7], "texture": "#t"},
|
||||
"down": {"uv": [2, 8, 14, 14], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 4, 9],
|
||||
"to": [14, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [3, 3, 15, 9], "texture": "#t"},
|
||||
"down": {"uv": [2, 9, 14, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 7],
|
||||
"to": [15, 12, 8],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 16.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 16, 0], "texture": "#s"},
|
||||
"down": {"uv": [0, 16, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 10, 1],
|
||||
"to": [15, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 7, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [15, 15, 16, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 0],
|
||||
"to": [15, 12, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 9.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 16, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 16, 0], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 1],
|
||||
"to": [2, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 7, 1, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 1, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 11, 1],
|
||||
"to": [14, 11, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -5.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 1, 14, 7], "texture": "#t"},
|
||||
"down": {"uv": [2, 8, 14, 14], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 12, 1],
|
||||
"to": [14, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [3, 3, 15, 9], "texture": "#t"},
|
||||
"down": {"uv": [2, 9, 14, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, -1, 14],
|
||||
"to": [16, 1, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 14, -1],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.25, 9, -10],
|
||||
"to": [15.75, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.5, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.5, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, -1, 14],
|
||||
"to": [1, 1, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, -1],
|
||||
"to": [1, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.25, 9, -10],
|
||||
"to": [0.75, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.5, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.5, 16], "texture": "#s"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [70, -2, 3],
|
||||
"translation": [0.25, 2, 1],
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [-5, -8, 14],
|
||||
"translation": [8.5, 0, -5.75],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, -45, 0],
|
||||
"translation": [-0.25, 0, -3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0],
|
||||
"translation": [0, 0.25, -3.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "step",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3, 4, 5]
|
||||
},
|
||||
{
|
||||
"name": "step",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [6, 7, 8, 9, 10, 11]
|
||||
},
|
||||
{
|
||||
"name": "bar",
|
||||
"origin": [15.40625, 8, 8],
|
||||
"color": 0,
|
||||
"children": [12, 13, 14]
|
||||
},
|
||||
{
|
||||
"name": "bar",
|
||||
"origin": [15.40625, 8, 8],
|
||||
"color": 0,
|
||||
"children": [15, 16, 17]
|
||||
},
|
||||
{
|
||||
"name": "VoxelShapes",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,419 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"particle": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"s": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"t": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_top"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 2, 15],
|
||||
"to": [15, 4, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 16.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 16, 0], "texture": "#s"},
|
||||
"down": {"uv": [0, 16, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 2, 9],
|
||||
"to": [15, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 7, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [15, 15, 16, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 8],
|
||||
"to": [15, 4, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 9.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 16, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 16, 0], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 9],
|
||||
"to": [2, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 7, 1, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 1, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 3, 9],
|
||||
"to": [14, 3, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -5.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 1, 14, 7], "texture": "#t"},
|
||||
"down": {"uv": [2, 8, 14, 14], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 4, 9],
|
||||
"to": [14, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [3, 3, 15, 9], "texture": "#t"},
|
||||
"down": {"uv": [2, 9, 14, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 7],
|
||||
"to": [15, 12, 8],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 16.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 16, 0], "texture": "#s"},
|
||||
"down": {"uv": [0, 16, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 10, 1],
|
||||
"to": [15, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 7, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [15, 15, 16, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 0],
|
||||
"to": [15, 12, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 9.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 16, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 16, 0], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 1],
|
||||
"to": [2, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 7, 1, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 1, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 11, 1],
|
||||
"to": [14, 11, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -5.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 1, 14, 7], "texture": "#t"},
|
||||
"down": {"uv": [2, 8, 14, 14], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 12, 1],
|
||||
"to": [14, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [3, 3, 15, 9], "texture": "#t"},
|
||||
"down": {"uv": [2, 9, 14, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, -1, 14],
|
||||
"to": [16, 1, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 14, -1],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.25, 9, -10],
|
||||
"to": [15.75, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.5, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.5, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, -1, 14],
|
||||
"to": [1, 1, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, -1],
|
||||
"to": [1, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.25, 9, -10],
|
||||
"to": [0.75, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.5, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.5, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 19, 14],
|
||||
"to": [16, 21, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 19, -1],
|
||||
"to": [16, 21, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.4, 0.25, 14.5],
|
||||
"to": [15.65, 19.25, 15.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.4, 15.25, -0.5],
|
||||
"to": [15.65, 19.25, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.4, 19.25, 0.5],
|
||||
"to": [15.65, 20.25, 14.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 19, 14],
|
||||
"to": [1, 21, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 19, -1],
|
||||
"to": [1, 21, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.4, 0.25, 14.5],
|
||||
"to": [0.65, 19.25, 15.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.4, 15.25, -0.5],
|
||||
"to": [0.65, 19.25, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.4, 19.25, 0.5],
|
||||
"to": [0.65, 20.25, 14.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [70, -2, 3],
|
||||
"translation": [0.25, 2, 1],
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [-5, -8, 14],
|
||||
"translation": [8.5, 0, -5.75],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, -45, 0],
|
||||
"translation": [-0.25, 0, -3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0],
|
||||
"translation": [0, 0.25, -3.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "step",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3, 4, 5]
|
||||
},
|
||||
{
|
||||
"name": "step",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [6, 7, 8, 9, 10, 11]
|
||||
},
|
||||
{
|
||||
"name": "bar",
|
||||
"origin": [15.40625, 8, 8],
|
||||
"color": 0,
|
||||
"children": [12, 13, 14]
|
||||
},
|
||||
{
|
||||
"name": "bar",
|
||||
"origin": [15.40625, 8, 8],
|
||||
"color": 0,
|
||||
"children": [15, 16, 17]
|
||||
},
|
||||
{
|
||||
"name": "railing",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [18, 19, 20, 21, 22]
|
||||
},
|
||||
{
|
||||
"name": "railing",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [23, 24, 25, 26, 27]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,351 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"particle": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"s": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"t": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_top"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 2, 15],
|
||||
"to": [15, 4, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 16.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 16, 0], "texture": "#s"},
|
||||
"down": {"uv": [0, 16, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 2, 9],
|
||||
"to": [15, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 7, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [15, 15, 16, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 8],
|
||||
"to": [15, 4, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 9.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 16, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 16, 0], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 9],
|
||||
"to": [2, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 7, 1, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 1, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 3, 9],
|
||||
"to": [14, 3, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -5.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 1, 14, 7], "texture": "#t"},
|
||||
"down": {"uv": [2, 8, 14, 14], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 4, 9],
|
||||
"to": [14, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [3, 3, 15, 9], "texture": "#t"},
|
||||
"down": {"uv": [2, 9, 14, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 7],
|
||||
"to": [15, 12, 8],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 16.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 16, 0], "texture": "#s"},
|
||||
"down": {"uv": [0, 16, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 10, 1],
|
||||
"to": [15, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 7, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [15, 15, 16, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 0],
|
||||
"to": [15, 12, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 9.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 16, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 16, 0], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 1],
|
||||
"to": [2, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 7, 1, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 1, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 11, 1],
|
||||
"to": [14, 11, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -5.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 1, 14, 7], "texture": "#t"},
|
||||
"down": {"uv": [2, 8, 14, 14], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 12, 1],
|
||||
"to": [14, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [3, 3, 15, 9], "texture": "#t"},
|
||||
"down": {"uv": [2, 9, 14, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, -1, 14],
|
||||
"to": [16, 1, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 14, -1],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.25, 9, -10],
|
||||
"to": [15.75, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.5, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.5, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, -1, 14],
|
||||
"to": [1, 1, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, -1],
|
||||
"to": [1, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.25, 9, -10],
|
||||
"to": [0.75, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.5, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.5, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 19, 14],
|
||||
"to": [1, 21, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 19, -1],
|
||||
"to": [1, 21, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.4, 0.25, 14.5],
|
||||
"to": [0.65, 19.25, 15.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.4, 15.25, -0.5],
|
||||
"to": [0.65, 19.25, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.4, 19.25, 0.5],
|
||||
"to": [0.65, 20.25, 14.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [70, -2, 3],
|
||||
"translation": [0.25, 2, 1],
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [-5, -8, 14],
|
||||
"translation": [8.5, 0, -5.75],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, -45, 0],
|
||||
"translation": [-0.25, 0, -3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0],
|
||||
"translation": [0, 0.25, -3.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "step",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3, 4, 5]
|
||||
},
|
||||
{
|
||||
"name": "step",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [6, 7, 8, 9, 10, 11]
|
||||
},
|
||||
{
|
||||
"name": "bar",
|
||||
"origin": [15.40625, 8, 8],
|
||||
"color": 0,
|
||||
"children": [12, 13, 14]
|
||||
},
|
||||
{
|
||||
"name": "bar",
|
||||
"origin": [15.40625, 8, 8],
|
||||
"color": 0,
|
||||
"children": [15, 16, 17]
|
||||
},
|
||||
{
|
||||
"name": "railing",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [18, 19, 20, 21, 22]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,351 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"particle": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"s": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"t": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_top"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 2, 15],
|
||||
"to": [15, 4, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 16.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 16, 0], "texture": "#s"},
|
||||
"down": {"uv": [0, 16, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 2, 9],
|
||||
"to": [15, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 7, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [15, 15, 16, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 8],
|
||||
"to": [15, 4, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 9.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 16, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 16, 0], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 9],
|
||||
"to": [2, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 7, 1, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 1, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 3, 9],
|
||||
"to": [14, 3, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -5.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 1, 14, 7], "texture": "#t"},
|
||||
"down": {"uv": [2, 8, 14, 14], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 4, 9],
|
||||
"to": [14, 4, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [3, 3, 15, 9], "texture": "#t"},
|
||||
"down": {"uv": [2, 9, 14, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 7],
|
||||
"to": [15, 12, 8],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 16.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 16, 0], "texture": "#s"},
|
||||
"down": {"uv": [0, 16, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 10, 1],
|
||||
"to": [15, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 7, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [15, 15, 16, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 0],
|
||||
"to": [15, 12, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -4.5, 9.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 0, 16], "texture": "#s"},
|
||||
"west": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 16, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 16, 0], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 10, 1],
|
||||
"to": [2, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 15.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 14, 0, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 9, 16], "texture": "#s"},
|
||||
"south": {"uv": [16, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [7, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 7, 1, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 1, 9], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 11, 1],
|
||||
"to": [14, 11, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -5.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 1, 14, 7], "texture": "#t"},
|
||||
"down": {"uv": [2, 8, 14, 14], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 12, 1],
|
||||
"to": [14, 12, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -4.5, 8.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [3, 3, 15, 9], "texture": "#t"},
|
||||
"down": {"uv": [2, 9, 14, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, -1, 14],
|
||||
"to": [16, 1, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 14, -1],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.25, 9, -10],
|
||||
"to": [15.75, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.5, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.5, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, -1, 14],
|
||||
"to": [1, 1, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, -1],
|
||||
"to": [1, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.25, 9, -10],
|
||||
"to": [0.75, 11, 11],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [-15, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.5, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.5, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.5, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 19, 14],
|
||||
"to": [16, 21, 16],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 19, -1],
|
||||
"to": [16, 21, 1],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [0, 0, 1]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.4, 0.25, 14.5],
|
||||
"to": [15.65, 19.25, 15.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.4, 15.25, -0.5],
|
||||
"to": [15.65, 19.25, 0.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.4, 19.25, 0.5],
|
||||
"to": [15.65, 20.25, 14.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 0.25, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 0.25, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 0.25, 1], "texture": "#s"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [70, -2, 3],
|
||||
"translation": [0.25, 2, 1],
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [-5, -8, 14],
|
||||
"translation": [8.5, 0, -5.75],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, -45, 0],
|
||||
"translation": [-0.25, 0, -3],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0],
|
||||
"translation": [0, 0.25, -3.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "step",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3, 4, 5]
|
||||
},
|
||||
{
|
||||
"name": "step",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [6, 7, 8, 9, 10, 11]
|
||||
},
|
||||
{
|
||||
"name": "bar",
|
||||
"origin": [15.40625, 8, 8],
|
||||
"color": 0,
|
||||
"children": [12, 13, 14]
|
||||
},
|
||||
{
|
||||
"name": "bar",
|
||||
"origin": [15.40625, 8, 8],
|
||||
"color": 0,
|
||||
"children": [15, 16, 17]
|
||||
},
|
||||
{
|
||||
"name": "railing",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [18, 19, 20, 21, 22]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,119 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"particle": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"s": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_side",
|
||||
"t": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_top"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 14, 0],
|
||||
"to": [16, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, -0.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 14, 16, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 14, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 16, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 14, 1],
|
||||
"to": [16, 16, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 1, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [15, 1, 16, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 15],
|
||||
"to": [16, 16, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -6.5, 14.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 14, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 14, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [15, 14, 16, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 15, 16, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 1],
|
||||
"to": [1, 16, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-7, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 14, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 1, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 1, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 16, 1],
|
||||
"to": [15, 16, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -6.5, 0.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [1, 1, 15, 15], "texture": "#t"},
|
||||
"down": {"uv": [1, 1, 15, 15], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 1],
|
||||
"to": [15, 15, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [-6, -7.5, 0.75]},
|
||||
"faces": {
|
||||
"up": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#t"},
|
||||
"down": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#t"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [70, -2, 3],
|
||||
"translation": [0.25, 1, 1.75],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [8, 0, 42],
|
||||
"translation": [8.5, 0, -5.75],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"translation": [0.25, 1.25, -3],
|
||||
"scale": [0.6, 0.6, 0.6]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [-90, 0, 0],
|
||||
"translation": [0, 0, -4],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
{
|
||||
"name": "VoxelShapes",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,203 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"particle": "ariasessentials:block/engineersdecor/furniture/steel_table_side_texture",
|
||||
"s": "ariasessentials:block/engineersdecor/furniture/steel_table_side_texture",
|
||||
"t": "ariasessentials:block/engineersdecor/furniture/steel_table_top_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 15],
|
||||
"to": [16, 2, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"west": {"uv": [15, 0, 16, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 15, 16, 16], "texture": "#t"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 2, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"east": {"uv": [15, 0, 16, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#t"},
|
||||
"down": {"uv": [0, 15, 16, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 0.75],
|
||||
"to": [16, 2, 15.25],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0.75, 0, 15.25, 2], "texture": "#s"},
|
||||
"south": {"uv": [15, 0, 16, 2], "texture": "#s"},
|
||||
"west": {"uv": [0.75, 0, 15.25, 2], "texture": "#s"},
|
||||
"up": {"uv": [15, 0.75, 16, 15.25], "texture": "#t"},
|
||||
"down": {"uv": [15, 0.75, 16, 15.25], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 13.625],
|
||||
"to": [15, 2, 14.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [1.625, 0.125, 2.375, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [13.625, 0.125, 14.375, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 13.625, 15, 14.375], "texture": "#t"},
|
||||
"down": {"uv": [1, 1.625, 15, 2.375], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 12.125],
|
||||
"to": [15, 2, 12.875],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [3.125, 0.125, 3.875, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [12.125, 0.125, 12.875, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 12.125, 15, 12.875], "texture": "#t"},
|
||||
"down": {"uv": [1, 3.125, 15, 3.875], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 10.625],
|
||||
"to": [15, 2, 11.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [4.625, 0.125, 5.375, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [10.625, 0.125, 11.375, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 10.625, 15, 11.375], "texture": "#t"},
|
||||
"down": {"uv": [1, 4.625, 15, 5.375], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 9.125],
|
||||
"to": [15, 2, 9.875],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [6.125, 0.125, 6.875, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [9.125, 0.125, 9.875, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 9.125, 15, 9.875], "texture": "#t"},
|
||||
"down": {"uv": [1, 6.125, 15, 6.875], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 7.625],
|
||||
"to": [15, 2, 8.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [7.625, 0.125, 8.375, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [7.625, 0.125, 8.375, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 7.625, 15, 8.375], "texture": "#t"},
|
||||
"down": {"uv": [1, 7.625, 15, 8.375], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 6.125],
|
||||
"to": [15, 2, 6.875],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [9.125, 0.125, 9.875, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [6.125, 0.125, 6.875, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 6.125, 15, 6.875], "texture": "#t"},
|
||||
"down": {"uv": [1, 9.125, 15, 9.875], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 4.625],
|
||||
"to": [15, 2, 5.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [10.625, 0.125, 11.375, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [4.625, 0.125, 5.375, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 4.625, 15, 5.375], "texture": "#t"},
|
||||
"down": {"uv": [1, 10.625, 15, 11.375], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 3.125],
|
||||
"to": [15, 2, 3.875],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [12.125, 0.125, 12.875, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [3.125, 0.125, 3.875, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 3.125, 15, 3.875], "texture": "#t"},
|
||||
"down": {"uv": [1, 12.125, 15, 12.875], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 1.625],
|
||||
"to": [15, 2, 2.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [13.625, 0.125, 14.375, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [1.625, 0.125, 2.375, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 1.625, 15, 2.375], "texture": "#t"},
|
||||
"down": {"uv": [1, 13.625, 15, 14.375], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 1],
|
||||
"to": [1, 2, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [15, 0, 16, 2], "texture": "#s"},
|
||||
"east": {"uv": [1, 0, 15, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [1, 0, 15, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 1, 15], "texture": "#t"},
|
||||
"down": {"uv": [0, 1, 1, 15], "texture": "#s"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [66, 0, 0],
|
||||
"translation": [0.25, 0, -2.75],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [-4, -1, 58],
|
||||
"translation": [2.5, 0.25, 1.75],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"translation": [0, -2, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [-90, 0, 1],
|
||||
"translation": [0, 0.25, 3.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,224 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"particle": "ariasessentials:block/engineersdecor/furniture/steel_table_side_texture",
|
||||
"s": "ariasessentials:block/engineersdecor/furniture/steel_table_side_texture",
|
||||
"t": "ariasessentials:block/engineersdecor/furniture/steel_table_top_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 14, 15],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"west": {"uv": [15, 0, 16, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 15, 16, 16], "texture": "#t"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 0],
|
||||
"to": [16, 16, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"east": {"uv": [15, 0, 16, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#t"},
|
||||
"down": {"uv": [0, 15, 16, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 14, 0.75],
|
||||
"to": [16, 16, 15.25],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"east": {"uv": [0.75, 0, 15.25, 2], "texture": "#s"},
|
||||
"south": {"uv": [15, 0, 16, 2], "texture": "#s"},
|
||||
"west": {"uv": [0.75, 0, 15.25, 2], "texture": "#s"},
|
||||
"up": {"uv": [15, 0.75, 16, 15.25], "texture": "#t"},
|
||||
"down": {"uv": [15, 0.75, 16, 15.25], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 13.625],
|
||||
"to": [15, 16, 14.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [1.625, 0.125, 2.375, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [13.625, 0.125, 14.375, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 13.625, 15, 14.375], "texture": "#t"},
|
||||
"down": {"uv": [1, 1.625, 15, 2.375], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 12.125],
|
||||
"to": [15, 16, 12.875],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [3.125, 0.125, 3.875, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [12.125, 0.125, 12.875, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 12.125, 15, 12.875], "texture": "#t"},
|
||||
"down": {"uv": [1, 3.125, 15, 3.875], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 10.625],
|
||||
"to": [15, 16, 11.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [4.625, 0.125, 5.375, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [10.625, 0.125, 11.375, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 10.625, 15, 11.375], "texture": "#t"},
|
||||
"down": {"uv": [1, 4.625, 15, 5.375], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 9.125],
|
||||
"to": [15, 16, 9.875],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [6.125, 0.125, 6.875, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [9.125, 0.125, 9.875, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 9.125, 15, 9.875], "texture": "#t"},
|
||||
"down": {"uv": [1, 6.125, 15, 6.875], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 7.625],
|
||||
"to": [15, 16, 8.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [7.625, 0.125, 8.375, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [7.625, 0.125, 8.375, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 7.625, 15, 8.375], "texture": "#t"},
|
||||
"down": {"uv": [1, 7.625, 15, 8.375], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 6.125],
|
||||
"to": [15, 16, 6.875],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [9.125, 0.125, 9.875, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [6.125, 0.125, 6.875, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 6.125, 15, 6.875], "texture": "#t"},
|
||||
"down": {"uv": [1, 9.125, 15, 9.875], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 4.625],
|
||||
"to": [15, 16, 5.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [10.625, 0.125, 11.375, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [4.625, 0.125, 5.375, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 4.625, 15, 5.375], "texture": "#t"},
|
||||
"down": {"uv": [1, 10.625, 15, 11.375], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 3.125],
|
||||
"to": [15, 16, 3.875],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [12.125, 0.125, 12.875, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [3.125, 0.125, 3.875, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 3.125, 15, 3.875], "texture": "#t"},
|
||||
"down": {"uv": [1, 12.125, 15, 12.875], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15, 1.625],
|
||||
"to": [15, 16, 2.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.125, 8.375]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"east": {"uv": [13.625, 0.125, 14.375, 1], "texture": "#s"},
|
||||
"south": {"uv": [1, 0.125, 15, 1], "texture": "#s"},
|
||||
"west": {"uv": [1.625, 0.125, 2.375, 1], "texture": "#s"},
|
||||
"up": {"uv": [1, 1.625, 15, 2.375], "texture": "#t"},
|
||||
"down": {"uv": [1, 13.625, 15, 14.375], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 1],
|
||||
"to": [1, 16, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [15, 0, 16, 2], "texture": "#s"},
|
||||
"east": {"uv": [1, 0, 15, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#s"},
|
||||
"west": {"uv": [1, 0, 15, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 1, 15], "texture": "#t"},
|
||||
"down": {"uv": [0, 1, 1, 15], "texture": "#s"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [66, 0, 0],
|
||||
"translation": [0.25, 0, -2.75],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [-4, -1, 58],
|
||||
"translation": [2.5, 0.25, 1.75],
|
||||
"scale": [0.3, 0.3, 0.3]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"translation": [0, -2, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [-90, 0, 1],
|
||||
"translation": [0, 0.25, 3.25],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
{
|
||||
"name": "VoxelShapes",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"0": "ariasessentials:block/engineersdecor/material/steel_texture",
|
||||
"particle": "ariasessentials:block/engineersdecor/material/steel_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0.25, 15, 0.25],
|
||||
"to": [15.75, 16, 1.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"east": {"uv": [15, 0, 16, 1], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 1, 1], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"down": {"uv": [0, 15, 16, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14.75, 0.25, 0.25],
|
||||
"to": [15.75, 15, 1.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 1, 1, 14], "texture": "#0"},
|
||||
"east": {"uv": [15, 1, 16, 14], "texture": "#0"},
|
||||
"south": {"uv": [15, 1, 16, 14], "texture": "#0"},
|
||||
"west": {"uv": [0, 1, 1, 14], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 1, 1], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1.25, 14.5, 0.25],
|
||||
"to": [14.75, 15, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 7, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 1, 15, 1.5], "texture": "#0"},
|
||||
"south": {"uv": [1, 1, 15, 1.5], "texture": "#0"},
|
||||
"up": {"uv": [1, 0.25, 15, 1], "texture": "#0"},
|
||||
"down": {"uv": [1, 15, 15, 15.75], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.25, 0.25, 0.25],
|
||||
"to": [1.25, 15, 1.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [15, 1, 16, 14], "texture": "#0"},
|
||||
"east": {"uv": [15, 1, 16, 14], "texture": "#0"},
|
||||
"south": {"uv": [0, 1, 1, 14], "texture": "#0"},
|
||||
"west": {"uv": [0, 1, 1, 14], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 1, 1], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [0, -36, 0],
|
||||
"translation": [-4, -1, 0],
|
||||
"scale": [0.72, 0.74, 1]
|
||||
},
|
||||
"head": {
|
||||
"translation": [0, 2.5, 7]
|
||||
},
|
||||
"fixed": {
|
||||
"translation": [0, -0.25, 7],
|
||||
"scale": [0.8, 0.75, 1]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
{
|
||||
"name": "VoxelShapes",
|
||||
"origin": [8, 8, 0.5],
|
||||
"color": 0,
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,386 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"particle": "ariasessentials:block/engineersdecor/furniture/steel_table_side_texture",
|
||||
"s": "ariasessentials:block/engineersdecor/furniture/steel_table_side_texture",
|
||||
"t": "ariasessentials:block/engineersdecor/furniture/steel_table_top_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 14, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 2, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 2, 16, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 2, 2, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 2, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 2, 1], "texture": "#s"},
|
||||
"down": {"uv": [0, 15, 2, 16], "texture": "#s", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 14, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 2, 2, 16], "texture": "#s"},
|
||||
"east": {"uv": [15, 2, 16, 16], "texture": "#s"},
|
||||
"south": {"uv": [14, 2, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [0, 2, 1, 16], "texture": "#s"},
|
||||
"up": {"uv": [14, 0, 16, 1], "texture": "#s"},
|
||||
"down": {"uv": [14, 15, 16, 16], "texture": "#s", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 15],
|
||||
"to": [16, 14, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 2, 2, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 2, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [14, 2, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [15, 2, 16, 16], "texture": "#s"},
|
||||
"up": {"uv": [14, 15, 16, 16], "texture": "#s"},
|
||||
"down": {"uv": [14, 0, 16, 1], "texture": "#s", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 15],
|
||||
"to": [2, 14, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 2, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [0, 2, 1, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 2, 2, 16], "texture": "#s"},
|
||||
"west": {"uv": [15, 2, 16, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 15, 2, 16], "texture": "#s"},
|
||||
"down": {"uv": [0, 0, 2, 1], "texture": "#s", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 14],
|
||||
"to": [1, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [15, 2, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [1, 2, 2, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 2, 1, 16], "texture": "#s"},
|
||||
"west": {"uv": [14, 2, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 14, 1, 15], "texture": "#s"},
|
||||
"down": {"uv": [0, 1, 1, 2], "texture": "#s", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 1],
|
||||
"to": [1, 14, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [15, 2, 16, 16], "texture": "#s"},
|
||||
"east": {"uv": [14, 2, 15, 16], "texture": "#s"},
|
||||
"south": {"uv": [0, 2, 1, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 2, 2, 16], "texture": "#s"},
|
||||
"up": {"uv": [0, 1, 1, 2], "texture": "#s"},
|
||||
"down": {"uv": [0, 14, 1, 15], "texture": "#s", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 1],
|
||||
"to": [16, 14, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 2, 1, 16], "texture": "#s"},
|
||||
"east": {"uv": [14, 2, 15, 16], "texture": "#s"},
|
||||
"south": {"uv": [15, 2, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [1, 2, 2, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 1, 16, 2], "texture": "#s"},
|
||||
"down": {"uv": [15, 14, 16, 15], "texture": "#s", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 14],
|
||||
"to": [16, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 2, 1, 16], "texture": "#s"},
|
||||
"east": {"uv": [1, 2, 2, 16], "texture": "#s"},
|
||||
"south": {"uv": [15, 2, 16, 16], "texture": "#s"},
|
||||
"west": {"uv": [14, 2, 15, 16], "texture": "#s"},
|
||||
"up": {"uv": [15, 14, 16, 15], "texture": "#s"},
|
||||
"down": {"uv": [15, 1, 16, 2], "texture": "#s", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 14],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"east": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"west": {"uv": [14, 0, 16, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 14, 16, 16], "texture": "#t"},
|
||||
"down": {"uv": [0, 0, 16, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 0],
|
||||
"to": [16, 16, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"east": {"uv": [14, 0, 16, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 16, 2], "texture": "#s"},
|
||||
"west": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 0, 16, 2], "texture": "#t"},
|
||||
"down": {"uv": [0, 14, 16, 16], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 14, 2],
|
||||
"to": [16, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"east": {"uv": [2, 0, 14, 2], "texture": "#s"},
|
||||
"south": {"uv": [14, 0, 16, 2], "texture": "#s"},
|
||||
"west": {"uv": [2, 0, 14, 2], "texture": "#s"},
|
||||
"up": {"uv": [14, 2, 16, 14], "texture": "#t"},
|
||||
"down": {"uv": [14, 2, 16, 14], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 12.75],
|
||||
"to": [14, 16, 13.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [2.75, 0, 3.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [12.75, 0, 13.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 12.75, 14, 13.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 2.75, 14, 3.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 13.75],
|
||||
"to": [14, 16, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [2, 0, 2.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [13.75, 0, 14, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 13.75, 14, 14], "texture": "#t"},
|
||||
"down": {"uv": [2, 2, 14, 2.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 11.75],
|
||||
"to": [14, 16, 12.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [3.75, 0, 4.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [11.75, 0, 12.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 11.75, 14, 12.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 3.75, 14, 4.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 10.75],
|
||||
"to": [14, 16, 11.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [4.75, 0, 5.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [10.75, 0, 11.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 10.75, 14, 11.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 4.75, 14, 5.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 9.75],
|
||||
"to": [14, 16, 10.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [5.75, 0, 6.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [9.75, 0, 10.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 9.75, 14, 10.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 5.75, 14, 6.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 8.75],
|
||||
"to": [14, 16, 9.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [6.75, 0, 7.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [8.75, 0, 9.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 8.75, 14, 9.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 6.75, 14, 7.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 7.75],
|
||||
"to": [14, 16, 8.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [7.75, 0, 8.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [7.75, 0, 8.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 7.75, 14, 8.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 7.75, 14, 8.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 6.75],
|
||||
"to": [14, 16, 7.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [8.75, 0, 9.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [6.75, 0, 7.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 6.75, 14, 7.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 8.75, 14, 9.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 5.75],
|
||||
"to": [14, 16, 6.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [9.75, 0, 10.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [5.75, 0, 6.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 5.75, 14, 6.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 9.75, 14, 10.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 4.75],
|
||||
"to": [14, 16, 5.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [10.75, 0, 11.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [4.75, 0, 5.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 4.75, 14, 5.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 10.75, 14, 11.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 3.75],
|
||||
"to": [14, 16, 4.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [11.75, 0, 12.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [3.75, 0, 4.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 3.75, 14, 4.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 11.75, 14, 12.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 2.75],
|
||||
"to": [14, 16, 3.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [12.75, 0, 13.25, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [2.75, 0, 3.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 2.75, 14, 3.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 12.75, 14, 13.25], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 15.5, 2],
|
||||
"to": [14, 16, 2.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8.25]},
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"east": {"uv": [13.75, 0, 14, 0.5], "texture": "#s"},
|
||||
"south": {"uv": [2, 0, 14, 0.5], "texture": "#s"},
|
||||
"west": {"uv": [2, 0, 2.25, 0.5], "texture": "#s"},
|
||||
"up": {"uv": [2, 2, 14, 2.25], "texture": "#t"},
|
||||
"down": {"uv": [2, 13.75, 14, 14], "texture": "#t"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 2],
|
||||
"to": [2, 16, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 0, 16, 2], "texture": "#s"},
|
||||
"east": {"uv": [2, 0, 14, 2], "texture": "#s"},
|
||||
"south": {"uv": [0, 0, 2, 2], "texture": "#s"},
|
||||
"west": {"uv": [2, 0, 14, 2], "texture": "#s"},
|
||||
"up": {"uv": [0, 2, 2, 14], "texture": "#t"},
|
||||
"down": {"uv": [0, 2, 2, 14], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 13.5, 14],
|
||||
"to": [15, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 2, 2, 2.5], "texture": "#s"},
|
||||
"east": {"uv": [1, 2, 2, 2.5], "texture": "#s"},
|
||||
"south": {"uv": [14, 2, 15, 2.5], "texture": "#s"},
|
||||
"west": {"uv": [14, 2, 15, 2.5], "texture": "#s"},
|
||||
"up": {"uv": [14, 14, 15, 15], "texture": "#s"},
|
||||
"down": {"uv": [14, 1, 15, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 13.5, 14],
|
||||
"to": [2, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 2, 15, 2.5], "texture": "#s"},
|
||||
"east": {"uv": [1, 2, 2, 2.5], "texture": "#s"},
|
||||
"south": {"uv": [1, 2, 2, 2.5], "texture": "#s"},
|
||||
"west": {"uv": [14, 2, 15, 2.5], "texture": "#s"},
|
||||
"up": {"uv": [1, 14, 2, 15], "texture": "#s"},
|
||||
"down": {"uv": [1, 1, 2, 2], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 13.5, 1],
|
||||
"to": [15, 14, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 2, 2, 2.5], "texture": "#s"},
|
||||
"east": {"uv": [14, 2, 15, 2.5], "texture": "#s"},
|
||||
"south": {"uv": [14, 2, 15, 2.5], "texture": "#s"},
|
||||
"west": {"uv": [1, 2, 2, 2.5], "texture": "#s"},
|
||||
"up": {"uv": [14, 1, 15, 2], "texture": "#s"},
|
||||
"down": {"uv": [14, 14, 15, 15], "texture": "#s"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 13.5, 1],
|
||||
"to": [2, 14, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 2, 15, 2.5], "texture": "#s"},
|
||||
"east": {"uv": [14, 2, 15, 2.5], "texture": "#s"},
|
||||
"south": {"uv": [1, 2, 2, 2.5], "texture": "#s"},
|
||||
"west": {"uv": [1, 2, 2, 2.5], "texture": "#s"},
|
||||
"up": {"uv": [1, 1, 2, 2], "texture": "#s"},
|
||||
"down": {"uv": [1, 14, 2, 15], "texture": "#s"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"translation": [0, 1.75, 0],
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,345 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"render_type": "cutout",
|
||||
"textures": {
|
||||
"0": "ariasessentials:block/engineersdecor/material/steel_texture",
|
||||
"1": "ariasessentials:block/engineersdecor/furniture/steel_catwalk_top",
|
||||
"particle": "ariasessentials:block/engineersdecor/material/steel_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 0.75, 1],
|
||||
"to": [15, 0.75, 15],
|
||||
"faces": {
|
||||
"down": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0.25, 1],
|
||||
"to": [15, 0.25, 15],
|
||||
"faces": {
|
||||
"down": {"uv": [1, 1, 15, 15], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 1],
|
||||
"to": [1, 1, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 14, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 14, 2], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 14, 1], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 14, 1], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 1, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 2], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 1, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 16, 2], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 1, 2], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 15],
|
||||
"to": [16, 1, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 2], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 1, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 16, 2], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 1, 2], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 0, 1],
|
||||
"to": [16, 1, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 14, 2], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 1, 2], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 14, 2], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 14, 1], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 14, 1], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15.25, 1],
|
||||
"to": [15, 15.25, 15],
|
||||
"faces": {
|
||||
"up": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 15.75, 1],
|
||||
"to": [15, 15.75, 15],
|
||||
"faces": {
|
||||
"up": {"uv": [1, 1, 15, 15], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 15, 1],
|
||||
"to": [1, 16, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 14, 2], "rotation": 180, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 14, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 14, 1], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 14, 1], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 15, 15],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 15, 0],
|
||||
"to": [16, 16, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 1], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 16, 1], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 15, 1],
|
||||
"to": [16, 16, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 14, 2], "rotation": 180, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 14, 2], "rotation": 180, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 14, 1], "rotation": 90, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 14, 1], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 15.25],
|
||||
"to": [15, 15, 15.25],
|
||||
"faces": {
|
||||
"south": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 15.75],
|
||||
"to": [15, 15, 15.75],
|
||||
"faces": {
|
||||
"south": {"uv": [1, 1, 15, 15], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 1, 15],
|
||||
"to": [1, 15, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 12, 1], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 12, 1], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 1, 15],
|
||||
"to": [16, 15, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 12, 1], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 12, 1], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 1, 2], "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 0.75],
|
||||
"to": [15, 15, 0.75],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 1, 0.25],
|
||||
"to": [15, 15, 0.25],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 1, 15, 15], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 1, 0],
|
||||
"to": [16, 15, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 12, 1], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 12, 1], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 1, 0],
|
||||
"to": [1, 15, 1],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 12, 1], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 12, 1], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 1, 2], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 1, 2], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.25, 1, 1],
|
||||
"to": [15.25, 15, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 6.5]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.75, 1, 1],
|
||||
"to": [15.75, 15, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 6.5]},
|
||||
"faces": {
|
||||
"east": {"uv": [1, 1, 15, 15], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.75, 1, 1],
|
||||
"to": [0.75, 15, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 6.5]},
|
||||
"faces": {
|
||||
"west": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.25, 1, 1],
|
||||
"to": [0.25, 15, 15],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 6.5]},
|
||||
"faces": {
|
||||
"west": {"uv": [1, 1, 15, 15], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [50, 0, 46],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "Side",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [
|
||||
{
|
||||
"name": "Grating",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [0, 1]
|
||||
},
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Side",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [
|
||||
{
|
||||
"name": "Grating",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [6, 7]
|
||||
},
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Side",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [
|
||||
{
|
||||
"name": "Grating",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [12, 13]
|
||||
},
|
||||
14,
|
||||
15
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Side",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [
|
||||
{
|
||||
"name": "Grating",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [16, 17]
|
||||
},
|
||||
18,
|
||||
19
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Grating",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [20, 21]
|
||||
},
|
||||
{
|
||||
"name": "Grating",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [22, 23]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"0": "ariasessentials:block/logicgates/logic_gate",
|
||||
"1": "ariasessentials:block/logicgates/tflipflop",
|
||||
"3": "ariasessentials:block/logicgates/torch_off",
|
||||
"particle": "ariasessentials:block/logicgates/logic_gate"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0.25, 0.25, 0.25],
|
||||
"to": [15.75, 0.5, 15.75],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 15.5, 0.25], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 15.5, 0.25], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 15.5, 0.25], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 15.5, 0.25], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 15.5, 15.5], "rotation": 270, "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 0.25, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#0"},
|
||||
"down": {"uv": [16, 0, 0, 16], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.45, 0.5, 14],
|
||||
"to": [9.2, 3, 14.75],
|
||||
"faces": {
|
||||
"north": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"},
|
||||
"east": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"},
|
||||
"south": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"},
|
||||
"west": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.1, 3, 14],
|
||||
"to": [9.55, 3.75, 14.75],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"},
|
||||
"south": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.45, 3.475, 14],
|
||||
"to": [9.2, 3.475, 14.75],
|
||||
"faces": {
|
||||
"up": {"uv": [6, 3, 10, 6], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.45, 3, 13.65],
|
||||
"to": [9.2, 3.75, 15.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8.825, 3.375, 14.375]},
|
||||
"faces": {
|
||||
"east": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"},
|
||||
"west": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.45, 0.5, 4],
|
||||
"to": [9.2, 3, 4.75],
|
||||
"faces": {
|
||||
"north": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"},
|
||||
"east": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"},
|
||||
"south": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"},
|
||||
"west": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.1, 3, 4],
|
||||
"to": [9.55, 3.75, 4.75],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"},
|
||||
"south": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.45, 3.475, 4],
|
||||
"to": [9.2, 3.475, 4.75],
|
||||
"faces": {
|
||||
"up": {"uv": [6, 3, 10, 6], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.45, 3, 3.65],
|
||||
"to": [9.2, 3.75, 5.1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8.825, 3.375, 14.375]},
|
||||
"faces": {
|
||||
"east": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"},
|
||||
"west": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.45, 0.5, 0.8],
|
||||
"to": [9.2, 3, 1.55],
|
||||
"faces": {
|
||||
"north": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"},
|
||||
"east": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"},
|
||||
"south": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"},
|
||||
"west": {"uv": [6, 6, 9.75, 14.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.1, 3, 0.8],
|
||||
"to": [9.55, 3.75, 1.55],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"},
|
||||
"south": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.45, 3.475, 0.8],
|
||||
"to": [9.2, 3.475, 1.55],
|
||||
"faces": {
|
||||
"up": {"uv": [6, 3, 10, 6], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.45, 3, 0.45],
|
||||
"to": [9.2, 3.75, 1.9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8.825, 3.375, 14.375]},
|
||||
"faces": {
|
||||
"east": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"},
|
||||
"west": {"uv": [4, 0, 11.75, 5.5], "texture": "#3"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [0, 4.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [0, 4, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"translation": [0, 3.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [0, 4.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"ground": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [45, 45, 0],
|
||||
"translation": [0, -0.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"head": {
|
||||
"translation": [0, 14.25, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [-90, 0, 0],
|
||||
"translation": [0, 0, -3.75],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "base",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": [0, 1]
|
||||
},
|
||||
{
|
||||
"name": "input",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": [2, 3, 4, 5]
|
||||
},
|
||||
{
|
||||
"name": "state",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": [6, 7, 8, 9]
|
||||
},
|
||||
{
|
||||
"name": "state",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"nbt": "{}",
|
||||
"children": [10, 11, 12, 13]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "ariasessentials:item/eiab"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 568 B |
After Width: | Height: | Size: 569 B |
After Width: | Height: | Size: 635 B |
After Width: | Height: | Size: 621 B |
After Width: | Height: | Size: 576 B |
After Width: | Height: | Size: 566 B |
After Width: | Height: | Size: 515 B |
After Width: | Height: | Size: 785 B |
After Width: | Height: | Size: 771 B |
After Width: | Height: | Size: 782 B |
After Width: | Height: | Size: 790 B |
After Width: | Height: | Size: 802 B |
After Width: | Height: | Size: 796 B |
After Width: | Height: | Size: 787 B |
After Width: | Height: | Size: 793 B |
After Width: | Height: | Size: 641 B |
After Width: | Height: | Size: 652 B |