perromercenary00
Members-
Posts
849 -
Joined
-
Last visited
-
Days Won
5
Everything posted by perromercenary00
-
Good days i dont speak english soo i gonna try to explain the idea i need help whit this i cannot figure out by myself the target i wanna reach is to create a bullet hole entity and this entity can hold explosives inside if the entity hole has explosives it has to glow a red light well i alredy create that in a mod i was making for 1.12 but never release i fond the assets part of the code and some youtube videos from that age this old renderer dotn works anymore as minecraft code has change soo mutch old youtube video notice that it sets a hole entity in the world and some hole entityes has that glowing red circles inside based on the arrow tutorial i made a entity and a renderer whit the shape of a full cube and make it soo it matches the size and position of the on ground block this is 1.16.5 code X (first step done) know i need to render a small glowing red square on the back side of the cube the south face but OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)j, (float)k); just trow errors soo iwas looking into spidy and enderman renderers to understand how the eyes glow is a second renderer and get lost on that ############################################################################### i hope you could understand what im trying to say i gona try again i want to create a renderer using this tree holes texture but i want the red parts to glow in the dark only the red parts but just declaring the red parts as dedicated vertex face // el que se ve desde adelante x this.vertex(matrix4f, matrix3f, ivertexbuilder, 10, 10, -10, 0.00F, 0.00F, -1, 0, 0, p_225623_6_); this.vertex(matrix4f, matrix3f, ivertexbuilder, 10, 10, 10, 1.00F, 0.00F, -1, 0, 0, p_225623_6_); this.vertex(matrix4f, matrix3f, ivertexbuilder, 10, -10, 10, 1.00F, 1.00F, -1, 0, 0, p_225623_6_); this.vertex(matrix4f, matrix3f, ivertexbuilder, 10, -10, -10, 0.00F, 1.00F, -1, 0, 0, p_225623_6_); and conjure over it the moderm equivalent of OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)j, (float)k); GlStateManager.disableBlend(); GlStateManager.enableAlpha(); to make it glow Thanks for your time
-
i find the second @Mod.EventBusSubscriber(modid = baseMmod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE ) public class modevents { @SubscribeEvent public static void on_toss(ItemTossEvent event) { Entity entity = event.getEntity(); World warudo = entity.level; if (entity instanceof ItemEntity) { ItemEntity item_e = (ItemEntity)entity; ItemStack itemstack = item_e.getItem(); System.out.println("\n ItemTossEvent " + itemstack.getItem().getRegistryName() + "\n"); if (itemstack.getItem() == MItems.INGOT_IRON_RED_HOT.get()) { //item_e.kill(); //MItemEntity drop = new MItemEntity(warudo, (double)(pos.getX() + 0.5F) , (double)(pos.getY() + 1.0F) , (double)(pos.getZ() + 0.5F) , itemstack ); //warudo.addFreshEntity(drop); } } } but the first one no idea
-
good days and sorry for asking for complicated stuff i got this red hot iron ingot item that must be turned into a steel ingot item under certain conditions ☑ turn the item into steel when right click cauldron but only if there is water in it ☑ turn the item into steel when right click water block ☐ turn the item into steel when dropped on water how i made this first made custome MItemEntity extending vainilla ItemEntity but changing the code from the public void tick() {} method to ask if the entity is in water kill it and drop a normal ItemEntity whit the basemmod:ingot_steel item #### there comes the question how i declare mi custme MItemEntity soo forges pick it up and also where i get the especial render ItemEntity use to display the contained itemstak ? this dont works public class ModEntityTypes { public static DeferredRegister<EntityType<?>> ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.ENTITIES, basemmod.MOD_ID); public static final RegistryObject<EntityType<MItemEntity>> MITEMENTITY = ENTITY_TYPES.register("mitementity", () -> EntityType.Builder.create(MItemEntity::new, EntityClassification.MISC).size(1f, 1f) .build(new ResourceLocation(basemmod.MOD_ID, "mitementity").toString())); public static void register(IEventBus eventBus) { ENTITY_TYPES.register(eventBus); } } the second thing is whats the name from the event that trigers when user drops and item whit keyboard [Q] key ?? @SubscribeEvent public static void onItemDrop_orsomething(EntityLeaveWorldEvent event) { Entity entity = event.getEntity(); World warudo = event.getWorld(); if (entity instanceof ItemEntity) { ItemEntity item_e = (ItemEntity)entity; ItemStack itemStack = item_e.getItem(); if (itemStack.getItem() == MItems.INGOT_IRON_RED_HOT.get()) { item_e.kill(); ItemStack dropstack = new ItemStack( MItems.INGOT_STEEL.get(), 1); MItemEntity drop = new MItemEntity(warudo, (double)(pos.getX() + 0.5F) , (double)(pos.getY() + 1.0F) , (double)(pos.getZ() + 0.5F) , dropstack ); warudo.addFreshEntity(drop); } } } thanks for your time and help
-
[] custome recipe dont work + ore_dictionary/tags
perromercenary00 replied to perromercenary00's topic in Modder Support
thanks guys is working now /src/main/resources/data/basemmod/recipes/material/panel_mesh.json { "type": "minecraft:crafting_shaped", "pattern": [ "###", "###" ], "key": { "#": { "tag": "forge:ingots/steel" } }, "result": { "item": "basemmod:panel_mesh", "count": 16 } } /src/main/resources/data/forge/tags/items/ingots/steel.json { "replace": false, "values": [ "basemmod:ingot_steel" ] } -
time to remake items has come an have problems/things dont fully get whit recipes i been digiing other post in the forums and google but it well dont get it i copy paste from vainilla recipes and change names this furnace recipe works perfect to make red hot iron from ingot_iron and is located in the same folder /src/main/resources/data/basemmod/recipes/material/red_hot_iron.json /src/main/resources/data/basemmod/recipes/material/panel_mesh.json soo is not location or rights to open the file no problem here them there comes the panel_mesh recipe is a shaped recipe just copy paste the one from iron bars and change the names to match mi item and mi panel The ingot_steel works the panel_mesh works but the one dont works and i dont know why this one dont works { "type": "minecraft:crafting_shaped", "pattern": [ "###", "###" ], "key": { "#": { "item": "basemmod:ingot_steel", } }, "result": { "item": "basemmod:panel_mesh", "count": 16 } } ############################################################# well this goo first but the target is to make the recipe works whit ore dictionary sooo the panel_mesh can be made whit ingot_steel from another mods or mi ingot steel could be used in the recipes from other mods i been diging google for answers im using this one https://github.com/MinecraftForge/Documentation/blob/1.16.x/docs/utilities/recipes.md in this example they are calling diamond from any mod using this "tag": "forge:gems/diamond" know if i want to register mi ingot_steel i would have to do something like /src/main/resources/data/basemmod/tags/items/ingots/steel.json { "replace": false, "values": [ "basemmod:ingot_steel" ] } and callet it like "tag": "basemmod:ingots/steel" i try it like this first and it dont works i think i also wrong declare mi ingot ###### i need an example code from a shapped recipe using ore_ditionary but whit moderm tag system thanks for your time
-
good days im redoing the big 9 blocks door from mi old mod the thing is there is a main door block created from the class public class base_door extends DoorBlock { surrounded by 8 panel blocks created whit public class base_sub_puerta extends Block { if one of the sub panel blocks get clicked it has to search all the surrounding blocks looking for the main block to activate the function in base_door public static void toogle_door() function the thing is i dont remeber how i made it in 1.8 and most of the old code its loss just have some assets and youtube videos it was something like if( BlockState.getBlock() instanceof base_door.class ) How i check if block or item is instance of custome class ?
-
make two blocks then on getStateForPlacement(BlockPlaceContext pContext){} make the code to check if the companion block exist if not create it then on public void playerDestroy(World warudo, PlayerEntity pe, BlockPos blockpos, BlockState blkstate, @Nullable TileEntity p_180657_5_, ItemStack itemstack) {} make the code to check if companion block exist and if its destroy it too
-
not clear not clear when you use the custome item this custome item gets consumed ? does your item extends bowItem class or is just a regular item the item in the other is just not show while using or its get consumed and disapear?
-
good days im redoing mi horizontal door using as base DoorBlock class and im trying to make the door to close both sides at same time https://i.postimg.cc/FKtZS9dr/door-Update.gif[/img] and i have troubles whit it i cannot manage to make the complementary side to close open whit the door i put some system.outs to see what of the code was actually runing and when right click the door the "public void setOpen()" gets trigered it founds the door and the companion door then change the value of block attribute open and updateShape() method gets trigered two times setting back the state of the companion door soo it close back the companion door [12:05:33] [Server thread/INFO] [STDOUT/]: [baseMmod.block.base_door:setOpen:149]: setOpen(true)basemmod:puerta_mesh [12:05:33] [Server thread/INFO] [STDOUT/]: [baseMmod.block.base_door:updateShape:238]: updateShape (left) basemmod:puerta_mesh [12:05:33] [Server thread/INFO] [STDOUT/]: [baseMmod.block.base_door:updateShape:238]: updateShape (right) basemmod:puerta_mesh [12:05:34] [Server thread/INFO] [STDOUT/]: [baseMmod.block.base_door:setOpen:149]: setOpen(false)basemmod:puerta_mesh [12:05:34] [Server thread/INFO] [STDOUT/]: [baseMmod.block.base_door:updateShape:238]: updateShape (right) basemmod:puerta_mesh [12:05:34] [Server thread/INFO] [STDOUT/]: [baseMmod.block.base_door:updateShape:238]: updateShape (left) basemmod:puerta_mesh i see the minecraft code it writes the block states back to world using level.setBlock(companion_pos, companion_blkstate, 10); i dont know what the int in the 3 attribute means but seems to do nothing here in 1.12 zero breaks the block and drops one does something i dont remenber and two breaks the block witout droping nuthing ¿ soo is there a equivalent of level.setBlock(BlockPos, BlockState, "just apply but Dont trigger Block internal methods") ? //################################################################################################# the second thing is to make the door compatible whit villagers in 1.12 just extending DoorBlock and overrriding setOpen() was enought for villagers to acknowledge the door and interact opening close it in but here they seem to see the door walk to it but then they are incapable of opening the door i dotn even know what to ask for is some subclass in another place or a thing you have to suscribe to some bus soo the door soo villagers can use this custome made doors ? Thanks for your attention
-
// ########## ########## ########## ########## public static boolean is_a_solid_block(World warudo, BlockPos pos) { Material pmat = warudo.getBlockState(pos).getMaterial(); if ((pmat == Material.AIR) || (pmat == Material.PLANT) || (pmat == Material.LEAVES) || (pmat == Material.REPLACEABLE_PLANT)) { return false; } if ((pmat == Material.SNOW) || (pmat == Material.WOOD) || (pmat == Material.NETHER_WOOD)) { return false; } return true; }
-
this is getting harder than it must be i end doing the side of the world thing to make the get min max block from chunk thing to iterate trough all the blocks xz from the chunk to get whats the highest one whit bpos = warudo.getHeightmapPos(Heightmap.Type.WORLD_SURFACE , new BlockPos(x, bmin.getY(), z)); and no mater what i use as Heightmap it includes wood blocks soo it marks as higher block the top of trees and also wood pre existent structure's as the higher block i remeber having the same problem in 1.8 but dont remember how i solved an as i loss that code i just have some pieces from things i write in the forum soo i dont have that solution // ########## ########## ########## ########## // en que cuadrante del plano cartesiano se encuentra el blocke public static String get_cuadrante(Vector3d vector) { return get_cuadrante(vector.x, vector.y, vector.z); } public static String get_cuadrante(BlockPos pos) { return get_cuadrante(pos.getX(), pos.getY(), pos.getZ()); } public static String get_cuadrante(double x, double y, double z) { // nortwest - 0 - // norteast + 0 - // southwest - 0 + // southeast + 0 + if (x < 0.0D) { if (z < 0.0D) { return "nortwest"; } else { return "southwest"; } } else { if (z < 0.0D) { return "norteast"; } else { return "southeast"; } } } // ########## ########## ########## ########## // ########## ########## ########## ########## public static Set<BlockPos> chunk_minmax(World warudo, BlockPos pos) { Set<BlockPos> blocklist = new HashSet<BlockPos>(); // BlockPos pos = new BlockPos(le.getX(), le.getY(), le.getZ()); int chunkminX = (int) (pos.getX() / 16) * 16; int chunkminZ = (int) (pos.getZ() / 16) * 16; int chunkmaxX = chunkminX + 15; int chunkmaxZ = chunkminZ + 15; switch (util.get_cuadrante(pos)) { default: chunkmaxX = chunkminX + 15; chunkmaxZ = chunkminZ + 15; break; case "southwest": chunkminX -= 1; chunkmaxX = chunkminX - 15; break; case "nortwest": chunkminX -= 1; chunkmaxX = chunkminX - 15; chunkminZ -= 1; chunkmaxZ = chunkminZ - 15; break; case "norteast": chunkminZ -= 1; chunkmaxZ = chunkminZ - 15; break; } System.out.println("chunkminX = " + chunkminX + " chunkminZ = " + chunkminZ + " " + util.get_cuadrante(pos)); BlockState dirt = Blocks.DIRT.defaultBlockState(); // southeast BlockPos chunmin = new BlockPos(chunkminX, pos.getY(), chunkminZ); BlockPos chunmax = new BlockPos(chunkmaxX, pos.getY(), chunkmaxZ); blocklist.add(chunmin); blocklist.add(chunmax); return blocklist; } // ########## ########## ########## ########## public static BlockPos highest_block_inside_chunck(World warudo, BlockPos pos) { // System.out.println(" highest_block_inside_chunck "); // chunk_minmax(World warudo, BlockPos pos) Set<BlockPos> blocklist = new HashSet<BlockPos>(); ArrayList<BlockPos> minmax = new ArrayList<BlockPos>(); // Creating A New ArrayList... minmax.addAll(chunk_minmax(warudo, pos)); BlockPos bmin = minmax.get(0); BlockPos bmax = minmax.get(1); BlockPos bpos; // System.out.println(" bmin = " + bmin ); // System.out.println(" bmax = " + bmax ); int xmin = bmin.getX(); int xmax = bmax.getX(); int tmp = 0; if (xmin > xmax) { tmp = xmin; xmin = xmax; xmax = tmp; } int zmin = bmin.getZ(); int zmaz = bmax.getZ(); if (zmin > zmaz) { tmp = zmin; zmin = zmaz; zmaz = tmp; } BlockPos zpos = new BlockPos(0, -100, 0); for (int x = xmin; x < xmax; x++) { for (int z = zmin; z < zmaz; z++) { //MOTION_BLOCKING_NO_LEAVES bpos = warudo.getHeightmapPos(Heightmap.Type.WORLD_SURFACE , new BlockPos(x, bmin.getY(), z)); if (bpos.getY() > zpos.getY()) { System.out.println("x =" + x + " y =" + bpos.getY() + " z =" + z); zpos = bpos; } } } return zpos; } // ########## ########## ########## ########## im using that from a custome item right click // ########## ########## ########## ########## public void releaseUsing(ItemStack itemstack, World warudo, LivingEntity le, int p_77615_4_) { String mensaje = ""; if (!warudo.isClientSide) { BlockPos pos = new BlockPos(le.getX(), le.getY(), le.getZ()); BlockState bglow = Blocks.GLOWSTONE.defaultBlockState(); ArrayList<BlockPos> minmax = new ArrayList<BlockPos>(); // Creating A New ArrayList... minmax.addAll(util.chunk_minmax(warudo, pos)); warudo.setBlock(minmax.get(0), bglow, 2); warudo.setBlock(minmax.get(1), bglow, 2); System.out.println(minmax.get(0)); System.out.println(minmax.get(1)); BlockPos hpos = util.highest_block_inside_chunck(warudo, pos); System.out.println(hpos); warudo.setBlock(hpos, bglow, 2); //warudo.setBlock(hpos, bglow, 2); } }
-
WELL it is but BlockPos top = warudo.getHeightmapPos(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, startingpos); gives back the pos from the highes solid block on the starting pos but i need the highest block inside the current chunck the other way around would be to make some code to get the side of the world you are currently in coze that [-0] minuz zero block fucks ups the numbers then calculate where the chunk min xz and max XZ to iterate all over those blocks getting the max z to see what is the highest thanks for your attention
-
[1.16.5] grass slab color based on GrassBlock
perromercenary00 replied to perromercenary00's topic in Modder Support
sorry being so patoso but the w i dont get it i find the BlockColors class but it is what it is i need some more especific guidance -
Good days i need a grass slab a dirt slab and a stone slab to level the terrain after setting a village i basically copy the the slab class code and made the blockstate taking things from the grass block and this is the result grass top is a gray png and something else apply colors based on and i dont have idea where it is the grassblock blockstate only has snow variant on it soo it has to be whit the render type RenderType cutoutMipped = RenderType.cutoutMipped(); RenderType cutout = RenderType.cutout(); RenderType translucent = RenderType.translucent(); RenderTypeLookup.setRenderLayer( Mblocks.GLASS_BLOCK.get(), cutoutMipped); and google only gets me this int grasscolor = BiomeColors.GRASS_COLOR_RESOLVER.getColor(null, friction, explosionResistance); and it dont lloooks likei could use that how i doo this slab to change grass color based on the biome or the grassblock
-
good nights in this specific moment i need to know the exact face of the block the player is looking at when right clock on the costume block its for for something im doing whit a custom block right inside this specific method // ########## ########## ########## ########## // Onright click @Override public ActionResultType use(BlockState blockstate, World warudo, BlockPos blockpos, PlayerEntity pe, Hand mano, BlockRayTraceResult blkrtraceresult) { System.out.println("the player has righ click the block"); int level = blockstate.getValue(LEVEL); int deep = blockstate.getValue(DEEP); if(!warudo.isClientSide) { if(pe.isDiscrete()) { } if(pe.isCrouching()) { } level ++; level = ( level > 15 )? 0 : level; deep --; deep = ( deep < 0 )? 15 : deep; blockstate = blockstate.setValue(LEVEL, Integer.valueOf(level)); blockstate = blockstate.setValue(DEEP, Integer.valueOf(deep)); warudo.setBlock(blockpos, blockstate, 3); //2? String mensaje = String.format( "Level = %1$s, Deep = %2$s" , level , deep ); Vector3d target = blkrtraceresult.getLocation(); //how do i now the side of the block the player has clinked float factor = ( 1.0F / 3.0F ); int hx = (int)(((target.x) %1) / factor); int hy = (int)(((target.y) %1) / factor); int hz = (int)(((target.z) %1) / factor); mensaje += " => " + hx + ", " + hy + ", " + hz; System.out.println( mensaje ); showthis(mensaje, pe); } return ActionResultType.sidedSuccess(warudo.isClientSide); } thank for your attention
-
nod nod nod long time ago i made this pieze of code to calculate a point in the space directly right in the player entity line of siege at an arbitrary float distance sooo later i can use that second vector3d point to raytrace whatever the player is looking at, the old one i have dont works anymore and theres many changes in the entities class scavenging on the arrow entity class i found an Vector3d vector3d = this.getDeltaMovement(); but i need something based on the direction the entity is looking at a set distance is there some already made tool in minecraft code to do that ? old code i need to update // #########################################################################3 public void calcularVectores(Entity player, int distancia, float precision) { // float distancia = 5.0F; this.vectorInicio = new Vec3d( player.posX, (player.posY + player.getEyeHeight()), player.posZ ); // rotacion Vertical en grados this.gpitch = util.fixGrad(player.getPitchYaw().x); // pitch, nose up or down about an axis // rotacion Horizontal en grados this.gyaw = util.fixGrad( player.getPitchYaw().y); //yaw, nose left or right about an axis //100% = 0.0F grados de error //0% = 45.0F grados de error en cualquier direccion if( precision < 99.9F) { float p = (((100F - precision) / 100F) * 45F); this.gpitch += (p * ((50F - util.rollsAd100dice()) / 100)); this.gyaw += (p * ((50F - util.rollsAd100dice()) / 100)); } //util.gradosAradianes(float x) //util.radianesAgrados(float x) // rotacion Horizontal en radianes this.ryaw = util.gradosAradianes(this.gyaw); // rotacion Vertical en radianes this.rpitch = util.gradosAradianes(this.gpitch ); //correcccion de -90 grados double tmpryaw = this.ryaw - 1.5707964D; this.vectorObjetivo = new Vec3d( this.vectorInicio.x - ((Math.cos(tmpryaw)) * (Math.cos(this.rpitch) * distancia)) , this.vectorInicio.y - (Math.sin(this.rpitch) * distancia), this.vectorInicio.z - ((Math.sin(tmpryaw)) * (Math.cos(this.rpitch) * distancia)) ); }
-
i kinda make it its only requires to make the parent_model and the block state for the base block plus 2 more parent_blocks for the level counter and deep counter and only 32 json blocks to cover for all the combinations of numbers and its too much is there some short way to do this ?? or it just die like this { "multipart" : [ { "when" : {"facing" : "south"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/tool_circular_replacer","y" : 180} }, { "when" : {"facing" : "north"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/tool_circular_replacer"} }, { "when" : {"facing" : "east"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/tool_circular_replacer","y" : 90} }, { "when" : {"facing" : "west"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/tool_circular_replacer","y" : 270} }, { "when" : {"facing" : "down"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/tool_circular_replacer","x" : 90} }, { "when" : {"facing" : "up"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/tool_circular_replacer","x" : 270} }, { "when" : {"facing" : "south", "level" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n0","y" : 180 } }, { "when" : {"facing" : "north", "level" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n0"} }, { "when" : {"facing" : "east", "level" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n0","y" : 90} }, { "when" : {"facing" : "west", "level" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n0","y" : 270} }, { "when" : {"facing" : "down", "level" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n0","x" : 90} }, { "when" : {"facing" : "up", "level" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n0","x" : 270} }, { "when" : {"facing" : "south", "deep" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n0","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n0"} }, { "when" : {"facing" : "east", "deep" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n0","y" : 90} }, { "when" : {"facing" : "west", "deep" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n0","y" : 270} }, { "when" : {"facing" : "down", "deep" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n0","x" : 90} }, { "when" : {"facing" : "up", "deep" : "0"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n0","x" : 270} }, { "when" : {"facing" : "south", "level" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n1","y" : 180 } }, { "when" : {"facing" : "north", "level" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n1"} }, { "when" : {"facing" : "east", "level" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n1","y" : 90} }, { "when" : {"facing" : "west", "level" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n1","y" : 270} }, { "when" : {"facing" : "down", "level" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n1","x" : 90} }, { "when" : {"facing" : "up", "level" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n1","x" : 270} }, { "when" : {"facing" : "south", "deep" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n1","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n1"} }, { "when" : {"facing" : "east", "deep" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n1","y" : 90} }, { "when" : {"facing" : "west", "deep" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n1","y" : 270} }, { "when" : {"facing" : "down", "deep" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n1","x" : 90} }, { "when" : {"facing" : "up", "deep" : "1"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n1","x" : 270} }, { "when" : {"facing" : "south", "level" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n2","y" : 180 } }, { "when" : {"facing" : "north", "level" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n2"} }, { "when" : {"facing" : "east", "level" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n2","y" : 90} }, { "when" : {"facing" : "west", "level" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n2","y" : 270} }, { "when" : {"facing" : "down", "level" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n2","x" : 90} }, { "when" : {"facing" : "up", "level" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n2","x" : 270} }, { "when" : {"facing" : "south", "deep" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n2","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n2"} }, { "when" : {"facing" : "east", "deep" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n2","y" : 90} }, { "when" : {"facing" : "west", "deep" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n2","y" : 270} }, { "when" : {"facing" : "down", "deep" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n2","x" : 90} }, { "when" : {"facing" : "up", "deep" : "2"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n2","x" : 270} }, { "when" : {"facing" : "south", "level" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n3","y" : 180 } }, { "when" : {"facing" : "north", "level" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n3"} }, { "when" : {"facing" : "east", "level" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n3","y" : 90} }, { "when" : {"facing" : "west", "level" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n3","y" : 270} }, { "when" : {"facing" : "down", "level" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n3","x" : 90} }, { "when" : {"facing" : "up", "level" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n3","x" : 270} }, { "when" : {"facing" : "south", "deep" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n3","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n3"} }, { "when" : {"facing" : "east", "deep" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n3","y" : 90} }, { "when" : {"facing" : "west", "deep" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n3","y" : 270} }, { "when" : {"facing" : "down", "deep" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n3","x" : 90} }, { "when" : {"facing" : "up", "deep" : "3"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n3","x" : 270} }, { "when" : {"facing" : "south", "level" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n4","y" : 180 } }, { "when" : {"facing" : "north", "level" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n4"} }, { "when" : {"facing" : "east", "level" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n4","y" : 90} }, { "when" : {"facing" : "west", "level" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n4","y" : 270} }, { "when" : {"facing" : "down", "level" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n4","x" : 90} }, { "when" : {"facing" : "up", "level" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n4","x" : 270} }, { "when" : {"facing" : "south", "deep" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n4","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n4"} }, { "when" : {"facing" : "east", "deep" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n4","y" : 90} }, { "when" : {"facing" : "west", "deep" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n4","y" : 270} }, { "when" : {"facing" : "down", "deep" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n4","x" : 90} }, { "when" : {"facing" : "up", "deep" : "4"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n4","x" : 270} }, { "when" : {"facing" : "south", "level" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n5","y" : 180 } }, { "when" : {"facing" : "north", "level" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n5"} }, { "when" : {"facing" : "east", "level" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n5","y" : 90} }, { "when" : {"facing" : "west", "level" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n5","y" : 270} }, { "when" : {"facing" : "down", "level" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n5","x" : 90} }, { "when" : {"facing" : "up", "level" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n5","x" : 270} }, { "when" : {"facing" : "south", "deep" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n5","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n5"} }, { "when" : {"facing" : "east", "deep" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n5","y" : 90} }, { "when" : {"facing" : "west", "deep" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n5","y" : 270} }, { "when" : {"facing" : "down", "deep" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n5","x" : 90} }, { "when" : {"facing" : "up", "deep" : "5"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n5","x" : 270} }, { "when" : {"facing" : "south", "level" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n6","y" : 180 } }, { "when" : {"facing" : "north", "level" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n6"} }, { "when" : {"facing" : "east", "level" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n6","y" : 90} }, { "when" : {"facing" : "west", "level" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n6","y" : 270} }, { "when" : {"facing" : "down", "level" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n6","x" : 90} }, { "when" : {"facing" : "up", "level" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n6","x" : 270} }, { "when" : {"facing" : "south", "deep" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n6","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n6"} }, { "when" : {"facing" : "east", "deep" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n6","y" : 90} }, { "when" : {"facing" : "west", "deep" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n6","y" : 270} }, { "when" : {"facing" : "down", "deep" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n6","x" : 90} }, { "when" : {"facing" : "up", "deep" : "6"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n6","x" : 270} }, { "when" : {"facing" : "south", "level" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n7","y" : 180 } }, { "when" : {"facing" : "north", "level" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n7"} }, { "when" : {"facing" : "east", "level" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n7","y" : 90} }, { "when" : {"facing" : "west", "level" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n7","y" : 270} }, { "when" : {"facing" : "down", "level" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n7","x" : 90} }, { "when" : {"facing" : "up", "level" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n7","x" : 270} }, { "when" : {"facing" : "south", "deep" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n7","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n7"} }, { "when" : {"facing" : "east", "deep" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n7","y" : 90} }, { "when" : {"facing" : "west", "deep" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n7","y" : 270} }, { "when" : {"facing" : "down", "deep" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n7","x" : 90} }, { "when" : {"facing" : "up", "deep" : "7"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n7","x" : 270} }, { "when" : {"facing" : "south", "level" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n8","y" : 180 } }, { "when" : {"facing" : "north", "level" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n8"} }, { "when" : {"facing" : "east", "level" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n8","y" : 90} }, { "when" : {"facing" : "west", "level" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n8","y" : 270} }, { "when" : {"facing" : "down", "level" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n8","x" : 90} }, { "when" : {"facing" : "up", "level" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n8","x" : 270} }, { "when" : {"facing" : "south", "deep" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n8","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n8"} }, { "when" : {"facing" : "east", "deep" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n8","y" : 90} }, { "when" : {"facing" : "west", "deep" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n8","y" : 270} }, { "when" : {"facing" : "down", "deep" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n8","x" : 90} }, { "when" : {"facing" : "up", "deep" : "8"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n8","x" : 270} }, { "when" : {"facing" : "south", "level" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n9","y" : 180 } }, { "when" : {"facing" : "north", "level" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n9"} }, { "when" : {"facing" : "east", "level" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n9","y" : 90} }, { "when" : {"facing" : "west", "level" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n9","y" : 270} }, { "when" : {"facing" : "down", "level" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n9","x" : 90} }, { "when" : {"facing" : "up", "level" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n9","x" : 270} }, { "when" : {"facing" : "south", "deep" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n9","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n9"} }, { "when" : {"facing" : "east", "deep" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n9","y" : 90} }, { "when" : {"facing" : "west", "deep" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n9","y" : 270} }, { "when" : {"facing" : "down", "deep" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n9","x" : 90} }, { "when" : {"facing" : "up", "deep" : "9"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n9","x" : 270} }, { "when" : {"facing" : "south", "level" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n10","y" : 180 } }, { "when" : {"facing" : "north", "level" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n10"} }, { "when" : {"facing" : "east", "level" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n10","y" : 90} }, { "when" : {"facing" : "west", "level" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n10","y" : 270} }, { "when" : {"facing" : "down", "level" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n10","x" : 90} }, { "when" : {"facing" : "up", "level" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n10","x" : 270} }, { "when" : {"facing" : "south", "deep" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n10","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n10"} }, { "when" : {"facing" : "east", "deep" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n10","y" : 90} }, { "when" : {"facing" : "west", "deep" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n10","y" : 270} }, { "when" : {"facing" : "down", "deep" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n10","x" : 90} }, { "when" : {"facing" : "up", "deep" : "10"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n10","x" : 270} }, { "when" : {"facing" : "south", "level" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n11","y" : 180 } }, { "when" : {"facing" : "north", "level" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n11"} }, { "when" : {"facing" : "east", "level" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n11","y" : 90} }, { "when" : {"facing" : "west", "level" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n11","y" : 270} }, { "when" : {"facing" : "down", "level" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n11","x" : 90} }, { "when" : {"facing" : "up", "level" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n11","x" : 270} }, { "when" : {"facing" : "south", "deep" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n11","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n11"} }, { "when" : {"facing" : "east", "deep" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n11","y" : 90} }, { "when" : {"facing" : "west", "deep" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n11","y" : 270} }, { "when" : {"facing" : "down", "deep" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n11","x" : 90} }, { "when" : {"facing" : "up", "deep" : "11"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n11","x" : 270} }, { "when" : {"facing" : "south", "level" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n12","y" : 180 } }, { "when" : {"facing" : "north", "level" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n12"} }, { "when" : {"facing" : "east", "level" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n12","y" : 90} }, { "when" : {"facing" : "west", "level" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n12","y" : 270} }, { "when" : {"facing" : "down", "level" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n12","x" : 90} }, { "when" : {"facing" : "up", "level" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n12","x" : 270} }, { "when" : {"facing" : "south", "deep" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n12","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n12"} }, { "when" : {"facing" : "east", "deep" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n12","y" : 90} }, { "when" : {"facing" : "west", "deep" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n12","y" : 270} }, { "when" : {"facing" : "down", "deep" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n12","x" : 90} }, { "when" : {"facing" : "up", "deep" : "12"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n12","x" : 270} }, { "when" : {"facing" : "south", "level" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n13","y" : 180 } }, { "when" : {"facing" : "north", "level" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n13"} }, { "when" : {"facing" : "east", "level" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n13","y" : 90} }, { "when" : {"facing" : "west", "level" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n13","y" : 270} }, { "when" : {"facing" : "down", "level" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n13","x" : 90} }, { "when" : {"facing" : "up", "level" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n13","x" : 270} }, { "when" : {"facing" : "south", "deep" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n13","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n13"} }, { "when" : {"facing" : "east", "deep" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n13","y" : 90} }, { "when" : {"facing" : "west", "deep" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n13","y" : 270} }, { "when" : {"facing" : "down", "deep" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n13","x" : 90} }, { "when" : {"facing" : "up", "deep" : "13"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n13","x" : 270} }, { "when" : {"facing" : "south", "level" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n14","y" : 180 } }, { "when" : {"facing" : "north", "level" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n14"} }, { "when" : {"facing" : "east", "level" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n14","y" : 90} }, { "when" : {"facing" : "west", "level" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n14","y" : 270} }, { "when" : {"facing" : "down", "level" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n14","x" : 90} }, { "when" : {"facing" : "up", "level" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n14","x" : 270} }, { "when" : {"facing" : "south", "deep" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n14","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n14"} }, { "when" : {"facing" : "east", "deep" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n14","y" : 90} }, { "when" : {"facing" : "west", "deep" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n14","y" : 270} }, { "when" : {"facing" : "down", "deep" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n14","x" : 90} }, { "when" : {"facing" : "up", "deep" : "14"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n14","x" : 270} }, { "when" : {"facing" : "south", "level" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n15","y" : 180 } }, { "when" : {"facing" : "north", "level" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n15"} }, { "when" : {"facing" : "east", "level" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n15","y" : 90} }, { "when" : {"facing" : "west", "level" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n15","y" : 270} }, { "when" : {"facing" : "down", "level" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n15","x" : 90} }, { "when" : {"facing" : "up", "level" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/radious_n15","x" : 270} }, { "when" : {"facing" : "south", "deep" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n15","y" : 180 } }, { "when" : {"facing" : "north", "deep" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n15"} }, { "when" : {"facing" : "east", "deep" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n15","y" : 90} }, { "when" : {"facing" : "west", "deep" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n15","y" : 270} }, { "when" : {"facing" : "down", "deep" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n15","x" : 90} }, { "when" : {"facing" : "up", "deep" : "15"}, "apply" : {"model" : "basemmod:block/tool_circular_replacer/deepness_n15","x" : 270} } ] }
-
hay im updating blocks from and old mod and i gave this block a creative tool that changes blocks in a circular pattern im changing it soo i want it to fisically show on the top side the values from deep and radios who cames from block properties public static final IntegerProperty LEVEL = IntegerProperty.create("level", 0, 15); public static final IntegerProperty DEEP = IntegerProperty.create("deep", 0, 15); something like this but prettier know like it is i have to make block state whit around 1536 variants "variants": { "facing=east,LEVEL=3,DEEP=7": { pointing to around 256 tool_circular_replace.json variants of the original slab to cover all the combination of LEVEL and DEEP values soo i need to make json block model whit something like { "parent": "basemmod:block/parent_slabw2numbers", "textures": { "particle": "minecraft:block/brick", "interior": "minecraft:block/brick", "exterior": "minecraft:block/brick", "borde": "minecraft:block/brick", "numberred": { "variants": { "LEVEL=0": "basemmod:block/rn0", "LEVEL=1": "basemmod:block/rn1", "LEVEL=2": "basemmod:block/rn2", "LEVEL=N": "basemmod:block/rnN" }, "numbergreen": { "variants": { "DEEP=0": "basemmod:block/gn0", "DEEP=1": "basemmod:block/gn1", "DEEP=2": "basemmod:block/gn2", "DEEP=N": "basemmod:block/gnN" }, } } soo ¿ its posible to have some kind of switch statement to control what texture is send to the block model based on the block properties ?
-
Good days yesterday i just wanna update the manhole block form and old mod and i wanna make it the more circular i can sooo i spend around seven hours between investigating the formulas for the hexadecagon to set around 11 rectangles into the correct place and angle to make the block box shape json file an setting the uv textures to make it match the correct look i want then i realize this disc i made its too big its a full 1M but i need it to 90cm to let 5cm block border that means manually change all the values from rectangle width and length also i made it 30cm thick but thats too mutch i need to reduce it to 15cm also that means fix all of the 24 side textures to be 15cm high soo isay to miselft frickit ¿ is there outside some ide to make this voxel models and apply textures returning a json file or at least part of it ? i was trying magicavoxel but returns its own .vox file and are not text one could just copy a fix to a json file
-
[1.18.1] A block with two texture layers
perromercenary00 replied to Mattah12's topic in Modder Support
you are using the minecraft:block/block as parent model you need to make your own cuboid model block whit the layers you need in this case sounds like a block inside another block { "parent": "block/block", "elements": [ { "from": [ 0, 0, 0 ], "to": [ 16, 16, 16 ], "faces": { "down": { "texture": "#down", "cullface": "down" }, "up": { "texture": "#up", "cullface": "up" }, "north": { "texture": "#north", "cullface": "north" }, "south": { "texture": "#south", "cullface": "south" }, "west": { "texture": "#west", "cullface": "west" }, "east": { "texture": "#east", "cullface": "east" } } }, { "from": [ 1, 1, 1 ], "to": [ 15, 15, 15 ], "faces": { "down": { "texture": "#indown", "cullface": "down" }, "up": { "texture": "#inup", "cullface": "up" }, "north": { "texture": "#innorth", "cullface": "north" }, "south": { "texture": "#insouth", "cullface": "south" }, "west": { "texture": "#inwest", "cullface": "west" }, "east": { "texture": "#ineast", "cullface": "east" } } } ] } -
Sorry for spawning so much question so fast but im trying to update mi blocks from 1.12 and many things has changed the left transparent block is the default this block when breaken must be replaced by the right opaque one surprize old code from 1.12 dont works here now there's context and new stuff about * first question the function is giving meg the blockstate from the breaking block Mblocks.GLASS_MESH_PANE "BlockState blkstate" how do i extract the value of FACING from it * second, mi custom block from mi custom blockClass Mblocks.GLASS_MESH_PANE_BROKE how i do call that block inside the code and apply to it the FACING from the breaking block * third how i "world.setBlock()" mi block whit the right facing blockstate value ? // ########## ########## ########## ########## public void playerDestroy(World warudo, PlayerEntity pe, BlockPos blockpos, BlockState blkstate, @Nullable TileEntity p_180657_5_, ItemStack itemstack) { pe.awardStat(Stats.BLOCK_MINED.get(this)); pe.causeFoodExhaustion(0.005F); if(!warudo.isClientSide) { Block replace_block = Mblocks.GLASS_MESH_PANE_BROKE.get(); //? Facing fdirection = //¿? BlockState repstate = replace_block.BLOCK_STATE_REGISTRY warudo.setBlock(blockpos, blkstate, 0);//?? } /* public void setPlacedBy(World p_180633_1_, BlockPos p_180633_2_, BlockState p_180633_3_, LivingEntity p_180633_4_, ItemStack p_180633_5_) { p_180633_1_.setBlock(p_180633_2_.above(), p_180633_3_.setValue(HALF, DoubleBlockHalf.UPPER), 3); } public boolean emptyBucket(@Nullable PlayerEntity p_180616_1_, World p_180616_2_, BlockPos p_180616_3_, @Nullable BlockRayTraceResult p_180616_4_) { if (!p_180616_2_.setBlock(p_180616_3_, this.content.defaultFluidState().createLegacyBlock(), 11) && !blockstate.getFluidState().isSource()) { */ System.out.println("playerDestroy"); dropResources(blkstate, warudo, blockpos, p_180657_5_, pe, itemstack); } thank for your attention