forgot some files

This commit is contained in:
Boblet 2022-10-19 16:58:06 +02:00
parent f235f1445f
commit ed6ce927a2
7 changed files with 137 additions and 14 deletions

View File

@ -930,6 +930,7 @@ public class ModBlocks {
public static Block machine_teleporter;
public static final int guiID_machine_teleporter = 36;
public static Block teleanchor;
public static Block field_disturber;
public static Block machine_reix_mainframe;
public static final int guiID_machine_reix_mainframe = 38;
@ -1928,6 +1929,7 @@ public class ModBlocks {
machine_teleporter = new MachineTeleporter(Material.iron).setBlockName("machine_teleporter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
teleanchor = new MachineTeleanchor().setBlockName("teleanchor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
field_disturber = new MachineFieldDisturber().setBlockName("field_disturber").setHardness(5.0F).setResistance(200.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":field_disturber");
machine_rtg_grey = new MachineRTG(Material.iron).setBlockName("machine_rtg_grey").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg");
//machine_rtg_red = new MachineRTG(Material.iron).setBlockName("machine_rtg_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
@ -3232,6 +3234,7 @@ public class ModBlocks {
GameRegistry.registerBlock(machine_combine_factory, machine_combine_factory.getUnlocalizedName());
GameRegistry.registerBlock(machine_teleporter, machine_teleporter.getUnlocalizedName());
GameRegistry.registerBlock(teleanchor, teleanchor.getUnlocalizedName());
GameRegistry.registerBlock(field_disturber, field_disturber.getUnlocalizedName());
GameRegistry.registerBlock(machine_satlinker, machine_satlinker.getUnlocalizedName());
GameRegistry.registerBlock(machine_keyforge, machine_keyforge.getUnlocalizedName());
GameRegistry.registerBlock(machine_armor_table, machine_armor_table.getUnlocalizedName());

View File

@ -0,0 +1,36 @@
package com.hbm.blocks.machine;
import java.util.Random;
import com.hbm.entity.logic.EntityNukeExplosionMK3;
import com.hbm.entity.logic.EntityNukeExplosionMK3.ATEntry;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.world.World;
public class MachineFieldDisturber extends Block {
public MachineFieldDisturber() {
super(Material.iron);
}
@Override
public int tickRate(World world) {
return 10;
}
@Override
public void onBlockAdded(World world, int x, int y, int z) {
if(!world.isRemote) world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world));
}
@Override
public void updateTick(World world, int x, int y, int z, Random rand) {
if(!world.isRemote) {
world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world));
EntityNukeExplosionMK3.at.put(new ATEntry(world.provider.dimensionId, x, y, z), world.getTotalWorldTime() + 100);
}
}
}

View File

@ -1,8 +1,11 @@
package com.hbm.entity.logic;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import org.apache.logging.log4j.Level;
import com.hbm.blocks.ModBlocks;
import com.hbm.config.BombConfig;
import com.hbm.config.GeneralConfig;
import com.hbm.entity.effect.EntityFalloutRain;
@ -13,10 +16,14 @@ import com.hbm.explosion.ExplosionNukeGeneric;
import com.hbm.explosion.ExplosionSolinium;
import com.hbm.interfaces.Spaghetti;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
@Spaghetti("why???")
@ -184,15 +191,17 @@ public class EntityNukeExplosionMK3 extends Entity {
//this.worldObj.getWorldInfo().setRaining(true);
did2 = true;
}
}
age++;
}
}
}
age++;
}
@Override
protected void entityInit() { }
public static HashMap<ATEntry, Long> at = new HashMap();
public static EntityNukeExplosionMK3 statFacFleija(World world, double x, double y, double z, int range) {
EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(world);
@ -204,18 +213,45 @@ public class EntityNukeExplosionMK3 extends Entity {
entity.coefficient = 1.0F;
entity.waste = false;
if(range > 50) {
Iterator<Entry<ATEntry, Long>> it = at.entrySet().iterator();
while(it.hasNext()) {
for(int i = -1; i <= 1; i++) {
for(int j = -1; j <= 1; j++) {
for(int k = (int)y + 15; k > 5; k--) {
Entry<ATEntry, Long> next = it.next();
if(next.getValue() < world.getTotalWorldTime()) {
it.remove();
continue;
}
ATEntry entry = next.getKey();
if(entry.dim != world.provider.dimensionId) continue;
Vec3 vec = Vec3.createVectorHelper(x - entry.x, y - entry.y, z - entry.z);
if(vec.lengthVector() < 300) {
entity.setDead();
/* just to make sure */
if(!world.isRemote) {
for(int i = 0; i < 2; i++) {
double ix = i == 0 ? x : (entry.x + 0.5);
double iy = i == 0 ? y : (entry.y + 0.5);
double iz = i == 0 ? z : (entry.z + 0.5);
if(world.getBlock((int)x + i * 15, k, (int)z + j * 15) == ModBlocks.stone_porous) {
entity.destructionRange = 50;
return entity;
}
world.playSoundEffect(ix, iy, iz, "hbm:entity.ufoBlast", 15.0F, 0.7F + world.rand.nextFloat() * 0.2F);
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "plasmablast");
data.setFloat("r", 0.0F);
data.setFloat("g", 0.75F);
data.setFloat("b", 1.0F);
data.setFloat("scale", 7.5F);
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, ix, iy, iz), new TargetPoint(entry.dim, ix, iy, iz, 150));
}
}
break;
}
}
@ -226,4 +262,49 @@ public class EntityNukeExplosionMK3 extends Entity {
this.extType = 1;
return this;
}
public static class ATEntry {
int dim;
int x;
int y;
int z;
public ATEntry(int dim, int x, int y, int z) {
this.dim = dim;
this.x = x;
this.y = y;
this.z = z;
}
@Override
public int hashCode() {
final int prime = 27644437;
int result = 1;
result = prime * result + dim;
result = prime * result + x;
result = prime * result + y;
result = prime * result + z;
return result;
}
@Override
public boolean equals(Object obj) {
if(this == obj)
return true;
if(obj == null)
return false;
if(getClass() != obj.getClass())
return false;
ATEntry other = (ATEntry) obj;
if(dim != other.dim)
return false;
if(x != other.x)
return false;
if(y != other.y)
return false;
if(z != other.z)
return false;
return true;
}
}
}

View File

@ -910,6 +910,7 @@ public class CraftingManager {
addShapelessAuto(ItemBattery.getEmptyBattery(ModItems.anchor_remote), new Object[] { DIAMOND.gem(), ModItems.ducttape, ModItems.circuit_red_copper });
addRecipeAuto(new ItemStack(ModBlocks.teleanchor), new Object[] { "ODO", "EAE", "ODO", 'O', Blocks.obsidian, 'D', DIAMOND.gem(), 'E', ModItems.powder_magic, 'A', ModItems.gem_alexandrite });
addRecipeAuto(new ItemStack(ModBlocks.field_disturber), new Object[] { "ICI", "CAC", "ICI", 'I', STAR.ingot(), 'C', KEY_CIRCUIT_BISMUTH, 'A', ModItems.gem_alexandrite });
addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), KEY_TOOL_SCREWDRIVER, ModItems.ducttape, ModItems.armor_polish });
addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModBlocks.muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ });

View File

@ -3458,6 +3458,7 @@ tile.factory_titanium_furnace.name=Einfache Fabrikzugriffsluke
tile.factory_titanium_hull.name=Fabrikblock
tile.fallout.name=Fallout
tile.fence_metal.name=Maschendrahtzaun
tile.field_disturber.name=Hochenergiefeld-Jammer
tile.fire_digamma.name=Verweilendes Digamma
tile.fire_door.name=Brandschutztür
tile.fireworks.name=Feuerwerksbatterie

View File

@ -3896,6 +3896,7 @@ tile.factory_titanium_furnace.name=Basic Factory Access Hatch
tile.factory_titanium_hull.name=Factory Block
tile.fallout.name=Fallout
tile.fence_metal.name=Chainlink Fence
tile.field_disturber.name=High Energy Field Jammer
tile.fire_digamma.name=Lingering Digamma
tile.fire_door.name=Fire Door
tile.fireworks.name=Firework Battery

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B