Jump to content

Recommended Posts

Posted (edited)

I am currently facing some issues with this small block that i'm trying to make.
When i'm placing it won't render when facing down.

all sides render correctly.

The block is just a copy of minecraft:hopper

my states:
 

{
  "variants": {
    "facing=down": { "model": "examplemod:block/newblock" },
    "facing=north": { "model": "examplemod:block/newblock_side" },
    "facing=south": { "model": "examplemod:block/newblock_side", "y": 180 },
    "facing=west": { "model": "examplemod:block/newblock_side", "y": 270 },
    "facing=east": { "model": "examplemod:block/newblock_side", "y": 90 }
  }
}


inside textures/block i got the exact same png's just renamed to reflect this examplemod.
inside, outside and top.

inside models/block
i got two model files,
newblock and newblock_side, just as minecraft hopper.

this is models/block/newblock.json:

{
  "ambientocclusion": false,
  "textures": {
    "particle": "examplemod:block/newblock_outside",
    "top": "examplemod:block/newblock_top",
    "side": "examplemod:block/newblock_outside",
    "inside": "examplemod:block/newblock_inside"
  },
  "elements": [
    {   "from": [ 0, 10, 0 ],
      "to": [ 16, 11, 16 ],
      "faces": {
        "down":  { "texture": "#side" },
        "up":    { "texture": "#inside", "cullface": "up" },
        "north": { "texture": "#side", "cullface": "north" },
        "south": { "texture": "#side", "cullface": "south" },
        "west":  { "texture": "#side", "cullface": "west" },
        "east":  { "texture": "#side", "cullface": "east" }
      }
    },
    {   "from": [ 0, 11, 0 ],
      "to": [ 2, 16, 16 ],
      "faces": {
        "up":    { "texture": "#top", "cullface": "up" },
        "north": { "texture": "#side", "cullface": "north" },
        "south": { "texture": "#side", "cullface": "south" },
        "west":  { "texture": "#side", "cullface": "west" },
        "east":  { "texture": "#side", "cullface": "up" }
      }
    },
    {   "from": [ 14, 11, 0 ],
      "to": [ 16, 16, 16 ],
      "faces": {
        "up":    { "texture": "#top", "cullface": "up" },
        "north": { "texture": "#side", "cullface": "north" },
        "south": { "texture": "#side", "cullface": "south" },
        "west":  { "texture": "#side", "cullface": "up" },
        "east":  { "texture": "#side", "cullface": "east" }
      }
    },
    {   "from": [ 2, 11, 0 ],
      "to": [ 14, 16, 2 ],
      "faces": {
        "up":    { "texture": "#top", "cullface": "up" },
        "north": { "texture": "#side", "cullface": "north" },
        "south": { "texture": "#side", "cullface": "up" }
      }
    },
    {   "from": [ 2, 11, 14 ],
      "to": [ 14, 16, 16 ],
      "faces": {
        "up":    { "texture": "#top", "cullface": "up" },
        "north": { "texture": "#side", "cullface": "up" },
        "south": { "texture": "#side", "cullface": "south" }
      }
    },
    {   "from": [ 4, 4, 4 ],
      "to": [ 12, 10, 12 ],
      "faces": {
        "down":  { "texture": "#side" },
        "north": { "texture": "#side" },
        "south": { "texture": "#side" },
        "west":  { "texture": "#side" },
        "east":  { "texture": "#side" }
      }
    },
    {   "from": [ 6, 0, 6 ],
      "to": [ 10, 4, 10 ],
      "faces": {
        "down":  { "texture": "#side", "cullface": "down" },
        "north": { "texture": "#side" },
        "south": { "texture": "#side" },
        "west":  { "texture": "#side" },
        "east":  { "texture": "#side" }
      }
    }
  ]
}


and models/block/newblock_side.json

{
    "ambientocclusion": false,
    "textures": {
        "particle": "examplemod:block/newblock_outside",
        "top": "examplemod:block/newblock_top",
        "side": "examplemod:block/newblock_outside",
        "inside": "examplemod:block/newblock_inside"
    },
    "elements": [
        {   "from": [ 0, 10, 0 ],
            "to": [ 16, 11, 16 ],
            "faces": {
                "down":  { "texture": "#side" },
                "up":    { "texture": "#inside", "cullface": "up" },
                "north": { "texture": "#side", "cullface": "north" },
                "south": { "texture": "#side", "cullface": "south" },
                "west":  { "texture": "#side", "cullface": "west" },
                "east":  { "texture": "#side", "cullface": "east" }
            }
        },
        {   "from": [ 0, 11, 0 ],
            "to": [ 2, 16, 16 ],
            "faces": {
                "up":    { "texture": "#top", "cullface": "up" },
                "north": { "texture": "#side", "cullface": "north" },
                "south": { "texture": "#side", "cullface": "south" },
                "west":  { "texture": "#side", "cullface": "west" },
                "east":  { "texture": "#side", "cullface": "up" }
            }
        },
        {   "from": [ 14, 11, 0 ],
            "to": [ 16, 16, 16 ],
            "faces": {
                "up":    { "texture": "#top", "cullface": "up" },
                "north": { "texture": "#side", "cullface": "north" },
                "south": { "texture": "#side", "cullface": "south" },
                "west":  { "texture": "#side", "cullface": "up" },
                "east":  { "texture": "#side", "cullface": "east" }
            }
        },
        {   "from": [ 2, 11, 0 ],
            "to": [ 14, 16, 2 ],
            "faces": {
                "up":    { "texture": "#top", "cullface": "up" },
                "north": { "texture": "#side", "cullface": "north" },
                "south": { "texture": "#side", "cullface": "up" }
            }
        },
        {   "from": [ 2, 11, 14 ],
            "to": [ 14, 16, 16 ],
            "faces": {
                "up":    { "texture": "#top", "cullface": "up" },
                "north": { "texture": "#side", "cullface": "up" },
                "south": { "texture": "#side", "cullface": "south" }
            }
        },
        {   "from": [ 4, 4, 4 ],
            "to": [ 12, 10, 12 ],
            "faces": {
                "down":  { "texture": "#side" },
                "north": { "texture": "#side" },
                "south": { "texture": "#side" },
                "west":  { "texture": "#side" },
                "east":  { "texture": "#side" }
            }
        },
        {   "from": [ 6, 4, 0 ],
            "to": [ 10, 8, 4 ],
            "faces": {
                "down":  { "texture": "#side" },
                "up":    { "texture": "#side" },
                "north": { "texture": "#side", "cullface": "north" },
                "west":  { "texture": "#side" },
                "east":  { "texture": "#side" }
            }
        }
    ]
}



I am not sure if it is problem related to any of these files or if it is related to some block registration code
hope someone can help point me in the right direction.

please tell if i should post more code.
If it helps i have tried following this tutorial on youtube.




Best Regards.
 

newblock.png

 

 

Solved: 
 

    @Nullable
    @Override
    public BlockState getStateForPlacement(BlockItemUseContext context)
    {
        BlockState blockstate = super.getStateForPlacement(context);
        if (blockstate != null)
        {
            if(context.getNearestLookingDirection() == Direction.UP)
            {
                blockstate = blockstate.with(BlockStateProperties.FACING, Direction.DOWN);
            }
            else
            {
                blockstate = blockstate.with(BlockStateProperties.FACING, context.getNearestLookingDirection());
            }
        }
        return blockstate;
    }


I am now avoiding an up direction by checking context.getNearestLookingDirection() , setting it to direction.down i case that happens and otherwise use the returned direction.

 

 

Edited by holst666
Posted
9 minutes ago, holst666 said:

When i'm placing it won't render when facing down.

Only when it is facing down? Have you looked at the block in F3 to make sure the facing property is down? Also could you post a screenshot or elaborate on what you mean by "won't render"?

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted
3 minutes ago, Animefan8888 said:

Only when it is facing down? Have you looked at the block in F3 to make sure the facing property is down? Also could you post a screenshot or elaborate on what you mean by "won't render"?

Looks like it's facing up then.
it's when looking downwards and placing it.
Look up and placing works to.

Posted (edited)

Setting an facing=up would fix it,
but how do they handle it otherwise, vanilla does not look like they have set an up variant.?

Edited by holst666
Posted
1 hour ago, holst666 said:

but how do they handle it otherwise, vanilla does not look like they have set an up variant.?

They must not ever let it have an UP variant when its placed.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted
5 minutes ago, holst666 said:

How can i manual check for facing direction and set the propper blockstate then ?

I don't know what your code looks like so the best I can tell you is look at HopperBlock#getStateForPlacement

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted

Solved: 
 

    @Nullable
    @Override
    public BlockState getStateForPlacement(BlockItemUseContext context)
    {
        BlockState blockstate = super.getStateForPlacement(context);
        if (blockstate != null)
        {
            if(context.getNearestLookingDirection() == Direction.UP)
            {
                blockstate = blockstate.with(BlockStateProperties.FACING, Direction.DOWN);
            }
            else
            {
                blockstate = blockstate.with(BlockStateProperties.FACING, context.getNearestLookingDirection());
            }
        }
        return blockstate;
    }


I am now avoiding an up direction by checking context.getNearestLookingDirection() , setting it to direction.down i case that happens and otherwise use the returned direction.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I have no idea what the flip is going on, I can load the modpack just fine at forge 42.2.0 but any forge version above it insta-crashes with exit code 1. Can somebody tell me what's going on, this is minecraft 1.20.1 Latest.log: https://pastebin.com/pBUL1ZFa
    • does anyone know how to incorporate custom noise settings into a custom dimension through the use of datagen, I have created a custon json file for the noise settings that I want but I just don't know how to get it to register with the generated json file of the custom dimension.   here is the code for the dimension class package net.hurst.lustria.worldgen.dimension; import com.mojang.datafixers.util.Pair; import net.hurst.lustria.Lustria; import net.hurst.lustria.worldgen.biome.ModBiomes; import net.hurst.lustria.worldgen.registries.LustriaNoiseSettings; import net.minecraft.core.HolderGetter; import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.BootstapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; import net.minecraft.util.valueproviders.ConstantInt; import net.minecraft.world.level.Level; import net.minecraft.world.level.biome.*; import net.minecraft.world.level.dimension.BuiltinDimensionTypes; import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.level.dimension.LevelStem; import net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator; import net.minecraft.world.level.levelgen.NoiseGeneratorSettings; import java.util.List; import java.util.OptionalLong; public class ModDimensions { public static final ResourceKey<LevelStem> LUSTRIA_KEY = ResourceKey.create(Registries.LEVEL_STEM, ResourceLocation.fromNamespaceAndPath(Lustria.MOD_ID, "lustriadim")); public static final ResourceKey<Level> LUSTRIA_LEVEL_KEY = ResourceKey.create(Registries.DIMENSION, ResourceLocation.fromNamespaceAndPath(Lustria.MOD_ID, "lustriadim")); public static final ResourceKey<DimensionType> LUSTRIA_DIM_TYPE = ResourceKey.create(Registries.DIMENSION_TYPE, ResourceLocation.fromNamespaceAndPath(Lustria.MOD_ID, "lustriadim_type")); public static void bootstrapType(BootstapContext<DimensionType> context) { context.register(LUSTRIA_DIM_TYPE, new DimensionType( OptionalLong.of(12000), // fixedTime false, // hasSkylight true, // hasCeiling false, // ultraWarm false, // natural 1.0, // coordinateScale true, // bedWorks false, // respawnAnchorWorks -64, // minY 256, // height 256, // logicalHeight BlockTags.INFINIBURN_OVERWORLD, // infiniburn BuiltinDimensionTypes.OVERWORLD_EFFECTS, // effectsLocation 0.0f, // ambientLight new DimensionType.MonsterSettings(false, false, ConstantInt.of(0), 0))); } public static void bootstrapStem(BootstapContext<LevelStem> context) { HolderGetter<Biome> biomeRegistry = context.lookup(Registries.BIOME); HolderGetter<DimensionType> dimTypes = context.lookup(Registries.DIMENSION_TYPE); HolderGetter<NoiseGeneratorSettings> noiseGenSettings = context.lookup(Registries.NOISE_SETTINGS); NoiseBasedChunkGenerator wrappedChunkGenerator = new NoiseBasedChunkGenerator( new FixedBiomeSource(biomeRegistry.getOrThrow(Biomes.BEACH)), noiseGenSettings.getOrThrow(NoiseGeneratorSettings.CAVES)); NoiseBasedChunkGenerator noiseBasedChunkGenerator = new NoiseBasedChunkGenerator( MultiNoiseBiomeSource.createFromList( new Climate.ParameterList<>(List.of(Pair.of( Climate.parameters(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F), biomeRegistry.getOrThrow(Biomes.BEACH)), Pair.of( Climate.parameters(0.1F, 0.2F, 0.0F, 0.2F, 0.0F, 0.0F, 0.0F), biomeRegistry.getOrThrow(Biomes.BIRCH_FOREST)), Pair.of( Climate.parameters(0.3F, 0.6F, 0.1F, 0.1F, 0.0F, 0.0F, 0.0F), biomeRegistry.getOrThrow(Biomes.OCEAN)), Pair.of( Climate.parameters(0.4F, 0.3F, 0.2F, 0.1F, 0.0F, 0.0F, 0.0F), biomeRegistry.getOrThrow(Biomes.DARK_FOREST)) ))), noiseGenSettings.getOrThrow(NoiseGeneratorSettings.CAVES)); LevelStem stem = new LevelStem(dimTypes.getOrThrow(ModDimensions.LUSTRIA_DIM_TYPE), noiseBasedChunkGenerator); context.register(LUSTRIA_KEY, stem); } } minecraft version is 1.20.1
    • Please read the FAQ (https://forums.minecraftforge.net/topic/125488-rules-and-frequently-asked-questions-faq/) and post logs as described there using a site like https://mclo.gs and post the link to it here. It may have the information required to solve your problem.  
    • the error code comes up when i trry to run it and ive tried to fix it but i cant  
  • Topics

×
×
  • Create New...

Important Information

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