mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
the almighty perlin noise
This commit is contained in:
parent
456a7251d4
commit
205742eda5
@ -131,6 +131,7 @@ public class ToolRecipes {
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModBlocks.geiger), new Object[] { ModItems.geiger_counter });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.digamma_diagnostic), new Object[] { ModItems.geiger_counter, PO210.billet(), ASBESTOS.ingot() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pollution_detector, 1), new Object[] { "SFS", "SCS", " S ", 'S', STEEL.plate(), 'F', ModItems.filter_coal, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ore_density_scanner, 1), new Object[] { "VVV", "CSC", "GGG", " S ", 'V', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER_CHASSIS), 'G', GOLD.plate() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', ANY_PLASTIC.ingot(), 'S', STEEL.plate() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.coltan_tool, 1), new Object[] { "ACA", "CXC", "ACA", 'A', ALLOY.ingot(), 'C', CINNABAR.crystal(), 'X', Items.compass });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.reacher, 1), new Object[] { "BIB", "P P", "B B", 'B', W.bolt(), 'I', W.ingot(), 'P', ANY_RUBBER.ingot() });
|
||||
|
||||
@ -57,10 +57,10 @@ public class ArcFurnaceRecipes extends SerializableRecipe {
|
||||
for(BedrockOreType type : BedrockOreType.values()) {
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2)));
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 3)));
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2)));
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 3)));
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 2)));
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_ARC, type, 3)));
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type, 2)));
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_ARC, type, 3)));
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 2)));
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 3)));
|
||||
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(5)), ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(2))));
|
||||
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(2)), ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(5))));
|
||||
|
||||
@ -213,6 +213,7 @@ public class ModItems {
|
||||
public static Item ore_seared;
|
||||
//public static Item ore_radcleaned;
|
||||
public static Item ore_enriched; //final stage
|
||||
public static Item bedrock_ore_base;
|
||||
public static Item bedrock_ore;
|
||||
|
||||
public static Item billet_uranium;
|
||||
@ -1262,6 +1263,7 @@ public class ModItems {
|
||||
public static Item geiger_counter;
|
||||
public static Item digamma_diagnostic;
|
||||
public static Item pollution_detector;
|
||||
public static Item ore_density_scanner;
|
||||
public static Item survey_scanner;
|
||||
public static Item mirror_tool;
|
||||
public static Item rbmk_tool;
|
||||
@ -2721,7 +2723,8 @@ public class ModItems {
|
||||
ore_seared = new ItemBedrockOre().setUnlocalizedName("ore_seared").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_seared");
|
||||
//ore_radcleaned = new ItemBedrockOre().setUnlocalizedName("ore_radcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_radcleaned");
|
||||
ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched");
|
||||
bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_base");
|
||||
bedrock_ore_base = new ItemBedrockOreBase().setUnlocalizedName("bedrock_ore_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new");
|
||||
bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new");
|
||||
|
||||
ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium");
|
||||
ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium");
|
||||
@ -4602,6 +4605,7 @@ public class ModItems {
|
||||
geiger_counter = new ItemGeigerCounter().setUnlocalizedName("geiger_counter").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":geiger_counter");
|
||||
digamma_diagnostic = new ItemDigammaDiagnostic().setUnlocalizedName("digamma_diagnostic").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":digamma_diagnostic");
|
||||
pollution_detector = new ItemPollutionDetector().setUnlocalizedName("pollution_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pollution_detector");
|
||||
ore_density_scanner = new ItemOreDensityScanner().setUnlocalizedName("ore_density_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":ore_density_scanner");
|
||||
survey_scanner = new ItemSurveyScanner().setUnlocalizedName("survey_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":survey_scanner");
|
||||
mirror_tool = new ItemMirrorTool().setUnlocalizedName("mirror_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":mirror_tool");
|
||||
rbmk_tool = new ItemRBMKTool().setUnlocalizedName("rbmk_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":rbmk_tool");
|
||||
@ -5939,9 +5943,9 @@ public class ModItems {
|
||||
GameRegistry.registerItem(ore_nitrocrystalline, ore_nitrocrystalline.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ore_deepcleaned, ore_deepcleaned.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ore_seared, ore_seared.getUnlocalizedName());
|
||||
//GameRegistry.registerItem(ore_radcleaned, ore_radcleaned.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ore_enriched, ore_enriched.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ore_byproduct, ore_byproduct.getUnlocalizedName());
|
||||
GameRegistry.registerItem(bedrock_ore_base, bedrock_ore_base.getUnlocalizedName());
|
||||
GameRegistry.registerItem(bedrock_ore, bedrock_ore.getUnlocalizedName());
|
||||
|
||||
//Crystals
|
||||
@ -6845,6 +6849,7 @@ public class ModItems {
|
||||
GameRegistry.registerItem(linker, linker.getUnlocalizedName());
|
||||
GameRegistry.registerItem(reactor_sensor, reactor_sensor.getUnlocalizedName());
|
||||
GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName());
|
||||
GameRegistry.registerItem(ore_density_scanner, ore_density_scanner.getUnlocalizedName());
|
||||
GameRegistry.registerItem(survey_scanner, survey_scanner.getUnlocalizedName());
|
||||
GameRegistry.registerItem(mirror_tool, mirror_tool.getUnlocalizedName());
|
||||
GameRegistry.registerItem(rbmk_tool, rbmk_tool.getUnlocalizedName());
|
||||
|
||||
57
src/main/java/com/hbm/items/special/ItemBedrockOreBase.java
Normal file
57
src/main/java/com/hbm/items/special/ItemBedrockOreBase.java
Normal file
@ -0,0 +1,57 @@
|
||||
package com.hbm.items.special;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType;
|
||||
import com.hbm.items.tool.ItemOreDensityScanner;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.world.gen.NoiseGeneratorPerlin;
|
||||
|
||||
public class ItemBedrockOreBase extends Item {
|
||||
|
||||
public static double getOreAmount(ItemStack stack, BedrockOreType type) {
|
||||
if(!stack.hasTagCompound()) return 0;
|
||||
NBTTagCompound data = stack.getTagCompound();
|
||||
return data.getDouble(type.suffix);
|
||||
}
|
||||
|
||||
public static void setOreAmount(ItemStack stack, int x, int z) {
|
||||
if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound();
|
||||
NBTTagCompound data = stack.getTagCompound();
|
||||
|
||||
for(BedrockOreType type : BedrockOreType.values()) {
|
||||
data.setDouble(type.suffix, getOreLevel(x, z, type));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
||||
|
||||
for(BedrockOreType type : BedrockOreType.values()) {
|
||||
double amount = this.getOreAmount(stack, type);
|
||||
String typeName = StatCollector.translateToLocalFormatted("item.bedrock_ore.type." + type.suffix + ".name");
|
||||
list.add(typeName + ": " + ((int) (amount * 100)) / 100D + " (" + ItemOreDensityScanner.translateDensity(amount) + EnumChatFormatting.RESET + ")");
|
||||
}
|
||||
}
|
||||
|
||||
private static NoiseGeneratorPerlin[] ores = new NoiseGeneratorPerlin[BedrockOreType.values().length];
|
||||
private static NoiseGeneratorPerlin level;
|
||||
|
||||
public static double getOreLevel(int x, int z, BedrockOreType type) {
|
||||
|
||||
if(level == null) level = new NoiseGeneratorPerlin(new Random(2114043), 4);
|
||||
if(ores[type.ordinal()] == null) ores[type.ordinal()] = new NoiseGeneratorPerlin(new Random(2082127 + type.ordinal()), 4);
|
||||
|
||||
double scale = 0.01D;
|
||||
|
||||
return MathHelper.clamp_double(Math.abs(level.func_151601_a(x * scale, z * scale) * ores[type.ordinal()].func_151601_a(x * scale, z * scale)) * 0.05, 0, 2);
|
||||
}
|
||||
}
|
||||
@ -32,6 +32,11 @@ import net.minecraftforge.oredict.OreDictionary;
|
||||
public class ItemBedrockOreNew extends Item {
|
||||
|
||||
public IIcon[] icons = new IIcon[BedrockOreType.values().length * BedrockOreGrade.values().length];
|
||||
|
||||
public ItemBedrockOreNew() {
|
||||
this.setHasSubtypes(true);
|
||||
this.setMaxDamage(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
|
||||
42
src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java
Normal file
42
src/main/java/com/hbm/items/tool/ItemOreDensityScanner.java
Normal file
@ -0,0 +1,42 @@
|
||||
package com.hbm.items.tool;
|
||||
|
||||
import com.hbm.items.special.ItemBedrockOreBase;
|
||||
import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.PlayerInformPacket;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemOreDensityScanner extends Item {
|
||||
|
||||
@Override
|
||||
public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) {
|
||||
|
||||
if(!(entity instanceof EntityPlayerMP) || world.getTotalWorldTime() % 5 != 0) return;
|
||||
|
||||
EntityPlayerMP player = (EntityPlayerMP) entity;
|
||||
|
||||
for(BedrockOreType type : BedrockOreType.values()) {
|
||||
double level = ItemBedrockOreBase.getOreLevel((int) Math.floor(player.posX), (int) Math.floor(player.posZ), type);
|
||||
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(
|
||||
StatCollector.translateToLocalFormatted("item.bedrock_ore.type." + type.suffix + ".name") + ": " + ((int) (level * 100) / 100D) + " (" + translateDensity(level) + EnumChatFormatting.RESET + ")",
|
||||
777 + type.ordinal(), 4000), player);
|
||||
}
|
||||
}
|
||||
|
||||
public static String translateDensity(double density) {
|
||||
if(density <= 0.1) return EnumChatFormatting.DARK_RED + "Very poor";
|
||||
if(density <= 0.35) return EnumChatFormatting.RED + "Poor";
|
||||
if(density <= 0.75) return EnumChatFormatting.GOLD + "Low";
|
||||
if(density >= 1.9) return EnumChatFormatting.AQUA + "Excellent";
|
||||
if(density >= 1.65) return EnumChatFormatting.BLUE + "Very high";
|
||||
if(density >= 1.25) return EnumChatFormatting.GREEN + "High";
|
||||
return EnumChatFormatting.YELLOW + "Moderate";
|
||||
}
|
||||
}
|
||||
@ -51,6 +51,8 @@ import com.hbm.items.armor.ItemArmorMod;
|
||||
import com.hbm.items.armor.ItemModRevive;
|
||||
import com.hbm.items.armor.ItemModShackles;
|
||||
import com.hbm.items.food.ItemConserve.EnumFoodType;
|
||||
import com.hbm.items.special.ItemBedrockOreBase;
|
||||
import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType;
|
||||
import com.hbm.items.tool.ItemGuideBook.BookType;
|
||||
import com.hbm.items.weapon.ItemGunBase;
|
||||
import com.hbm.lib.HbmCollection;
|
||||
@ -121,6 +123,7 @@ import net.minecraft.util.EntityDamageSource;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.FoodStats;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.FakePlayer;
|
||||
@ -1088,6 +1091,13 @@ public class ModEventHandler {
|
||||
}
|
||||
}
|
||||
|
||||
// OREDBG
|
||||
/*if(!event.player.worldObj.isRemote) {
|
||||
for(BedrockOreType type : BedrockOreType.values()) {
|
||||
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(StatCollector.translateToLocalFormatted("item.bedrock_ore.type." + type.suffix + ".name") + ": " + ((int) (ItemBedrockOreBase.getOreLevel((int) Math.floor(player.posX), (int) Math.floor(player.posZ), type) * 100) / 100D), 777 + type.ordinal()), (EntityPlayerMP) player);
|
||||
}
|
||||
}*/
|
||||
|
||||
// PRISMDBG
|
||||
/*if(!event.player.worldObj.isRemote) {
|
||||
ChunkRadiationHandlerPRISM prism = (ChunkRadiationHandlerPRISM) ChunkRadiationManager.proxy;
|
||||
|
||||
@ -22,6 +22,7 @@ import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemDrillbit;
|
||||
import com.hbm.items.machine.ItemDrillbit.EnumDrillType;
|
||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||
import com.hbm.items.special.ItemBedrockOreBase;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||
@ -326,6 +327,10 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements
|
||||
ItemStack stack = ore.resource.copy();
|
||||
List<ItemStack> stacks = new ArrayList();
|
||||
stacks.add(stack);
|
||||
|
||||
if(stack.getItem() == ModItems.bedrock_ore_base) {
|
||||
ItemBedrockOreBase.setOreAmount(stack, pos.getX(), pos.getZ());
|
||||
}
|
||||
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.1 KiB |
BIN
src/main/resources/assets/hbm/textures/items/bedrock_ore_new.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/bedrock_ore_new.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 552 B |
Binary file not shown.
|
After Width: | Height: | Size: 310 B |
Binary file not shown.
|
After Width: | Height: | Size: 307 B |
Binary file not shown.
|
After Width: | Height: | Size: 345 B |
Loading…
x
Reference in New Issue
Block a user