Jump to content

[SOLVED] [1.16.4] Change Block Hitbox/Outline


Lellian

Recommended Posts

Hello modders,

 

I am new to modding mc, and I have a problem with custom block hitboxes.

 

I have made a block (The little stone thing, currently called ExampleBlock to test this) with a custom model and it works just fine, but the model is quite a bit smaller than a full block, yet it still has the hitbox of a full block:

 

2021-01-15_23_35_44.png.7e52c4d172a7e612edbec387da587821.png

 

Now, I did a lot of googling and found that, to get a custom hitbox, you need to override getShape().

I did that. Unfortunately, it didn't change anything. I must still be missing something, but I don't know what it is. 

All I want is for the hitbox/outline to be smaller, it can remain a simple box.

 

The block file:

 

package lellian.mc.elementology.common.blocks;

import lellian.mc.elementology.common.EleRegistry;
import net.minecraft.block.*;
import net.minecraft.block.material.Material;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.shapes.ISelectionContext;
import net.minecraft.util.math.shapes.VoxelShape;
import net.minecraft.world.IBlockReader;
import net.minecraftforge.fml.RegistryObject;

import javax.annotation.Nonnull;

public class ExampleBlock extends Block {
    private static VoxelShape SHAPE = makeCuboidShape(4d, 0d, 4d, 12d, 4d, 12d);

    public static final RegistryObject<net.minecraft.block.Block> EXAMPLE_BLOCK = EleRegistry.registerBlock("example_block",
            () -> new Block(AbstractBlock.Properties
                    .create(Material.ROCK)
                    .hardnessAndResistance(3, 3)
                    .sound(SoundType.STONE)
                    .notSolid()));

    public ExampleBlock(Properties properties) {
        super(properties);
    }

    // Called for class loading.
    public static void register(){};

    @Nonnull
    @Override
    public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) {
        return SHAPE;
    }
}

 

I'm not sure how relevant it is, but here is also:

 

The BlockStateProvider:

 

package lellian.mc.elementology.client.data;

import lellian.mc.elementology.common.Elementology;
import lellian.mc.elementology.common.blocks.EleSimpleBlocks;
import lellian.mc.elementology.common.blocks.ExampleBlock;
import lellian.mc.elementology.common.blocks.MortarAndPestleBlock;
import net.minecraft.block.Block;
import net.minecraft.block.SlabBlock;
import net.minecraft.data.DataGenerator;
import net.minecraftforge.client.model.generators.BlockStateProvider;
import net.minecraftforge.client.model.generators.ModelFile;
import net.minecraftforge.common.data.ExistingFileHelper;

public class EleBlockStateProvider extends BlockStateProvider {
    public EleBlockStateProvider(DataGenerator gen, ExistingFileHelper exFileHelper) {
        super(gen, Elementology.MOD_ID, exFileHelper);
    }

    @Override
    protected void registerStatesAndModels() {
        registerBlockWithBlockItem(EleSimpleBlocks.BLUE_MANA_CRYSTAL_ORE.get());
        registerBlockWithBlockItem(EleSimpleBlocks.GREEN_MANA_CRYSTAL_ORE.get());
        registerBlockWithBlockItem(EleSimpleBlocks.RED_MANA_CRYSTAL_ORE.get());
        registerBlockWithBlockItem(EleSimpleBlocks.WHITE_MANA_CRYSTAL_ORE.get());
        registerBlockWithBlockItem(EleSimpleBlocks.MANA_CRYSTAL_BLOCK.get());

        manualModel(ExampleBlock.EXAMPLE_BLOCK.get(), "example_block");
     //   manualModel(MortarAndPestleBlock.MORTAR_AND_PESTLE.get(), "mortar_and_pestle");
    }

    private void registerBlockWithBlockItem(Block block){
        simpleBlock(block);
        final ModelFile model = models().getExistingFile(block.getRegistryName());
        simpleBlockItem(block, model);
    }

    private void manualModel(Block b, String name) {
        final ModelFile model = models().getExistingFile(modLoc("block/" + name));
        simpleBlock(b, model);

        simpleBlockItem(b, model);
    }
}

 

and the model:

 

{
    "parent": "minecraft:block/block",
    "textures": {
		"0": "minecraft:block/stone",
		"particle": "minecraft:block/stone"
	},
	"elements": [
		{
			"from": [4, 0, 4],
			"to": [12, 4, 12],
			"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 12]},
			"faces": {
				"north": {"uv": [0, 0, 8, 1], "texture": "#0"},
				"east": {"uv": [0, 3, 8, 4], "texture": "#0"},
				"south": {"uv": [0, 2, 8, 3], "texture": "#0"},
				"west": {"uv": [0, 0, 8, 2], "texture": "#0"},
				"up": {"uv": [0, 0, 8, 8], "texture": "#0"},
				"down": {"uv": [0, 0, 8, 8], "texture": "#0"}
			}
		}
    ]
}    

 

Can somebody help me figure this out?

Any help/idea is appreciated!

 

 

Edited by Lellian
Link to comment
Share on other sites

31 minutes ago, poopoodice said:

You've never use ExampleBlock?

What do you mean?

ExampleBlock is the small stone thing you see in the picture. It gets registered just fine (Via a DeferredRegistry), I can place it and then you see what is in the picture. This is about the hitbox/outline of the block, which I want to be smaller.

Edited by Lellian
Link to comment
Share on other sites

1 hour ago, Lellian said:

() -> new Block(AbstractBlock.Properties

Cough.

1 hour ago, Lellian said:

public class ExampleBlock extends Block {

 

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Thank you! I have been looking for a solution to the problem for 3 months now, without finding an answer. The problem with displaying the skin was precisely on version 1.18.2, even in a single player game and only with Forge. Moreover, everything worked correctly on another computer. I'm already tired of looking for the problem. I deleted everything I could from the programs on my PC, nothing helped. I saw your post and unchecked IPv6 in the properties of my network connection and the problem disappeared! Thank you, you saved my nerve cells! Sorry for my English.
    • I once had a friend who shared a fascinating story about his spending habits. He was an avid World of Warcraft player, and his obsession with the game reached a new level when he decided to invest a substantial amount of money in amirdrassil the dream's hope boost services for his characters. Despite my initial shock at the expense, he explained that it was his way of enhancing his gaming experience. This memory serves as a reminder that people are willing to go to great lengths to pursue their passions, even if it means spending a significant sum.
    • I've been playing the ATFC modpack recently, however I've been having some performance issues. I tried to fix this by adding various performance mods - but it's only created more issues. This is my log file: https://pastebin.com/9a6r2ah4 I use PrismMC, an external launcher - separate from the Official Minecraft Launcher. I run ZorinOS 16.3 (A Linux Distro). I have 16Gb of RAM, I have an Intel Core i5-4570 CPU, and I have a NVIDIA GeForce GTX 1050 Ti GPU. This is the beginning of the error: [main/ERROR] [ne.mi.fm.lo.mo.ModDiscoverer/SCAN]: Failed to build unique mod list after mod discovery. net.minecraftforge.fml.loading.EarlyLoadingException: Duplicate mods found Help would be greatly appreciated! Sorry if my formatting is wrong - I'm very new here.
    • I believe I posted this topic in the wrong forum so I shall post it again. Hello, I am getting an error when trying to load into a personal modpack of mine. It's been giving this error ever since I started working on adding mods again, and I don't know what's causing it. I don't have a crash report since it is merely me getting kicked from my singleplayer world but I do have the error from the logs. I can provide the full log and debug.log on mclogs or pastebin if required. [26Sep2023 19:45:40.003] [Server thread/ERROR] [net.minecraft.server.network.ServerLoginPacketListenerImpl/]: Couldn't place player in world java.util.NoSuchElementException: No value present at java.util.Optional.orElseThrow(Optional.java:377) ~[?:?] at potionstudios.byg.common.world.LevelBiomeTracker.lambda$fromServer$6(LevelBiomeTracker.java:55) ~[Oh_The_Biomes_You'll_Go-forge-1.19.2-2.0.1.4.jar%23514!/:**.**.**.**] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) ~[?:?] at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992) ~[?:?] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?] at potionstudios.byg.common.world.LevelBiomeTracker.fromServer(LevelBiomeTracker.java:55) ~[Oh_The_Biomes_You'll_Go-forge-1.19.2-2.0.1.4.jar%23514!/:**.**.**.**] at net.minecraft.server.level.ServerLevel.handler$bkb000$warnExperimentalBYG(ServerLevel.java:3269) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.server.level.ServerLevel.m_8853_(ServerLevel.java) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.server.level.ServerLevel.m_8834_(ServerLevel.java:780) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.server.players.PlayerList.m_11261_(PlayerList.java:198) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.server.network.ServerLoginPacketListenerImpl.m_143699_(ServerLoginPacketListenerImpl.java:156) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.server.network.ServerLoginPacketListenerImpl.m_10055_(ServerLoginPacketListenerImpl.java:143) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.server.network.ServerLoginPacketListenerImpl.m_9933_(ServerLoginPacketListenerImpl.java:75) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.network.Connection.m_129483_(Connection.java:248) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.server.network.ServerConnectionListener.m_9721_(ServerConnectionListener.java:143) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:880) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:806) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.client.server.IntegratedServer.m_5705_(IntegratedServer.java:84) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:654) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?] at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:244) ~[client-1.19.2-20220805.130853-srg.jar%23585!/:?]  
    • When trying to open Minecraft with the modpack installed it simply does not open and does not generate any crash-report, I only get the following log Forge 1.20.1 Server Log [#nhetr9s] - mclo.gs [27sep.2023 20:20:52.088] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--username, Raven, --version, 1.20.1-forge-47.2.0, --gameDir, C:\Users\ADMIN\AppData\Roaming\.minecraft, --assetsDir, C:\Users\ADMIN\AppData\Roaming\.minecraft\assets, --assetIndex, 5, --uuid, c133294fda623a7fb0c85f27d7f0f3fc, --accessToken, ????????, --clientId, 0, --xuid, 0, --userType, mojang, --versionType, release, --width, 854, --height, 480, --launchTarget, forgeclient, --fml.forgeVersion, 47.2.0, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412] [27sep.2023 20:20:52.095] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.8 by Microsoft; OS Windows 10 arch amd64 version 10.0 [27sep.2023 20:20:54.925] [main/INFO] [net.minecraftforge.fml.loading.ImmediateWindowHandler/]: Loading ImmediateWindowProvider fmlearlywindow [27sep.2023 20:20:55.087] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.6 [27sep.2023 20:20:55.109] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.5 [27sep.2023 20:20:55.111] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.4 [27sep.2023 20:20:55.113] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.3 [27sep.2023 20:20:55.115] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.2 [27sep.2023 20:20:55.124] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.1 [27sep.2023 20:20:55.132] [main/INFO] [EARLYDISPLAY/]: Trying GL version 4.0 [27sep.2023 20:20:55.156] [main/INFO] [EARLYDISPLAY/]: Requested GL version 4.0 got version 4.0 [27sep.2023 20:20:55.345] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/ADMIN/AppData/Roaming/.minecraft/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%23100!/ Service=ModLauncher Env=CLIENT [27sep.2023 20:20:55.421] [pool-4-thread-1/INFO] [EARLYDISPLAY/]: GL info: Intel(R) HD Graphics 2500 GL version 4.0.0 - Build 10.18.10.5161, Intel [27sep.2023 20:20:56.983] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\ADMIN\AppData\Roaming\.minecraft\libraries\net\minecraftforge\fmlcore\1.20.1-47.2.0\fmlcore-1.20.1-47.2.0.jar is missing mods.toml file [27sep.2023 20:20:56.987] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\ADMIN\AppData\Roaming\.minecraft\libraries\net\minecraftforge\javafmllanguage\1.20.1-47.2.0\javafmllanguage-1.20.1-47.2.0.jar is missing mods.toml file [27sep.2023 20:20:56.991] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\ADMIN\AppData\Roaming\.minecraft\libraries\net\minecraftforge\lowcodelanguage\1.20.1-47.2.0\lowcodelanguage-1.20.1-47.2.0.jar is missing mods.toml file [27sep.2023 20:20:56.994] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\ADMIN\AppData\Roaming\.minecraft\libraries\net\minecraftforge\mclanguage\1.20.1-47.2.0\mclanguage-1.20.1-47.2.0.jar is missing mods.toml file [27sep.2023 20:20:58.045] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select two dependency jars from JarJar which have the same identification: Mod File:  and Mod File: . Using Mod File:  [27sep.2023 20:20:58.047] [main/WARN] [net.minecraftforge.jarjar.selection.JarSelector/]: Attempted to select a dependency jar for JarJar which was passed in as source: geckolib. Using Mod File: C:\Users\ADMIN\AppData\Roaming\.minecraft\mods\geckolib-forge-1.20.1-4.2.3.jar [27sep.2023 20:20:58.047] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Found 40 dependencies adding them to mods collection [27sep.2023 20:20:58.639] [main/INFO] [org.groovymc.gml.mappings.MappingsProvider/]: Starting runtime mappings setup... [27sep.2023 20:20:58.669] [main/INFO] [org.groovymc.gml.internal.locator.ModLocatorInjector/]: Injecting ScriptModLocator candidates... [27sep.2023 20:20:58.686] [main/INFO] [org.groovymc.gml.scriptmods.ScriptModLocator/]: Injected Jimfs file system [27sep.2023 20:20:58.695] [main/INFO] [org.groovymc.gml.scriptmods.ScriptModLocator/]: Skipped loading script mods from directory C:\Users\ADMIN\AppData\Roaming\.minecraft\mods\scripts as it did not exist. [27sep.2023 20:20:58.704] [main/INFO] [org.groovymc.gml.internal.locator.ModLocatorInjector/]: Injected ScriptModLocator mod candidates. Found 0 valid mod candidates and 0 broken mod files. [27sep.2023 20:21:03.252] [GML Mappings Thread/INFO] [org.groovymc.gml.mappings.MappingsProvider/]: Loaded runtime mappings in 4271ms [27sep.2023 20:21:03.253] [GML Mappings Thread/INFO] [org.groovymc.gml.mappings.MappingsProvider/]: Finished runtime mappings setup.  
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.