Jump to content

Recommended Posts

Posted

I made a model that takes up a 3x3 area now i am trying to code the part that when 1 of the blocks is broken they all break.  When I try to code my breakBlock method it gets all screwy.  The method is being called when I place the item and i have no idea why?

 

GagBlock class

package com.wiffington.pizzeria.blocks;

import com.wiffington.pizzeria.Main;
import com.wiffington.pizzeria.tileentity.TileEntityGag;

import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityPiston;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class BlockGag extends BlockContainer{

public BlockGag() {
	super(Material.rock);
	this.setBlockName("blockGag");
	this.setHardness(3.5F);
	this.setCreativeTab(Main.tabPizza);
}



@Override
public void breakBlock(World world, int i, int j, int k, Block block, int par6) {
	if (block == Main.blockGag) {
		if (!(world.isRemote)) {
			TileEntityGag tileEntity = (TileEntityGag) world.getTileEntity(i, j, k);
			if (tileEntity != null) {
				for (int height = 0; height < 3; height++) {
					for (int row = 0; row < 3; row++) {
						for (int col = 0; col < 3; col++) {
							System.out.println("this is being called");
							/*
							super.breakBlock(world, tileEntity.primary_x + 1 - row,
									tileEntity.primary_y + 3 - height, tileEntity.primary_z + 1 - col, block, par6);
							world.removeTileEntity(tileEntity.primary_x + 1 - row,
									tileEntity.primary_y + 3 - height, tileEntity.primary_z + 1 - col);
							world.setBlockToAir(tileEntity.primary_x + 1 - row, tileEntity.primary_y + 3 - height,
									tileEntity.primary_z + 1 - col);
							*/
						}
					}
				}
			}
		}
	}
}


@Override 
public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l){
	return false;
}

@Override public boolean isOpaqueCube(){
	return false;
}



@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
	return new TileEntityGag();
}


}

 

The Item placer class

 

package com.wiffington.pizzeria.items;

import com.wiffington.pizzeria.Main;
import com.wiffington.pizzeria.tileentity.TileEntityGag;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraft.util.MathHelper;

public class ItemTest extends Item {

public ItemTest(){
	this.setCreativeTab(Main.tabPizza);
}

// Called when a player right-clicks with this item in his hand


@Override
public boolean onItemUse(ItemStack item, EntityPlayer player, World world, int x, int y, int z, int side, float xOffset, float yOffset, float zOffSet) {
	boolean canPlace = true;

	if (!world.isRemote) {
		//this is checking the 3x3 area around where you clicked to see if you can place the oven
		for (int height = 0; height < 3; height++) {
			for (int row = 0; row < 3; row++) {
				for (int col = 0; col < 3; col++) {
					if (!world.isAirBlock(x + 1 - row, y + 3 - height, z + 1 - col)) {
						canPlace = false;
					}
				}
			}
		}

		if (canPlace) {
			//this is where it is setting the gag blocks and storing where the center cords are.
			for (int height = 0; height < 3; height++) {
				for (int row = 0; row < 3; row++) {
					for (int col = 0; col < 3; col++) {
						world.setBlock(x, y + 1, z, Main.blockPizzaOven);
						world.setBlock(x+1, y + 1, z+1, Main.blockGag);
						if (!(height == 2 && row == 0 && col == 0)) {
							world.setBlock(x + 1 - row, y + 3 - height, z + 1 - col, Main.blockGag);
							TileEntityGag tileEntity = (TileEntityGag) world.getTileEntity(x + 1 - row, y + 3 - height, z + 1 - col);
							if (tileEntity != null) {
								tileEntity.primary_x = x;
								tileEntity.primary_y = y + 1;
								tileEntity.primary_z = z;
							}

						}
					}
				}
			}
			return true;
		}
		return false;

	}
	return false;
}



}

Posted

I am going to finish this mod first.  This version has the most tutorials so I am using it to get the hang of modding then I will switch.  It really doesn't make any sense that forge would discontinue 1.7.10...  I am sorry I am still stuck in the past but I have only played 1.7.10 and earlier and I have never ever played on any version above it.  ;D

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • 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

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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