Jump to content

Cannot find Custom Biome 1.7.10


Glistre

Recommended Posts

[sOLVED]I have searched everywhere for at least two hours not showing any errors in Eclipse but I cannot find my custom Biome.  I registered it in my main file and also in a separate Biome registry nothing seems to work.  Everything runs fine just no Biome

 

Here is my main mod file:

 

package com.glistre.glistremod;

import java.awt.Color;

import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityList;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.Achievement;
import net.minecraft.world.WorldType;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.BiomeDictionary;
import net.minecraftforge.common.BiomeDictionary.Type;
import net.minecraftforge.common.BiomeManager;
import net.minecraftforge.common.util.EnumHelper;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;

import com.glistre.glistremod.BiomeRegistry;
import com.glistre.glistremod.GlistreArmor;
import com.glistre.glistremod.GlistreDust;
import com.glistre.glistremod.GlistreOre;
import com.glistre.glistremod.GlistreSword;
import com.glistre.glistremod.CommonProxy;
import com.glistre.glistremod.ClientProxy;
import com.glistre.glistremod.MyItem;
import com.glistre.glistremod.MyPickaxe;
import com.glistre.glistremod.MySword;
import com.glistre.glistremod.MyFood;
import com.glistre.glistremod.MyBlock;
//import com.glistre.glistremod.MyArmor;
import com.glistre.glistremod.GlistreBiome;
//import com.glistre.glistremod.MyBlockGen;
//import com.glistre.glistremod.MyEntityTobo;


/* 	MOD INFO */
@Mod(modid = GlistreMod.MODID, name = "Glistre Mod", version = "1.0")


public class GlistreMod {

/*	PROXY INFO */
@SidedProxy(clientSide = ("com.glistre.glistremod.ClientProxy"), serverSide = ("com.glistre.glistremod.CommonProxy"))
public static CommonProxy proxy;

public static final String MODID = "GlistreMod";
public static final String NAME = "Glistre Mod";
public static final String VERSION = "1.0";





/**	
* DECLARATION SECTION 
* *********************************************************** */
public static ItemArmor GlistreArmor;

// DECLARE THE ARMOR
public static Item MyHelmet_1;
public static Item MyChestplate_1;
public static Item MyLeggings_1;
public static Item MyBoots_1;
public static int MyHelmet_1ID;
public static int MyChestplate_1ID;
public static int MyLeggings_1ID;
public static int MyBoots_1ID;

// DECLARE THE ARMOR MATERIAL
public static ArmorMaterial Glistre=
/** maxDamageFactor, damageReductionAmountArray, enchantability*/		
		EnumHelper.addArmorMaterial("Glistre", 28, new int[]{3, 7, 6, 4}, 50);
//GlistreArmor= EnumHelper.addArmorMaterial("GlistreArmor", 28, new int[]{3, 7, 6, 4}, 50);

//  DECLARE THE SWORD 
        public static Item MySword_1;
        
//  DECLARE THE SWORD 
        public static Item Glistre_Sword;
    
//  DECLARE THE PICKAXE 
        public static Item MyPickaxe_1;

//  DECLARE THE PICKAXE 
        public static Item Glistre_Pickaxe;
        
//  DECLARE THE ITEM
        public static Item MyItem_1;

//  DECLARE THE ITEM
        public static Item Glistre_Dust;

//  DECLARE THE ITEM
        public static Item Glistre_Ore;

//  DECLARE GLISTERING BREAD
        public static Item MyFood_1;
        
//  DECLARE GLISTERING PIE
        public static Item MyFood_2;

//  DECLARE THE BLOCK
        public static Block MyBlock_1;

//  DECLARE THE BIOME
        public static BiomeGenBase biomeGlistre;

        public static void initializeBiome(){
    

        }

        

        //  DECLARE THE MOB ID
        static int MyEntityID = 300;
    
    //  SEARCH FOR UNIQUE ID    
        public static int getUniqueEntityId() {
            do {
                MyEntityID++;
            }
            while (EntityList.getStringFromID(MyEntityID) != null);
            return MyEntityID++;
        }
    
    //  DECLARE A NEW EGG
        public static void registerEntityEgg(Class <? extends Entity> entity, int primaryColor, int secondaryColor) {
            int id = getUniqueEntityId();
            EntityList.IDtoClassMapping.put(id, entity);
            EntityList.entityEggs.put(id, new EntityEggInfo(id, primaryColor, secondaryColor));
   }

//	DECLARE THE NEW ACHIEVEMENTS	
        public static Achievement MyAchievement_1;
        public static Achievement MyAchievement_2;    	
        public static Achievement MyAchievement_3;

/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */	


        
@EventHandler	
public void preInit( FMLPreInitializationEvent event ){

proxy.registerRendering();


/**	
* LOAD SECTION 
* *********************************************************** */ 
//LOAD THE ARMOR

	MyHelmet_1 = new GlistreArmor(Glistre, MyHelmet_1ID, 0).setUnlocalizedName("MyHelmet_1").setCreativeTab(CreativeTabs.tabCombat).setTextureName(MODID + ":" + "MyHelmet_1");
	//MyArmor(2060, EnumArmorMaterial.IRON, 0, 0, "myarmor");
	GameRegistry.registerItem(MyHelmet_1, "MyHelmet_1");

	MyChestplate_1 = new GlistreArmor(Glistre, MyChestplate_1ID, 1).setUnlocalizedName("MyChestplate_1").setCreativeTab(CreativeTabs.tabCombat).setTextureName(MODID + ":" + "MyChestplate_1");
	GameRegistry.registerItem(MyChestplate_1, "MyChestplate_1");

	MyLeggings_1 = new GlistreArmor(Glistre, MyLeggings_1ID, 2).setUnlocalizedName("MyLeggings_1").setCreativeTab(CreativeTabs.tabCombat).setTextureName(MODID + ":" + "MyLeggings_1");
	GameRegistry.registerItem(MyLeggings_1, "MyLeggings_1");

	MyBoots_1 = new GlistreArmor(Glistre, MyBoots_1ID, 3).setUnlocalizedName("MyBoots_1").setCreativeTab(CreativeTabs.tabCombat).setTextureName(MODID + ":" + "MyBoots_1");
	GameRegistry.registerItem(MyBoots_1, "MyBoots_1");


        

//  LOAD THE SWORDS
        MySword_1 = new Item().setUnlocalizedName("MySword_1").setCreativeTab(CreativeTabs.tabCombat).setTextureName(MODID + ":" + "MySword_1"); 
        	//	MySword(ToolMaterial Item, EnumToolMaterial, "MySword_1");
        GameRegistry.registerItem(MySword_1, MySword_1.getUnlocalizedName());

        Glistre_Sword = new Item().setUnlocalizedName("Glistre_Sword").setCreativeTab(CreativeTabs.tabCombat).setTextureName(MODID + ":" + "Glistre_Sword");
        GameRegistry.registerItem(Glistre_Sword, Glistre_Sword.getUnlocalizedName());
       
//  LOAD THE PICKAXE
        MyPickaxe_1 = new Item().setUnlocalizedName("MyPickaxe_1").setCreativeTab(CreativeTabs.tabTools).setTextureName(MODID + ":" + "MyPickaxe_1");
        GameRegistry.registerItem(MyPickaxe_1, MyPickaxe_1.getUnlocalizedName());

//  LOAD THE ITEMS
        MyItem_1 = new Item().setUnlocalizedName("MyItem_1").setCreativeTab(CreativeTabs.tabMisc).setMaxStackSize(64).setTextureName(MODID + ":" + "MyItem_1");
        GameRegistry.registerItem(MyItem_1, MyItem_1.getUnlocalizedName());

        Glistre_Dust = new Item().setUnlocalizedName("Glistre_Dust").setCreativeTab(CreativeTabs.tabMaterials).setMaxStackSize(64).setTextureName(GlistreMod.MODID + ":" + "Glistre_Dust");
        GameRegistry.registerItem(Glistre_Dust, Glistre_Dust.getUnlocalizedName());

        Glistre_Ore = new Item().setUnlocalizedName("Glistre_Ore").setCreativeTab(CreativeTabs.tabMisc).setMaxStackSize(64).setTextureName(MODID + ":" + "Glistre_Ore");
        		//GlistreOre(2034, "Glistre_Ore").setCreativeTab(CreativeTabs.tabMisc).setMaxStackSize(64);
        GameRegistry.registerItem(Glistre_Ore, Glistre_Ore.getUnlocalizedName());

//  GLISTERING BREAD
        /** itemID, healAmount, saturationModifier (F), isWolfsFavoriteMeat, Texture Name */
        MyFood_1 = new ItemFood(6,5.0F,true).setUnlocalizedName("MyFood_1").setCreativeTab(CreativeTabs.tabFood).setMaxStackSize(64).setTextureName(MODID + ":" + "MyFood_1");
        GameRegistry.registerItem(MyFood_1, MyFood_1.getUnlocalizedName());

//  GLISTERING PIE
        /** itemID, healAmount, saturationModifier (F), isWolfsFavoriteMeat, Texture Name */
        MyFood_2 = new ItemFood(8,5.5F, true).setUnlocalizedName("MyFood_2").setCreativeTab(CreativeTabs.tabFood).setMaxStackSize(64).setTextureName(MODID + ":" + "MyFood_2");
        //MyFood(2041, 8, 5.5F, true, "MyFood_2").setAlwaysEdible().setCreativeTab(CreativeTabs.tabFood);
        GameRegistry.registerItem(MyFood_2, MyFood_2.getUnlocalizedName());

//  LOAD THE BLOCK 
        MyBlock_1 = new MyBlock().setBlockName("MyBlock_1").setCreativeTab(CreativeTabs.tabBlock).setBlockTextureName(MODID + ":" + "MyBlock_1")
        		.setLightLevel(1.0F).setResistance(5.0F).setHardness(3.5F).setStepSound(Block.soundTypeStone);
        GameRegistry.registerBlock(MyBlock_1, MyBlock_1.getUnlocalizedName());
	//MinecraftForge.setBlockHarvestLevel(MyBlock_1, "pickaxe", 1);




//  LOAD BIOME

        biomeGlistre = new GlistreBiome(10).setBiomeName("Glistering Biome");  
        BiomeDictionary.registerBiomeType(biomeGlistre, Type.FOREST);		
        BiomeManager.addSpawnBiome(biomeGlistre);       
}       


/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */	



@EventHandler
public static void init(FMLInitializationEvent event ) 
{

/**	
* RECIPES SECTION 
* *********************************************************** */

//  SWORD RECIPE  
        GameRegistry.addRecipe(new ItemStack(MySword_1, 1), new Object[]
        {
                " X ",
                " X ",
                " S ",
            'S', Items.stick,
            'X', MyItem_1,
        });
        
//  SWORD RECIPE  
        GameRegistry.addRecipe(new ItemStack(Glistre_Sword, 1), new Object[]
        {
                " X ",
                " X ",
                " S ",
            'S', Items.stick,
            'X', Glistre_Ore,
        });

//  PICKAXE RECIPE  
        GameRegistry.addRecipe(new ItemStack(MyPickaxe_1, 1), new Object[]
        {
                "XXX",
                " X ",
                " S ",            
            'S', Items.stick,
            'X', MyItem_1,
        });

// GLISTRE DUST RECIPE
        ItemStack GlistreDust = new ItemStack(GlistreMod.Glistre_Dust);
        ItemStack SilverIngot = new ItemStack(GlistreMod.MyItem_1);
        ItemStack GoldIngot = new ItemStack(Items.gold_ingot);
        
        GameRegistry.addShapelessRecipe(GlistreDust, MyItem_1, GoldIngot);
        
// SMELTING GLISTRE ORE RECIPE
        ItemStack GlistreOre = new ItemStack(GlistreMod.Glistre_Ore);

       GameRegistry.addSmelting(GlistreMod.Glistre_Dust, GlistreOre, 12.0F);        

//  SMELTING RECIPE
        GameRegistry.addSmelting(MyBlock_1, (new ItemStack(MyItem_1, 1)), 12);

//  GLISTERING BREAD RECIPE         
        GameRegistry.addRecipe(new ItemStack(MyFood_1, 1), new Object[]
        {
                "   ",
                " X ",
                " S ",
            'S', Items.bread,
            'X', GlistreMod.Glistre_Dust,
        });

//  GLISTERING PIE RECIPE         
        GameRegistry.addRecipe(new ItemStack(MyFood_2, 1), new Object[]
        {
                " Z ",
                " S ",
                "   ",
            'Z', Items.sugar,
            'S', GlistreMod.MyFood_1,
        });
       



/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */	


/**	
* EXTRA METHODS SECTION 
* *********************************************************** */

//  REGISTER THE ORE GENERATION 
    //GameRegistry.registerWorldGenerator(new MyBlockGen());

//	CHANGE THE TEXT OF THE ACHIEVEMENTS	
    	//LanguageRegistry.instance().addStringLocalization("achievement.MyAchievement_1", "en_US", "Silver Ore");
    	//LanguageRegistry.instance().addStringLocalization("achievement.MyAchievement_1.desc", "en_US", "Mine Silver Ore");
    	//LanguageRegistry.instance().addStringLocalization("achievement.MyAchievement_2", "en_US", "Silver Ingot");
    	//LanguageRegistry.instance().addStringLocalization("achievement.MyAchievement_2.desc", "en_US", "Smelt Silver Ore");
    	//LanguageRegistry.instance().addStringLocalization("achievement.MyAchievement_3", "en_US", "Glistre Dust");
    	//LanguageRegistry.instance().addStringLocalization("achievement.MyAchievement_3.desc", "en_US", "Craft Glistre Dust");

/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */	


}

@EventHandler
public static void postInit( FMLPostInitializationEvent event ) 
{

WorldType BIOMEGLISTRE = new WorldTypeGlistre(3, "biomeGlistre");

}

}

 

Biome file:

package com.glistre.glistremod;

import com.glistre.glistremod.GlistreMod;

import net.minecraft.block.Block;

import com.glistre.glistremod.MyBlock;
import com.glistre.glistremod.WorldTypeGlistre;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.monster.EntityZombie;    
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemBlock;
import net.minecraft.world.biome.BiomeGenBase;

public class GlistreBiome extends BiomeGenBase
{
    public GlistreBiome(int par1)
    {
        super(par1);
        
        this.setBiomeName("Glistering Biome");
        this.topBlock = Blocks.diamond_ore;
	this.fillerBlock = GlistreMod.MyBlock_1;

        
        this.theBiomeDecorator.treesPerChunk = 3;
        this.theBiomeDecorator.waterlilyPerChunk = 100;
        this.theBiomeDecorator.bigMushroomsPerChunk = 10;

        this.spawnableCreatureList.add(new SpawnListEntry(EntitySkeleton.class, 5, 3, 3));
        this.spawnableCreatureList.add(new SpawnListEntry(EntityZombie.class, 5, 3, 3));
        this.spawnableWaterCreatureList.clear();
        this.spawnableMonsterList.clear();
        
        this.addFlower(Blocks.red_flower, 4, 3);
        this.addFlower(Blocks.red_flower, 5, 3);       
        this.addFlower(Blocks.red_flower, 7, 3);       
        this.addFlower(Blocks.red_flower, 0, 20);       
        this.addFlower(Blocks.yellow_flower, 0, 30);
        
        this.setMinMaxHeight(0.2F, .9F);
        this.setTemperatureRainfall(0.8F, 1.4F);
   
    }

private void setMinMaxHeight(float f, float g) {


}
}

 

World Type File:

 package com.glistre.glistremod;

import net.minecraft.world.WorldType;
import net.minecraft.world.gen.layer.GenLayer;
import net.minecraft.world.gen.layer.GenLayerBiome;
import net.minecraft.world.gen.layer.GenLayerBiomeEdge;
import net.minecraft.world.gen.layer.GenLayerZoom;

public class WorldTypeGlistre extends WorldType{

public WorldTypeGlistre(int par1, String name) {
	super(name);

}
    /**
     * Creates the GenLayerBiome used for generating the world
     *
     * @param worldSeed The world seed
     * @param parentLayer The parent layer to feed into any layer you return
     * @return A GenLayer that will return ints representing the Biomes to be generated, see GenLayerBiome
     */
  @Override
public GenLayer getBiomeLayer(long worldSeed, GenLayer parentLayer)
    {
        GenLayer ret = new GlistreGenLayerBiome(200L, parentLayer, this);
        ret = GenLayerZoom.magnify(1000L, ret, 2);
        ret = new GenLayerBiomeEdge(1000L, ret);
        return ret;
    }

}

 

Custom GenLayerFile:

package com.glistre.glistremod;

import java.util.ArrayList;
import java.util.List;

import net.minecraft.util.WeightedRandom;
import net.minecraft.world.WorldType;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.gen.layer.GenLayer;
import net.minecraft.world.gen.layer.IntCache;
import net.minecraftforge.common.BiomeManager;
import net.minecraftforge.common.BiomeManager.BiomeEntry;
import net.minecraftforge.common.BiomeDictionary;


public class GlistreGenLayerBiome extends GenLayer
{
    private List<BiomeEntry>[] biomes = new ArrayList[biomeManager.BiomeType.values().length];
    
    private static final String __OBFID = "CL_00000555";

    public GlistreGenLayerBiome(long p_i2122_1_, GenLayer p_i2122_3_, WorldType p_i2122_4_)
    {
        super(p_i2122_1_);
        
        this.parent = p_i2122_3_;
        
        for (BiomeManager.BiomeType type : BiomeManager.BiomeType.values())
        {
            com.google.common.collect.ImmutableList<BiomeEntry> biomesToAdd = BiomeManager.getBiomes(type);
            int idx = type.ordinal();
            
            if (biomes[idx] == null) biomes[idx] = new ArrayList<BiomeEntry>();
            if (biomesToAdd != null) biomes[idx].addAll(biomesToAdd);
        }
        
        int desertIdx = BiomeManager.BiomeType.DESERT.ordinal();
        
        if (p_i2122_4_ == WorldType.DEFAULT_1_1)
        {
            biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.desert, 10));
            biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.forest, 10));
            biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.extremeHills, 10));
            biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.swampland, 10));
            biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.plains, 10));
            biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.taiga, 10));
            biomes[desertIdx].add(new BiomeEntry(BiomeRegistry.biomeGlistre, 10));
                  
        
        }
        else
        {
            biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.desert, 30));
            biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.savanna, 20));
            biomes[desertIdx].add(new BiomeEntry(BiomeGenBase.plains, 10));
            biomes[desertIdx].add(new BiomeEntry(BiomeRegistry.biomeGlistre, 10));  

        }
    }

    /**
     * Returns a list of integer values generated by this layer. These may be interpreted as temperatures, rainfall
     * amounts, or biomeList[] indices based on the particular GenLayer subclass.
     */
    public int[] getInts(int p_75904_1_, int p_75904_2_, int p_75904_3_, int p_75904_4_)
    {
        int[] aint = this.parent.getInts(p_75904_1_, p_75904_2_, p_75904_3_, p_75904_4_);
        int[] aint1 = IntCache.getIntCache(p_75904_3_ * p_75904_4_);

        for (int i1 = 0; i1 < p_75904_4_; ++i1)
        {
            for (int j1 = 0; j1 < p_75904_3_; ++j1)
            {
                this.initChunkSeed((long)(j1 + p_75904_1_), (long)(i1 + p_75904_2_));
                int k1 = aint[j1 + i1 * p_75904_3_];
                int l1 = (k1 & 3840) >> 8;
                k1 &= -3841;

                if (isBiomeOceanic(k1))
                {
                    aint1[j1 + i1 * p_75904_3_] = k1;
                }
                else if (k1 == BiomeGenBase.mushroomIsland.biomeID)
                {
                    aint1[j1 + i1 * p_75904_3_] = k1;
                }
                else if (k1 == 1)
                {
                    if (l1 > 0)
                    {
                        if (this.nextInt(3) == 0)
                        {
                            aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.mesaPlateau.biomeID;
                        }
                        else
                        {
                            aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.mesaPlateau_F.biomeID;
                        }
                    }
                    else
                    {
                        aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.DESERT).biome.biomeID;
                    }
                }
                else if (k1 == 2)
                {
                    if (l1 > 0)
                    {
                        aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.jungle.biomeID;
                    }
                    else
                    {
                        aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.WARM).biome.biomeID;
                    }
                }
                else if (k1 == 3)
                {
                    if (l1 > 0)
                    {
                        aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.megaTaiga.biomeID;
                    }
                    else
                    {
                        aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.COOL).biome.biomeID;
                    }
                }
                else if (k1 == 4)
                {
                    aint1[j1 + i1 * p_75904_3_] = getWeightedBiomeEntry(BiomeManager.BiomeType.ICY).biome.biomeID;
                }
                else
                {
                    aint1[j1 + i1 * p_75904_3_] = BiomeGenBase.mushroomIsland.biomeID;
                }
            }
        }

        return aint1;
    }
    
    protected BiomeEntry getWeightedBiomeEntry(BiomeManager.BiomeType type)
    {
        List<BiomeEntry> biomeList = biomes[type.ordinal()];
        int totalWeight = WeightedRandom.getTotalWeight(biomeList);
        int weight = BiomeManager.isTypeListModded(type)?nextInt(totalWeight):nextInt(totalWeight / 10) * 10;
        return (BiomeEntry)WeightedRandom.getItem(biomeList, weight);
    }
}

 

Is there a way to remove biomes or make my custom Biome more frequent if everything is okay with the code?

Link to comment
Share on other sites

that par1 is actually the biome ID, you gave it 10, which has already a biome called "Frozen Ocean". It's not generated anywhere thus you can't find your biome.

 

Basically anything below 40 and some above 127 is used by Minecraft, so revert your "solution" (which shouldn't work but meh) and give it an unused ID.

 

 

Here's a list of used MC ID's

http://minecraft.gamepedia.com/Biome

 

I also recommend you to have the ID as a config option, so people can change it when they have Biome ID conflicts.

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

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 created a custom entity that extends "TamableAnimal", but I am wanting to have it spawn in the ocean. I have it spawning right now, but it spawns way too frequently even with weight set to 1. I am guessing it is because it is rolling in the spawn pool of land animals since TameableAnimal extends Animal and is different than WaterAnimal, and since no land animals spawn in the ocean it just fills every inch up with my custom entity. I have followed basic tutorials for spawning entities with Forge, but I feel like I am missing something about how to change what spawn pool this custom entity ends up in. Is it possible to change that or do I need to refactor it to be based off of WaterAnimal to get those spawn? My biome modifier JSON file: { "type": "forge:add_spawns", "biomes": "#minecraft:is_ocean", "spawners": { "type": "darwinsmysticalmounts:water_wyvern", "weight": 20, "minCount": 1, "maxCount": 1 } } My client event: event.register(ModEntityTypes.WATER_WYVERN.get(), SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, WaterWyvernEntity::checkWaterWyvernSpawnRules, SpawnPlacementRegisterEvent.Operation.REPLACE); And the actual custom spawn rule that makes it spawn in the water: public static boolean checkWaterWyvernSpawnRules(EntityType<WaterWyvernEntity> pAnimal, LevelAccessor pLevel, MobSpawnType pSpawnType, BlockPos pPos, RandomSource pRandom) { return pPos.getY() > pLevel.getSeaLevel() - 16 && pLevel.getFluidState(pPos.below()).is(FluidTags.WATER); }  
    • Starting today, I am unable to load my modded minecraft world. Forge crash log initially said it was a specific mod called Doggy Talents, which I disabled. Then it blamed JEI, and when that was disabled it blamed another mod so I assume it's something more than a specific mod. Minecraft launcher log claims "Exit Code 1". Nothing had changed since last night when it was working fine Forge Log: https://pastebin.com/S1GiBGVJ Client Log: https://pastebin.com/aLwuGUNL  
    • “Courage doesn’t mean you don’t get afraid. Courage means you don’t let fear stop you.” This mantra has been my guiding light throughout my life as a military doctor. After years of serving my country, I dedicated myself to healing others and making a positive impact on the lives of my fellow soldiers and their families. My commitment to service extended beyond the battlefield; I was determined to secure a stable future for my own family. With my hard-earned savings, I invested $470,000 in cryptocurrency, believing it would provide the financial foundation we needed. However, one fateful day during a particularly intense deployment, everything changed. While treating a patient amid an attack, my phone slipped from my hands and crashed to the ground. In the chaos, I realized I hadn’t backed up my cryptocurrency wallet recovery phrase, thinking I had plenty of time to do so later. When I attempted to access my funds that night, panic surged through me—I could no longer access my wallet. My dreams of financial security and stability were vanishing right before my eyes. The betrayal I felt was profound. It was as if I had not only failed myself but also my family, who relied on me to provide for them. Each day at the hospital reminded me of my commitment to healing, and now I was left feeling helpless in the face of adversity. I feared losing everything I had worked so hard for, and the emotional toll was unbearable.  In my desperation, I reached out to trusted colleagues and friends. One fellow veteran mentioned TECH CYBER FORCE RECOVERY Tool, a reputable team known for their expertise in recovering lost digital assets. REACH OUT TO THEM WWW.techcyberforcerecovery.info https://wa.me/message/BJPIMH5UTNLKL1 
    • I am using AMD, yes. I downloaded the website's drivers and am still having the issue. I also used the Cleanup Utility just in case. 
    • I can't figure out how to upload it any other way, so I made a google drive link; hopefully that works https://drive.google.com/file/d/165vmAMoLtb55wzwYHh3vBfHlJ-Wrgm_y/view?usp=sharing
  • Topics

×
×
  • Create New...

Important Information

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