Updating to 1.10 (wip)

Registration done, still not booting
This commit is contained in:
LemADEC 2016-08-08 02:20:14 +02:00
parent cc8ae40d78
commit da49c8fac8
53 changed files with 279 additions and 372 deletions

View file

@ -74,7 +74,7 @@ processResources
// skip source assets
exclude '**/*.pdn'
exclude '**/*.psd'
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
@ -82,7 +82,7 @@ processResources
// replace version and mcversion
expand 'version':project.version, 'mcversion':project.minecraft.version
}
// copy everything else, thats not the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'

View file

@ -9,7 +9,6 @@ import cr0s.warpdrive.block.forcefield.*;
import cr0s.warpdrive.block.hull.BlockHullStairs;
import cr0s.warpdrive.item.*;
import net.minecraft.block.Block;
import net.minecraft.block.BlockColored;
import net.minecraft.client.Minecraft;
import net.minecraft.command.ICommandSender;
import net.minecraft.creativetab.CreativeTabs;
@ -18,7 +17,6 @@ import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.item.ItemDye;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
@ -56,56 +54,33 @@ import cr0s.warpdrive.block.BlockChunkLoader;
import cr0s.warpdrive.block.BlockLaser;
import cr0s.warpdrive.block.BlockLaserMedium;
import cr0s.warpdrive.block.TileEntityAbstractChunkLoading;
import cr0s.warpdrive.block.TileEntityAirGenerator;
import cr0s.warpdrive.block.TileEntityChunkLoader;
import cr0s.warpdrive.block.TileEntityLaser;
import cr0s.warpdrive.block.TileEntityLaserMedium;
import cr0s.warpdrive.block.building.BlockShipScanner;
import cr0s.warpdrive.block.building.TileEntityShipScanner;
import cr0s.warpdrive.block.collection.BlockLaserTreeFarm;
import cr0s.warpdrive.block.collection.BlockMiningLaser;
import cr0s.warpdrive.block.collection.TileEntityLaserTreeFarm;
import cr0s.warpdrive.block.collection.TileEntityMiningLaser;
import cr0s.warpdrive.block.detection.BlockCamera;
import cr0s.warpdrive.block.detection.BlockCloakingCoil;
import cr0s.warpdrive.block.detection.BlockCloakingCore;
import cr0s.warpdrive.block.detection.BlockMonitor;
import cr0s.warpdrive.block.detection.BlockRadar;
import cr0s.warpdrive.block.detection.BlockWarpIsolation;
import cr0s.warpdrive.block.detection.TileEntityCamera;
import cr0s.warpdrive.block.detection.TileEntityCloakingCore;
import cr0s.warpdrive.block.detection.TileEntityMonitor;
import cr0s.warpdrive.block.detection.TileEntityRadar;
import cr0s.warpdrive.block.energy.BlockEnanReactorCore;
import cr0s.warpdrive.block.energy.BlockEnanReactorLaser;
import cr0s.warpdrive.block.energy.BlockEnergyBank;
import cr0s.warpdrive.block.energy.BlockIC2reactorLaserMonitor;
import cr0s.warpdrive.block.energy.TileEntityEnanReactorCore;
import cr0s.warpdrive.block.energy.TileEntityEnanReactorLaser;
import cr0s.warpdrive.block.energy.TileEntityEnergyBank;
import cr0s.warpdrive.block.energy.TileEntityIC2reactorLaserMonitor;
import cr0s.warpdrive.block.hull.BlockHullGlass;
import cr0s.warpdrive.block.hull.BlockHullPlain;
import cr0s.warpdrive.block.hull.ItemBlockHull;
import cr0s.warpdrive.block.movement.BlockLift;
import cr0s.warpdrive.block.movement.BlockShipController;
import cr0s.warpdrive.block.movement.BlockShipCore;
import cr0s.warpdrive.block.movement.BlockTransporter;
import cr0s.warpdrive.block.movement.TileEntityLift;
import cr0s.warpdrive.block.movement.TileEntityShipController;
import cr0s.warpdrive.block.movement.TileEntityShipCore;
import cr0s.warpdrive.block.movement.TileEntityTransporter;
import cr0s.warpdrive.block.passive.BlockAir;
import cr0s.warpdrive.block.passive.BlockDecorative;
import cr0s.warpdrive.block.passive.BlockGas;
import cr0s.warpdrive.block.passive.BlockHighlyAdvancedMachine;
import cr0s.warpdrive.block.passive.BlockIridium;
import cr0s.warpdrive.block.passive.BlockTransportBeacon;
import cr0s.warpdrive.block.passive.ItemBlockDecorative;
import cr0s.warpdrive.block.weapon.BlockLaserCamera;
import cr0s.warpdrive.block.weapon.BlockWeaponController;
import cr0s.warpdrive.block.weapon.TileEntityLaserCamera;
import cr0s.warpdrive.block.weapon.TileEntityWeaponController;
import cr0s.warpdrive.command.CommandDebug;
import cr0s.warpdrive.command.CommandEntity;
import cr0s.warpdrive.command.CommandGenerate;
@ -134,6 +109,7 @@ import cr0s.warpdrive.world.SpaceWorldGenerator;
public class WarpDrive implements LoadingCallback {
public static final String MODID = "WarpDrive";
public static final String VERSION = "@version@";
public static final String PREFIX = MODID + ":";
public static final boolean isDev = VERSION.equals("@" + "version" + "@") || VERSION.contains("-dev");
public static GameProfile gameProfile = new GameProfile(UUID.nameUUIDFromBytes("[WarpDrive]".getBytes()), "[WarpDrive]");
@ -246,194 +222,73 @@ public class WarpDrive implements LoadingCallback {
// open access to Block.blockHardness
fieldBlockHardness = WarpDrive.getField(Block.class, "blockHardness", "field_149782_v");
// building blocks
blockShipScanner = new BlockShipScanner("blockShipScanner");
// CORE CONTROLLER
blockShipController = new BlockShipController("blockShipController");
GameRegistry.registerTileEntity(TileEntityShipController.class, MODID + ":blockShipController");
// collection blocks
blockMiningLaser = new BlockMiningLaser("blockMiningLaser");
blockLaserTreeFarm = new BlockLaserTreeFarm("blockLaserTreeFarm");
// SHIP CORE
blockShipCore = new BlockShipCore();
// detection blocks
blockCamera = new BlockCamera("blockCamera");
blockCloakingCore = new BlockCloakingCore("blockCloakingCore");
blockCloakingCoil = new BlockCloakingCoil("blockCloakingCoil");
blockMonitor = new BlockMonitor("blockMonitor");
blockRadar = new BlockRadar("blockRadar");
blockWarpIsolation = new BlockWarpIsolation("blockWarpIsolation");
GameRegistry.registerBlock(blockShipCore, "blockShipCore");
GameRegistry.registerTileEntity(TileEntityShipCore.class, MODID + ":blockShipCore");
// energy blocks and items
blockEnanReactorCore = new BlockEnanReactorCore("blockEnanReactorCore");
blockEnanReactorLaser = new BlockEnanReactorLaser("blockEnanReactorLaser");
blockEnergyBank = new BlockEnergyBank("blockEnergyBank");
// RADAR
blockRadar = new BlockRadar();
GameRegistry.registerBlock(blockRadar, "blockRadar");
GameRegistry.registerTileEntity(TileEntityRadar.class, MODID + ":blockRadar");
// WARP ISOLATION
blockWarpIsolation = new BlockWarpIsolation();
GameRegistry.registerBlock(blockWarpIsolation, "blockWarpIsolation");
// AIR GENERATOR
blockAirGenerator = new BlockAirGenerator();
GameRegistry.registerBlock(blockAirGenerator, "blockAirGenerator");
GameRegistry.registerTileEntity(TileEntityAirGenerator.class, MODID + ":blockAirGenerator");
// AIR BLOCK
blockAir = new BlockAir();
GameRegistry.registerBlock(blockAir, "blockAir");
// GAS BLOCK
blockGas = new BlockGas();
GameRegistry.registerBlock(blockGas, "blockGas");
// LASER EMITTER
blockLaser = new BlockLaser();
GameRegistry.registerBlock(blockLaser, "blockLaser");
GameRegistry.registerTileEntity(TileEntityLaser.class, MODID + ":blockLaser");
// LASER EMITTER WITH CAMERA
blockLaserCamera = new BlockLaserCamera();
GameRegistry.registerBlock(blockLaserCamera, "blockLaserCamera");
GameRegistry.registerTileEntity(TileEntityLaserCamera.class, MODID + ":blockLaserCamera");
// LASER EMITTER WITH CAMERA
blockWeaponController = new BlockWeaponController();
GameRegistry.registerBlock(blockWeaponController, "blockWeaponController");
GameRegistry.registerTileEntity(TileEntityWeaponController.class, MODID + ":blockWeaponController");
// CAMERA
blockCamera = new BlockCamera();
GameRegistry.registerBlock(blockCamera, "blockCamera");
GameRegistry.registerTileEntity(TileEntityCamera.class, MODID + ":blockCamera");
// MONITOR
blockMonitor = new BlockMonitor();
GameRegistry.registerBlock(blockMonitor, "blockMonitor");
GameRegistry.registerTileEntity(TileEntityMonitor.class, MODID + ":blockMonitor");
// MINING LASER
blockMiningLaser = new BlockMiningLaser();
GameRegistry.registerBlock(blockMiningLaser, "blockMiningLaser");
GameRegistry.registerTileEntity(TileEntityMiningLaser.class, MODID + ":blockMiningLaser");
// LASER TREE FARM
blockLaserTreeFarm = new BlockLaserTreeFarm();
GameRegistry.registerBlock(blockLaserTreeFarm, "blockLaserTreeFarm");
GameRegistry.registerTileEntity(TileEntityLaserTreeFarm.class, MODID + ":blockLaserTreeFarm");
// LASER MEDIUM
blockLaserMedium = new BlockLaserMedium();
GameRegistry.registerBlock(blockLaserMedium, "blockLaserMedium");
GameRegistry.registerTileEntity(TileEntityLaserMedium.class, MODID + ":blockLaserMedium");
// LIFT
blockLift = new BlockLift();
GameRegistry.registerBlock(blockLift, "blockLift");
GameRegistry.registerTileEntity(TileEntityLift.class, MODID + ":blockLift");
// IRIDIUM BLOCK
blockIridium = new BlockIridium();
GameRegistry.registerBlock(blockIridium, "blockIridium");
// HIGHLY ADVANCED MACHINE BLOCK
blockHighlyAdvancedMachine = new BlockHighlyAdvancedMachine();
GameRegistry.registerBlock(blockHighlyAdvancedMachine, "blockHighlyAdvancedMachine");
// SHIP SCANNER
blockShipScanner = new BlockShipScanner();
GameRegistry.registerBlock(blockShipScanner, "blockShipScanner");
GameRegistry.registerTileEntity(TileEntityShipScanner.class, MODID + ":blockShipScanner");
// CLOAKING DEVICE CORE
blockCloakingCore = new BlockCloakingCore();
GameRegistry.registerBlock(blockCloakingCore, "blockCloakingCore");
GameRegistry.registerTileEntity(TileEntityCloakingCore.class, MODID + ":blockCloakingCore");
// CLOAKING DEVICE COIL
blockCloakingCoil = new BlockCloakingCoil();
GameRegistry.registerBlock(blockCloakingCoil, "blockCloakingCoil");
// TRANSPORTER
blockTransporter = new BlockTransporter();
GameRegistry.registerBlock(blockTransporter, "blockTransporter");
GameRegistry.registerTileEntity(TileEntityTransporter.class, MODID + ":blockTransporter");
// IC2 REACTOR LASER MONITOR
if (WarpDriveConfig.isIndustrialCraft2Loaded) {
blockIC2reactorLaserMonitor = new BlockIC2reactorLaserMonitor();
GameRegistry.registerBlock(blockIC2reactorLaserMonitor, "blockIC2reactorLaserMonitor");
GameRegistry.registerTileEntity(TileEntityIC2reactorLaserMonitor.class, MODID + ":blockIC2reactorLaserMonitor");
blockIC2reactorLaserMonitor = new BlockIC2reactorLaserMonitor("blockIC2reactorLaserMonitor");
itemIC2reactorLaserFocus = new ItemIC2reactorLaserFocus("itemIC2reactorLaserFocus");
}
// TRANSPORT BEACON
blockTransportBeacon = new BlockTransportBeacon();
// movement blocks
blockLift = new BlockLift("blockLift");
blockShipController = new BlockShipController("blockShipController");
blockShipCore = new BlockShipCore("blockShipCore");
blockTransporter = new BlockTransporter("blockTransporter");
GameRegistry.registerBlock(blockTransportBeacon, "blockTransportBeacon");
// passive blocks
blockAir = new BlockAir("blockAir");
blockDecorative = new BlockDecorative("blockDecorative");
blockGas = new BlockGas("blockGas");
blockHighlyAdvancedMachine = new BlockHighlyAdvancedMachine("blockHighlyAdvancedMachine");
blockIridium = new BlockIridium("blockIridium");
blockTransportBeacon = new BlockTransportBeacon("blockTransportBeacon");
// POWER REACTOR, LASER, STORE
blockEnanReactorCore = new BlockEnanReactorCore();
GameRegistry.registerBlock(blockEnanReactorCore, "blockEnanReactorCore");
GameRegistry.registerTileEntity(TileEntityEnanReactorCore.class, MODID + ":blockEnanReactorCore");
// weapon blocks
blockLaserCamera = new BlockLaserCamera("blockLaserCamera");
blockWeaponController = new BlockWeaponController("blockWeaponController");
blockEnanReactorLaser = new BlockEnanReactorLaser();
GameRegistry.registerBlock(blockEnanReactorLaser, "blockEnanReactorLaser");
GameRegistry.registerTileEntity(TileEntityEnanReactorLaser.class, MODID + ":blockEnanReactorLaser");
// common blocks
blockAirGenerator = new BlockAirGenerator("blockAirGenerator");
blockChunkLoader = new BlockChunkLoader("blockChunkLoader");
blockLaser = new BlockLaser("blockLaser");
blockLaserMedium = new BlockLaserMedium("blockLaserMedium");
blockEnergyBank = new BlockEnergyBank();
GameRegistry.registerBlock(blockEnergyBank, "blockEnergyBank");
GameRegistry.registerTileEntity(TileEntityEnergyBank.class, MODID + ":blockEnergyBank");
// CHUNK LOADER
blockChunkLoader = new BlockChunkLoader();
GameRegistry.registerBlock(blockChunkLoader, "blockChunkLoader");
GameRegistry.registerTileEntity(TileEntityChunkLoader.class, MODID + ":blockChunkLoader");
// FORCE FIELD BLOCKS
// force field blocks and items
blockForceFields = new Block[3];
blockForceFieldProjectors = new Block[3];
blockForceFieldRelays = new Block[3];
for(byte tier = 1; tier <= 3; tier++) {
int index = tier - 1;
// FORCE FIELD
blockForceFields[index] = new BlockForceField(tier);
GameRegistry.registerBlock(blockForceFields[index], "blockForceField" + tier);
GameRegistry.registerTileEntity(TileEntityForceField.class, MODID + ":blockForceField" + tier);
// FORCE FIELD PROJECTOR
blockForceFieldProjectors[index] = new BlockForceFieldProjector(tier);
GameRegistry.registerBlock(blockForceFieldProjectors[index], ItemBlockForceFieldProjector.class, "blockProjector" + tier);
GameRegistry.registerTileEntity(TileEntityForceFieldProjector.class, MODID + ":blockProjector" + tier);
// FORCE FIELD RELAY
blockForceFieldRelays[index] = new BlockForceFieldRelay(tier);
GameRegistry.registerBlock(blockForceFieldRelays[index], ItemBlockForceFieldRelay.class, "blockForceFieldRelay" + tier);
GameRegistry.registerTileEntity(TileEntityForceFieldRelay.class, MODID + ":blockForceFieldRelay" + tier);
blockForceFields[index] = new BlockForceField("blockForceField" + tier, tier);
blockForceFieldProjectors[index] = new BlockForceFieldProjector("blockProjector" + tier, tier);
blockForceFieldRelays[index] = new BlockForceFieldRelay("blockForceFieldRelay" + tier, tier);
}
/* TODO
// SECURITY STATION
blockSecurityStation = new BlockSecurityStation();
GameRegistry.registerBlock(blockSecurityStation, "blockSecurityStation");
GameRegistry.registerTileEntity(TileEntitySecurityStation.class, MODID + ":blockSecurityStation");
/* @TODO security station
blockSecurityStation = new BlockSecurityStation("blockSecurityStation");
*/
// DECORATIVE
blockDecorative = new BlockDecorative("blockDecorative");
GameRegistry.registerBlock(blockDecorative, ItemBlockDecorative.class, "blockDecorative");
itemForceFieldShape = new ItemForceFieldShape("itemForceFieldShape");
itemForceFieldUpgrade = new ItemForceFieldUpgrade("itemForceFieldUpgrade");
// HULL BLOCKS
// hull blocks
blockHulls_plain = new Block[3];
blockHulls_glass = new Block[3];
blockHulls_stairs = new Block[3][16];
@ -443,49 +298,25 @@ public class WarpDrive implements LoadingCallback {
int index = tier - 1;
blockHulls_plain[index] = new BlockHullPlain("blockHull" + tier + "_plain", tier);
blockHulls_glass[index] = new BlockHullGlass("blockHull" + tier + "_plain", tier);
GameRegistry.registerBlock(blockHulls_plain[index], ItemBlockHull.class, "blockHull" + tier + "_plain");
GameRegistry.registerBlock(blockHulls_glass[index], ItemBlockHull.class, "blockHull" + tier + "_glass");
for (EnumDyeColor enumDyeColor : EnumDyeColor.values()) {
blockHulls_stairs[index][enumDyeColor.getMetadata()] = new BlockHullStairs(blockHulls_plain[index].getStateFromMeta(enumDyeColor.getMetadata()), tier);
GameRegistry.registerBlock(blockHulls_stairs[index][enumDyeColor.getMetadata()], ItemBlockHull.class, "blockHull" + tier + "_stairs_" + enumDyeColor.getName());
blockHulls_stairs[index][enumDyeColor.getMetadata()] = new BlockHullStairs("blockHull" + tier + "_stairs_" + enumDyeColor.getName(), blockHulls_plain[index].getStateFromMeta(enumDyeColor.getMetadata()), tier);
}
}
// REACTOR LASER FOCUS
if (WarpDriveConfig.isIndustrialCraft2Loaded) {
itemIC2reactorLaserFocus = new ItemIC2reactorLaserFocus();
GameRegistry.registerItem(itemIC2reactorLaserFocus, "itemIC2reactorLaserFocus");
}
// COMPONENT ITEMS
itemComponent = new ItemComponent();
GameRegistry.registerItem(itemComponent, "itemComponent");
// generic items
itemComponent = new ItemComponent("itemComponent");
itemCrystalToken = new ItemCrystalToken("itemCrystalToken");
itemHelmet = new ItemHelmet(armorMaterial, EntityEquipmentSlot.HEAD);
GameRegistry.registerItem(itemHelmet, "itemHelmet");
itemAirCanisterFull = new ItemAirCanisterFull();
GameRegistry.registerItem(itemAirCanisterFull, "itemAirCanisterFull");
itemHelmet = new ItemHelmet("itemHelmet", armorMaterial, EntityEquipmentSlot.HEAD);
itemAirCanisterFull = new ItemAirCanisterFull("itemAirCanisterFull");
if (WarpDriveConfig.RECIPES_ENABLE_VANILLA) {
itemUpgrade = new ItemUpgrade();
GameRegistry.registerItem(itemUpgrade, "itemUpgrade");
itemUpgrade = new ItemUpgrade("itemUpgrade");
}
// TOOL ITEMS
itemTuningRod = new ItemTuningFork();
GameRegistry.registerItem(itemTuningRod, "itemTuningRod");
// FORCE FIELD UPGRADES
itemForceFieldShape = new ItemForceFieldShape();
GameRegistry.registerItem(itemForceFieldShape, "itemForceFieldShape");
itemForceFieldUpgrade = new ItemForceFieldUpgrade();
GameRegistry.registerItem(itemForceFieldUpgrade, "itemForceFieldUpgrade");
// DAMAGE SOURCES
// tool items
itemTuningRod = new ItemTuningFork("itemTuningRod");
// damage sources
damageAsphyxia = new DamageAsphyxia();
damageCold = new DamageCold();
damageLaser = new DamageLaser();
@ -493,10 +324,13 @@ public class WarpDrive implements LoadingCallback {
damageTeleportation = new DamageTeleportation();
damageWarm = new DamageWarm();
// entities
proxy.registerEntities();
// chunk loading
ForgeChunkManager.setForcedChunkLoadingCallback(instance, instance);
// world generation
spaceWorldGenerator = new SpaceWorldGenerator();
GameRegistry.registerWorldGenerator(spaceWorldGenerator, 0);
hyperSpaceWorldGenerator = new HyperSpaceWorldGenerator();

View file

@ -1,6 +1,7 @@
package cr0s.warpdrive.api;
import cr0s.warpdrive.data.Vector3;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.DamageSource;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
@ -9,15 +10,15 @@ public interface IDamageReceiver {
/**
* Return the block hardness to use for damage resolution.
* Useful for blocks that are unbreakable to normal tools like forcefields.
* Useful for blocks that are unbreakable to normal tools like force fields.
*/
float getBlockHardness(World world, final BlockPos blockPos,
float getBlockHardness(IBlockState blockState, World world, final BlockPos blockPos,
final DamageSource damageSource, final int damageParameter, final Vector3 damageDirection, final int damageLevel);
/**
* Resolve damage applied to a certain level at specific coordinates.
* Returns the remaining damage level or 0 if it was fully absorbed.
*/
int applyDamage(World world, final BlockPos blockPos,
final DamageSource damageSource, final int damageParameter, final Vector3 damageDirection, final int damageLevel);
int applyDamage(IBlockState blockState, World world, final BlockPos blockPos,
final DamageSource damageSource, final int damageParameter, final Vector3 damageDirection, final int damageLevel);
}

View file

@ -22,6 +22,8 @@ import net.minecraft.world.World;
import cr0s.warpdrive.WarpDrive;
import cr0s.warpdrive.api.IBlockUpdateDetector;
import javax.annotation.Nonnull;
@Optional.InterfaceList({
@Optional.Interface(iface = "defense.api.IEMPBlock", modid = "DefenseTech")
})
@ -114,21 +116,25 @@ public abstract class BlockAbstractContainer extends BlockContainer implements I
world.setBlockToAir(blockPos);
super.dropBlockAsItemWithChance(world, blockPos, blockState, chance, fortune);
}
public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos blockPos, EntityPlayer entityPlayer) {
@Nonnull
@Override
public ItemStack getPickBlock(@Nonnull IBlockState state, RayTraceResult target, @Nonnull World world, @Nonnull BlockPos blockPos, EntityPlayer entityPlayer) {
ItemStack itemStack = super.getPickBlock(state, target, world, blockPos, entityPlayer);
TileEntity tileEntity = world.getTileEntity(blockPos);
NBTTagCompound nbtTagCompound = new NBTTagCompound();
tileEntity.writeToNBT(nbtTagCompound);
nbtTagCompound.removeTag("x");
nbtTagCompound.removeTag("y");
nbtTagCompound.removeTag("z");
itemStack.setTagCompound(nbtTagCompound);
if (tileEntity != null) {
NBTTagCompound nbtTagCompound = new NBTTagCompound();
tileEntity.writeToNBT(nbtTagCompound);
nbtTagCompound.removeTag("x");
nbtTagCompound.removeTag("y");
nbtTagCompound.removeTag("z");
itemStack.setTagCompound(nbtTagCompound);
}
return itemStack;
}
@Override
public boolean rotateBlock(World world, BlockPos blockPos, EnumFacing axis) {
public boolean rotateBlock(World world, @Nonnull BlockPos blockPos, EnumFacing axis) {
world.setBlockState(blockPos, getStateFromMeta(axis.ordinal()), 3);
return true;
}
@ -165,6 +171,7 @@ public abstract class BlockAbstractContainer extends BlockContainer implements I
}
/**/
@SuppressWarnings("deprecation")
@Override
public void neighborChanged(IBlockState blockState, World world, BlockPos blockPos, Block block) {
super.neighborChanged(blockState, world, blockPos, block);

View file

@ -28,10 +28,12 @@ public class BlockAirGenerator extends BlockAbstractContainer {
private static final int ICON_BOTTOM = 1;
private static final int ICON_SIDE_ACTIVATED = 2;
public BlockAirGenerator() {
public BlockAirGenerator(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.machines.AirGenerator");
setUnlocalizedName("warpdrive.machines.AirGenerator");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityAirGenerator.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -1,5 +1,6 @@
package cr0s.warpdrive.block;
import cr0s.warpdrive.WarpDrive;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
@ -9,12 +10,14 @@ import javax.annotation.Nonnull;
public class BlockChunkLoader extends BlockAbstractContainer {
public BlockChunkLoader() {
public BlockChunkLoader(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.machines.ChunkLoader");
setUnlocalizedName("warpdrive.machines.ChunkLoader");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityChunkLoader.class, WarpDrive.PREFIX + registryName);
}
@Nonnull
@Override
public TileEntity createNewTileEntity(@Nonnull World world, int metadata) {

View file

@ -21,12 +21,14 @@ public class BlockLaser extends BlockAbstractContainer {
private static final int ICON_SIDE = 0;
public BlockLaser() {
public BlockLaser(final String registryName) {
super(Material.IRON);
setHardness(50.0F);
setResistance(20.0F * 5 / 3);
setRegistryName("warpdrive.machines.Laser");
setUnlocalizedName("warpdrive.machines.Laser");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityLaser.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -18,10 +18,12 @@ import javax.annotation.Nullable;
public class BlockLaserMedium extends BlockAbstractContainer {
public BlockLaserMedium() {
public BlockLaserMedium(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.machines.LaserMedium");
setUnlocalizedName("warpdrive.machines.LaserMedium");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityLaserMedium.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -19,7 +19,8 @@ import java.util.List;
public class ItemBlockAbstractBase extends ItemBlock {
public ItemBlockAbstractBase(Block block) {
super(block); // sets field_150939_a to block
super(block);
setRegistryName(block.getRegistryName());
}
@Override

View file

@ -313,7 +313,7 @@ public class TileEntityLaser extends TileEntityAbstractLaser implements IBeamFre
}
}
if (blockState.getBlock() instanceof IDamageReceiver) {
hardness = ((IDamageReceiver) blockState.getBlock()).getBlockHardness(worldObj, blockHit.getBlockPos(),
hardness = ((IDamageReceiver) blockState.getBlock()).getBlockHardness(blockState, worldObj, blockHit.getBlockPos(),
WarpDrive.damageLaser, beamFrequency, vDirection, energy);
}
if (WarpDriveConfig.LOGGING_WEAPON) {
@ -397,7 +397,7 @@ public class TileEntityLaser extends TileEntityAbstractLaser implements IBeamFre
// apply custom damages
if (blockState.getBlock() instanceof IDamageReceiver) {
energy = ((IDamageReceiver)blockState.getBlock()).applyDamage(worldObj, blockHit.getBlockPos(),
energy = ((IDamageReceiver)blockState.getBlock()).applyDamage(blockState, worldObj, blockHit.getBlockPos(),
WarpDrive.damageLaser, beamFrequency, vDirection, energy);
if (WarpDriveConfig.LOGGING_WEAPON) {
WarpDrive.logger.info("IDamageReceiver damage applied, remaining energy is " + energy);

View file

@ -20,10 +20,12 @@ import javax.annotation.Nullable;
public class BlockShipScanner extends BlockAbstractContainer {
public BlockShipScanner() {
public BlockShipScanner(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.building.ShipScanner");
setUnlocalizedName("warpdrive.building.ShipScanner");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityShipScanner.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -29,10 +29,12 @@ public class BlockLaserTreeFarm extends BlockAbstractContainer {
private final static int ICON_BOTTOM = 7;
private final static int ICON_TOP = 8;
public BlockLaserTreeFarm() {
public BlockLaserTreeFarm(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.collection.LaserTreeFarm");
setUnlocalizedName("warpdrive.collection.LaserTreeFarm");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityLaserTreeFarm.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -27,10 +27,12 @@ public class BlockMiningLaser extends BlockAbstractContainer {
private final static int ICON_BOTTOM = 5;
private final static int ICON_TOP = 6;
public BlockMiningLaser() {
public BlockMiningLaser(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.collection.MiningLaser");
setUnlocalizedName("warpdrive.collection.MiningLaser");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityMiningLaser.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -22,10 +22,12 @@ public class BlockCamera extends BlockAbstractContainer {
private static final int ICON_SIDE = 0;
public BlockCamera() {
public BlockCamera(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.detection.Camera");
setUnlocalizedName("warpdrive.detection.Camera");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityCamera.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -11,12 +11,13 @@ import net.minecraftforge.fml.common.registry.GameRegistry;
public class BlockCloakingCoil extends Block {
public BlockCloakingCoil() {
public BlockCloakingCoil(final String registryName) {
super(Material.IRON);
setHardness(3.5F);
setSoundType(SoundType.METAL);
setUnlocalizedName("warpdrive.detection.CloakingCoil");
setRegistryName(registryName);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setRegistryName("warpdrive.detection.CloakingCoil");
GameRegistry.register(this);
}

View file

@ -23,10 +23,12 @@ import javax.annotation.Nullable;
public class BlockCloakingCore extends BlockAbstractContainer {
public BlockCloakingCore() {
public BlockCloakingCore(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.detection.CloakingCore");
setUnlocalizedName("warpdrive.detection.CloakingCore");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityCloakingCore.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -22,11 +22,13 @@ import javax.annotation.Nullable;
public class BlockMonitor extends BlockAbstractContainer {
public BlockMonitor() {
public BlockMonitor(final String registryName) {
super(Material.IRON);
isRotating = true;
setRegistryName("warpdrive.detection.Monitor");
setUnlocalizedName("warpdrive.detection.Monitor");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityMonitor.class, WarpDrive.PREFIX + registryName);
}
@Override

View file

@ -20,10 +20,12 @@ import javax.annotation.Nullable;
public class BlockRadar extends BlockAbstractContainer {
public BlockRadar() {
public BlockRadar(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.detection.Radar");
setUnlocalizedName("warpdrive.detection.Radar");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityRadar.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -10,12 +10,13 @@ import net.minecraftforge.fml.common.registry.GameRegistry;
public class BlockWarpIsolation extends Block {
public BlockWarpIsolation() {
public BlockWarpIsolation(final String registryName) {
super(Material.IRON);
setHardness(3.5F);
setSoundType(SoundType.METAL);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setRegistryName("warpdrive.detection.WarpIsolation");
setUnlocalizedName("warpdrive.detection.WarpIsolation");
setRegistryName(registryName);
GameRegistry.register(this);
}

View file

@ -1,5 +1,6 @@
package cr0s.warpdrive.block.energy;
import cr0s.warpdrive.WarpDrive;
import cr0s.warpdrive.block.BlockAbstractContainer;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
@ -13,10 +14,12 @@ import javax.annotation.Nonnull;
public class BlockEnanReactorCore extends BlockAbstractContainer {
public BlockEnanReactorCore() {
public BlockEnanReactorCore(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.energy.EnanReactorCore");
setUnlocalizedName("warpdrive.energy.EnanReactorCore");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityEnanReactorCore.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -1,5 +1,6 @@
package cr0s.warpdrive.block.energy;
import cr0s.warpdrive.WarpDrive;
import cr0s.warpdrive.block.BlockAbstractContainer;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
@ -10,11 +11,13 @@ import javax.annotation.Nonnull;
public class BlockEnanReactorLaser extends BlockAbstractContainer {
public BlockEnanReactorLaser() {
public BlockEnanReactorLaser(final String registryName) {
super(Material.IRON);
setResistance(60.0F * 5 / 3);
setRegistryName("warpdrive.energy.EnanReactorLaser");
setUnlocalizedName("warpdrive.energy.EnanReactorLaser");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityEnanReactorLaser.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -18,10 +18,12 @@ import javax.annotation.Nullable;
public class BlockEnergyBank extends BlockAbstractContainer {
public BlockEnergyBank() {
public BlockEnergyBank(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.energy.EnergyBank");
setUnlocalizedName("warpdrive.energy.EnergyBank");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityEnergyBank.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -18,10 +18,12 @@ import javax.annotation.Nullable;
public class BlockIC2reactorLaserMonitor extends BlockAbstractContainer {
public BlockIC2reactorLaserMonitor() {
public BlockIC2reactorLaserMonitor(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.energy.IC2ReactorLaserMonitor");
setUnlocalizedName("warpdrive.energy.IC2ReactorLaserMonitor");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityIC2reactorLaserMonitor.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -2,8 +2,8 @@ package cr0s.warpdrive.block.forcefield;
import net.minecraft.block.SoundType;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.init.MobEffects;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.RayTraceResult;
@ -18,8 +18,6 @@ import cr0s.warpdrive.data.ForceFieldSetup;
import cr0s.warpdrive.data.EnumPermissionNode;
import cr0s.warpdrive.data.Vector3;
import cr0s.warpdrive.data.VectorI;
import cr0s.warpdrive.render.RenderBlockForceField;
import net.minecraft.block.Block;
import net.minecraft.block.BlockGlass;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
@ -45,13 +43,15 @@ import java.util.Random;
public class BlockForceField extends BlockAbstractForceField implements IDamageReceiver {
private static final float BOUNDING_TOLERANCE = 0.05F;
public BlockForceField(final byte tier) {
public BlockForceField(final String registryName, final byte tier) {
super(tier, Material.GLASS);
setSoundType(SoundType.CLOTH);
setRegistryName("warpdrive.forcefield.block" + tier);
setUnlocalizedName("warpdrive.forcefield.block" + tier);
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityForceField.class, WarpDrive.PREFIX + registryName);
}
@Nonnull
@Override
public TileEntity createNewTileEntity(@Nonnull World world, int metadata) {
@ -63,19 +63,22 @@ public class BlockForceField extends BlockAbstractForceField implements IDamageR
return false;
}
@SuppressWarnings("deprecation")
@Override
public boolean isOpaqueCube(IBlockState state) {
return false;
}
@SuppressWarnings("deprecation")
@Override
public boolean isFullyOpaque(IBlockState state) {
return false;
}
@Nonnull
@Override
public ItemStack getPickBlock(IBlockState blockState, RayTraceResult target, World world, BlockPos blockPos, EntityPlayer entityPlayer) {
return null;
public ItemStack getPickBlock(@Nonnull IBlockState blockState, RayTraceResult target, @Nonnull World world, @Nonnull BlockPos blockPos, EntityPlayer entityPlayer) {
return new ItemStack(Blocks.AIR);
}
@Override
@ -85,7 +88,7 @@ public class BlockForceField extends BlockAbstractForceField implements IDamageR
@Override
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs creativeTab, List list) {
public void getSubBlocks(@Nonnull Item item, CreativeTabs creativeTab, List list) {
/* Hide in NEI
for (int i = 0; i < 16; ++i) {
list.add(new ItemStack(item, 1, i));
@ -98,7 +101,7 @@ public class BlockForceField extends BlockAbstractForceField implements IDamageR
public EnumBlockRenderType getRenderType(IBlockState state) {
return EnumBlockRenderType.MODEL;
}
@SuppressWarnings("deprecation")
@Override
public boolean shouldSideBeRendered(IBlockState blockState, @Nonnull IBlockAccess blockAccess, @Nonnull BlockPos blockPos, EnumFacing side) {
@ -131,7 +134,7 @@ public class BlockForceField extends BlockAbstractForceField implements IDamageR
}
return null;
}
@Override
public void onBlockClicked(World world, BlockPos blockPos, EntityPlayer entityPlayer) {
ForceFieldSetup forceFieldSetup = getForceFieldSetup(world, blockPos);
@ -245,7 +248,7 @@ public class BlockForceField extends BlockAbstractForceField implements IDamageR
private double log_explosionX;
private double log_explosionY = -1;
private double log_explosionZ;
@Override
public float getExplosionResistance(Entity exploder) {
return super.getExplosionResistance(exploder);
@ -337,7 +340,7 @@ public class BlockForceField extends BlockAbstractForceField implements IDamageR
downgrade(world, blockPos);
super.onBlockExploded(world, blockPos, explosion);
}
@Override
public void onEMP(World world, BlockPos blockPos, float efficiency) {
if (efficiency > 0.0F) {
@ -354,13 +357,13 @@ public class BlockForceField extends BlockAbstractForceField implements IDamageR
}
@Override
public float getBlockHardness(World world, final BlockPos blockPos,
public float getBlockHardness(IBlockState blockState, World world, final BlockPos blockPos,
final DamageSource damageSource, final int damageParameter, final Vector3 damageDirection, final int damageLevel) {
return WarpDriveConfig.HULL_HARDNESS[tier - 1];
}
@Override
public int applyDamage(World world, final BlockPos blockPos, final DamageSource damageSource,
public int applyDamage(IBlockState blockState, World world, final BlockPos blockPos, final DamageSource damageSource,
final int damageParameter, final Vector3 damageDirection, final int damageLevel) {
ForceFieldSetup forceFieldSetup = getForceFieldSetup(world, blockPos);
if (forceFieldSetup != null) {

View file

@ -29,11 +29,14 @@ import java.util.List;
public class BlockForceFieldProjector extends BlockAbstractForceField {
public BlockForceFieldProjector(final byte tier) {
public BlockForceFieldProjector(final String registryName, final byte tier) {
super(tier, Material.IRON);
isRotating = true;
setRegistryName("warpdrive.forcefield.projector" + tier);
setUnlocalizedName("warpdrive.forcefield.projector" + tier);
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.register(new ItemBlockForceFieldProjector(this));
GameRegistry.registerTileEntity(TileEntityForceFieldProjector.class, WarpDrive.PREFIX + registryName);
}
@SideOnly(Side.CLIENT)

View file

@ -21,11 +21,14 @@ import javax.annotation.Nullable;
public class BlockForceFieldRelay extends BlockAbstractForceField {
public BlockForceFieldRelay(final byte tier) {
public BlockForceFieldRelay(final String registryName, final byte tier) {
super(tier, Material.IRON);
isRotating = false;
setRegistryName("warpdrive.forcefield.relay" + tier);
setUnlocalizedName("warpdrive.forcefield.relay" + tier);
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.register(new ItemBlockForceFieldRelay(this));
GameRegistry.registerTileEntity(TileEntityForceFieldRelay.class, WarpDrive.PREFIX + registryName);
}
@Override

View file

@ -14,7 +14,7 @@ public class ItemBlockForceFieldProjector extends ItemBlockAbstractBase {
setHasSubtypes(true);
setUnlocalizedName("warpdrive.forcefield.projector");
}
@Nonnull
@Override
public String getUnlocalizedName(ItemStack itemstack) {

View file

@ -6,11 +6,8 @@ import net.minecraft.block.BlockGlass;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.EnumPushReaction;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
@ -35,6 +32,8 @@ public class BlockHullGlass extends BlockColored implements IDamageReceiver {
setUnlocalizedName("warpdrive.hull" + tier + ".glass.");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.register(new ItemBlockHull(this));
setLightLevel(10.0F / 15.0F);
}
@ -49,19 +48,19 @@ public class BlockHullGlass extends BlockColored implements IDamageReceiver {
public boolean isVisuallyOpaque() {
return false;
}
@SuppressWarnings("deprecation")
@Override
public boolean isOpaqueCube(IBlockState state) {
return false;
}
@SuppressWarnings("deprecation")
@Override
public boolean isFullyOpaque(IBlockState state) {
return false;
}
@SuppressWarnings("deprecation")
@Override
public boolean shouldSideBeRendered(IBlockState blockState, @Nonnull IBlockAccess blockAccess, @Nonnull BlockPos blockPos, EnumFacing side) {
@ -78,22 +77,21 @@ public class BlockHullGlass extends BlockColored implements IDamageReceiver {
}
@Override
public float getBlockHardness(World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
public float getBlockHardness(IBlockState blockState, World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
// TODO: adjust hardness to damage type/color
return WarpDriveConfig.HULL_HARDNESS[tier - 1];
}
@Override
public int applyDamage(World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
public int applyDamage(IBlockState blockState, World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
if (damageLevel <= 0) {
return 0;
}
if (tier == 1) {
world.setBlockToAir(blockPos);
} else {
IBlockState blockState = world.getBlockState(blockPos);
int metadata = blockState.getBlock().getMetaFromState(blockState);
world.setBlockState(blockPos, WarpDrive.blockHulls_glass[tier - 2].getStateFromMeta(metadata), 2);
world.setBlockState(blockPos, WarpDrive.blockHulls_glass[tier - 2]
.getDefaultState().withProperty(COLOR, blockState.getValue(COLOR)), 2);
}
return 0;
}

View file

@ -28,7 +28,7 @@ import cr0s.warpdrive.config.WarpDriveConfig;
import javax.annotation.Nonnull;
public class BlockHullPlain extends Block implements IDamageReceiver {
private static final PropertyEnum<EnumDyeColor> COLOR = PropertyEnum.<EnumDyeColor>create("color", EnumDyeColor.class);
private static final PropertyEnum<EnumDyeColor> COLOR = PropertyEnum.create("color", EnumDyeColor.class);
private int tier;
public BlockHullPlain(final String registryName, final int tier) {
@ -42,6 +42,7 @@ public class BlockHullPlain extends Block implements IDamageReceiver {
setRegistryName(registryName);
setDefaultState(blockState.getBaseState().withProperty(COLOR, EnumDyeColor.WHITE));
GameRegistry.register(this);
GameRegistry.register(new ItemBlockHull(this));
}
@SuppressWarnings("deprecation")
@ -90,22 +91,21 @@ public class BlockHullPlain extends Block implements IDamageReceiver {
}
@Override
public float getBlockHardness(World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
public float getBlockHardness(IBlockState blockState, World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
// TODO: adjust hardness to damage type/color
return WarpDriveConfig.HULL_HARDNESS[tier - 1];
}
@Override
public int applyDamage(World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
public int applyDamage(IBlockState blockState, World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
if (damageLevel <= 0) {
return 0;
}
if (tier == 1) {
world.setBlockToAir(blockPos);
} else {
IBlockState blockState = world.getBlockState(blockPos);
int metadata = blockState.getBlock().getMetaFromState(blockState);
world.setBlockState(blockPos, WarpDrive.blockHulls_plain[tier - 2].getStateFromMeta(metadata), 2);
world.setBlockState(blockPos, WarpDrive.blockHulls_plain[tier - 2]
.getDefaultState().withProperty(COLOR, blockState.getValue(COLOR)), 2);
}
return 0;
}

View file

@ -11,6 +11,7 @@ import net.minecraft.item.EnumDyeColor;
import net.minecraft.util.DamageSource;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry;
import javax.annotation.Nonnull;
@ -18,12 +19,15 @@ public class BlockHullStairs extends BlockStairs implements IDamageReceiver {
private final int tier;
private final IBlockState blockStateHull;
public BlockHullStairs(final IBlockState blockStateHull, final int tier) {
public BlockHullStairs(final String registryName, final IBlockState blockStateHull, final int tier) {
super(blockStateHull);
this.blockStateHull = blockStateHull;
this.tier = tier;
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setUnlocalizedName("warpdrive.hull" + tier + ".stairs." + EnumDyeColor.byMetadata(blockStateHull.getBlock().getMetaFromState(blockStateHull)).getName());
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.register(new ItemBlockHull(this));
}
@SuppressWarnings("deprecation")
@ -34,22 +38,21 @@ public class BlockHullStairs extends BlockStairs implements IDamageReceiver {
}
@Override
public float getBlockHardness(World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
public float getBlockHardness(IBlockState blockState, World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
// TODO: adjust hardness to damage type/color
return WarpDriveConfig.HULL_HARDNESS[tier - 1];
}
@Override
public int applyDamage(World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
public int applyDamage(IBlockState blockState, World world, BlockPos blockPos, DamageSource damageSource, int damageParameter, Vector3 damageDirection, int damageLevel) {
if (damageLevel <= 0) {
return 0;
}
if (tier == 1) {
world.setBlockToAir(blockPos);
} else {
IBlockState blockState = world.getBlockState(blockPos);
int metadata = blockState.getBlock().getMetaFromState(blockState);
world.setBlockState(blockPos, WarpDrive.blockHulls_stairs[tier - 2][blockState.getBlock().getMetaFromState(blockStateHull)].getStateFromMeta(metadata), 2);
world.setBlockState(blockPos, WarpDrive.blockHulls_stairs[tier - 2][blockState.getBlock().getMetaFromState(blockStateHull)]
.getDefaultState().withProperty(FACING, blockState.getValue(FACING)), 2);
}
return 0;
}

View file

@ -1,13 +1,13 @@
package cr0s.warpdrive.block.hull;
import cr0s.warpdrive.block.ItemBlockAbstractBase;
import net.minecraft.block.Block;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import javax.annotation.Nonnull;
public class ItemBlockHull extends ItemBlock {
public class ItemBlockHull extends ItemBlockAbstractBase {
public ItemBlockHull(Block block) {
super(block);

View file

@ -20,10 +20,12 @@ import javax.annotation.Nullable;
public class BlockLift extends BlockAbstractContainer {
public BlockLift() {
public BlockLift(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.movement.Lift");
setUnlocalizedName("warpdrive.movement.Lift");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityLift.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -25,6 +25,7 @@ public class BlockShipController extends BlockAbstractContainer {
setUnlocalizedName("warpdrive.movement.ShipController");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityShipController.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -20,12 +20,14 @@ import javax.annotation.Nullable;
public class BlockShipCore extends BlockAbstractContainer {
public BlockShipCore() {
public BlockShipCore(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.movement.ShipCore");
setUnlocalizedName("warpdrive.movement.ShipCore");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityShipCore.class, WarpDrive.PREFIX + registryName);
}
@Nonnull
@Override
public TileEntity createNewTileEntity(@Nonnull World world, int metadata) {

View file

@ -18,10 +18,12 @@ import javax.annotation.Nullable;
public class BlockTransporter extends BlockAbstractContainer {
public BlockTransporter() {
public BlockTransporter(final String registryName) {
super(Material.IRON);
setRegistryName("warpdrive.movement.Transporter");
setUnlocalizedName("warpdrive.movement.Transporter");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityTransporter.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -25,11 +25,12 @@ public class BlockAir extends Block {
private static final boolean AIR_DEBUG = false;
private static final int AIR_BLOCK_TICKS = 40;
public BlockAir() {
public BlockAir(final String registryName) {
super(Material.FIRE);
setHardness(0.0F);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setRegistryName("warpdrive.passive.Air");
setUnlocalizedName("warpdrive.passive.Air");
setRegistryName(registryName);
GameRegistry.register(this);
}

View file

@ -26,6 +26,7 @@ public class BlockDecorative extends Block {
setRegistryName(registryName);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
GameRegistry.register(this);
GameRegistry.register(new ItemBlockDecorative(this));
itemStackCache = new ItemStack[EnumDecorativeType.length];
}

View file

@ -21,11 +21,12 @@ import javax.annotation.Nullable;
public class BlockGas extends Block {
public BlockGas() {
public BlockGas(final String registryName) {
super(Material.FIRE);
setHardness(0.0F);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setRegistryName("warpdrive.passive.Gas");
setUnlocalizedName("warpdrive.passive.Gas");
setRegistryName(registryName);
GameRegistry.register(this);
}

View file

@ -9,12 +9,13 @@ import cr0s.warpdrive.WarpDrive;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class BlockHighlyAdvancedMachine extends Block {
public BlockHighlyAdvancedMachine() {
public BlockHighlyAdvancedMachine(final String registryName) {
super(Material.IRON);
setHardness(5.0F);
setSoundType(SoundType.METAL);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setRegistryName("warpdrive.passive.HighlyAdvancedMachine");
setUnlocalizedName("warpdrive.passive.HighlyAdvancedMachine");
setRegistryName(registryName);
GameRegistry.register(this);
}

View file

@ -9,13 +9,14 @@ import cr0s.warpdrive.WarpDrive;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class BlockIridium extends Block {
public BlockIridium() {
public BlockIridium(final String registryName) {
super(Material.IRON);
setHardness(3.4F);
setResistance(360.0F * 5 / 3);
setSoundType(SoundType.METAL);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setRegistryName("warpdrive.passive.IridiumBlock");
setUnlocalizedName("warpdrive.passive.IridiumBlock");
setRegistryName(registryName);
GameRegistry.register(this);
}

View file

@ -15,12 +15,13 @@ import net.minecraftforge.fml.relauncher.SideOnly;
import java.util.Random;
public class BlockTransportBeacon extends BlockTorch {
public BlockTransportBeacon() {
public BlockTransportBeacon(final String registryName) {
super();
setHardness(0.5F);
setSoundType(SoundType.METAL);
setUnlocalizedName("warpdrive.passive.TransportBeacon");
setRegistryName(registryName);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setRegistryName("warpdrive.passive.TransportBeacon");
GameRegistry.register(this);
}

View file

@ -2,16 +2,16 @@ package cr0s.warpdrive.block.passive;
import java.util.List;
import cr0s.warpdrive.block.ItemBlockAbstractBase;
import cr0s.warpdrive.data.EnumDecorativeType;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import javax.annotation.Nonnull;
public class ItemBlockDecorative extends ItemBlock {
public class ItemBlockDecorative extends ItemBlockAbstractBase {
public ItemBlockDecorative(Block block) {
super(block);

View file

@ -22,12 +22,14 @@ import javax.annotation.Nullable;
public class BlockLaserCamera extends BlockAbstractContainer {
public BlockLaserCamera() {
public BlockLaserCamera(final String registryName) {
super(Material.IRON);
setHardness(50.0F);
setResistance(20.0F * 5 / 3);
setRegistryName("warpdrive.weapon.LaserCamera");
setUnlocalizedName("warpdrive.weapon.LaserCamera");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityLaserCamera.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -21,12 +21,14 @@ import javax.annotation.Nullable;
public class BlockWeaponController extends BlockAbstractContainer {
public BlockWeaponController() {
public BlockWeaponController(final String registryName) {
super(Material.IRON);
setHardness(50.0F);
setResistance(20.0F * 5 / 3);
setRegistryName("warpdrive.weapon.WeaponController");
setUnlocalizedName("warpdrive.weapon.WeaponController");
setRegistryName(registryName);
GameRegistry.register(this);
GameRegistry.registerTileEntity(TileEntityWeaponController.class, WarpDrive.PREFIX + registryName);
}
@Nonnull

View file

@ -11,7 +11,7 @@ import net.minecraftforge.fml.relauncher.IFMLCallHook;
import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin;
@IFMLLoadingPlugin.Name(value = "WarpDriveCore") // The readable mod name
@IFMLLoadingPlugin.MCVersion(value = "1.7.10")
@IFMLLoadingPlugin.MCVersion(value = "1.10.2")
@IFMLLoadingPlugin.TransformerExclusions(value = "cr0s.warpdrive.core.")
@IFMLLoadingPlugin.SortingIndex(value = 1001) // > 1000 to work with srg names
public class FMLLoadingPlugin implements IFMLLoadingPlugin, IFMLCallHook {

View file

@ -9,13 +9,13 @@ import net.minecraftforge.fml.common.registry.GameRegistry;
public class ItemAirCanisterFull extends Item implements IAirCanister {
public ItemAirCanisterFull() {
public ItemAirCanisterFull(final String registryName) {
super();
setMaxDamage(20);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setMaxStackSize(1);
setUnlocalizedName("warpdrive.armor.AirCanisterFull");
setRegistryName(getUnlocalizedName());
setRegistryName(registryName);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
GameRegistry.register(this);
}

View file

@ -17,11 +17,11 @@ import javax.annotation.Nonnull;
public class ItemComponent extends Item implements IAirCanister {
private static ItemStack[] itemStackCache;
public ItemComponent() {
public ItemComponent(final String registryName) {
super();
setHasSubtypes(true);
setUnlocalizedName("warpdrive.crafting.component");
setRegistryName(getUnlocalizedName());
setRegistryName(registryName);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
GameRegistry.register(this);

View file

@ -21,11 +21,11 @@ import java.util.*;
public class ItemForceFieldShape extends Item {
private static ItemStack[] itemStackCache;
public ItemForceFieldShape() {
public ItemForceFieldShape(final String registryName) {
super();
setHasSubtypes(true);
setUnlocalizedName("warpdrive.forcefield.shape");
setRegistryName(getUnlocalizedName());
setRegistryName(registryName);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
GameRegistry.register(this);

View file

@ -21,12 +21,12 @@ import java.util.List;
public class ItemForceFieldUpgrade extends Item {
private static ItemStack[] itemStackCache;
public ItemForceFieldUpgrade() {
public ItemForceFieldUpgrade(final String registryName) {
super();
setHasSubtypes(true);
setUnlocalizedName("warpdrive.forcefield.upgrade");
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setRegistryName(getUnlocalizedName());
setRegistryName(registryName);
GameRegistry.register(this);
itemStackCache = new ItemStack[EnumForceFieldUpgrade.length];

View file

@ -16,11 +16,11 @@ import javax.annotation.Nonnull;
public class ItemHelmet extends ItemArmor implements IBreathingHelmet {
public ItemHelmet(ArmorMaterial mat, EntityEquipmentSlot entityEquipmentSlot) {
public ItemHelmet(final String registryName, ArmorMaterial mat, EntityEquipmentSlot entityEquipmentSlot) {
super(mat, 0, entityEquipmentSlot);
setUnlocalizedName("warpdrive.armor.Helmet");
setRegistryName(registryName);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setRegistryName(getUnlocalizedName());
GameRegistry.register(this);
}

View file

@ -6,6 +6,7 @@ import ic2.api.reactor.IReactorComponent;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import cr0s.warpdrive.WarpDrive;
import net.minecraftforge.fml.common.registry.GameRegistry;
@Optional.InterfaceList({
@Optional.Interface(iface = "ic2.api.reactor.IReactorComponent", modid = "IC2")
@ -13,12 +14,13 @@ import cr0s.warpdrive.WarpDrive;
public class ItemIC2reactorLaserFocus extends Item implements IReactorComponent {
private final static int maxHeat = 3000;
public ItemIC2reactorLaserFocus() {
public ItemIC2reactorLaserFocus(final String registryName) {
super();
setMaxDamage(maxHeat);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setUnlocalizedName("warpdrive.energy.IC2reactorLaserFocus");
setRegistryName(getUnlocalizedName());
setRegistryName(registryName);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
GameRegistry.register(this);
}
private static void damageComponent(ItemStack self, int damage) {

View file

@ -28,15 +28,15 @@ import javax.annotation.Nonnull;
public class ItemTuningFork extends Item {
public ItemTuningFork() {
public ItemTuningFork(final String registryName) {
super();
setMaxDamage(0);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
setMaxStackSize(1);
setUnlocalizedName("warpdrive.tool.TuningFork");
setRegistryName(getUnlocalizedName());
setRegistryName(registryName);
setFull3D();
setHasSubtypes(true);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
GameRegistry.register(this);
}

View file

@ -15,10 +15,10 @@ import javax.annotation.Nonnull;
public class ItemUpgrade extends Item {
private static ItemStack[] isCache = new ItemStack[UpgradeType.values().length];
public ItemUpgrade() {
public ItemUpgrade(final String registryName) {
setHasSubtypes(true);
setUnlocalizedName("warpdrive.upgrade.Malformed");
setRegistryName(getUnlocalizedName());
setRegistryName(registryName);
setCreativeTab(WarpDrive.creativeTabWarpDrive);
GameRegistry.register(this);
}