Added multiside texture

- Method name different but is registerIcons() instead of registerBlockIcons()
- Prepare sounds implementation
This commit is contained in:
JackCarterSmith 2019-02-27 16:11:28 +01:00
parent c37172feaf
commit c4053e0595
10 changed files with 215 additions and 9 deletions

View File

@ -17,7 +17,7 @@ buildscript {
apply plugin: 'forge'
version = "0.1.1"
version = "0.1.2"
group = "fr.jcs.bigalarm"
archivesBaseName = "BigAlarm"
@ -26,7 +26,7 @@ sourceCompatibility = 1.7
targetCompatibility = 1.7
minecraft {
version = "1.7.10-10.13.4.1558-1.7.10"
version = "1.7.10-10.13.4.1566-1.7.10"
replace '${version}', project.version
mappings = 'stable_12'
runDir = "eclipse"

View File

@ -5,18 +5,22 @@ import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import fr.jcs.bigalarm.blocks.AlarmBlock;
import fr.jcs.bigalarm.proxy.CommonProxy;
import net.minecraft.block.Block;
@Mod(modid = BigAlarmRefs.MOD_ID, name = BigAlarmRefs.MOD_NAME, version = "@VERSION@", canBeDeactivated = false, dependencies = "")
public class BigAlarm {
@Instance
@Instance(BigAlarmRefs.MOD_ID)
public static BigAlarm instance;
@SidedProxy(clientSide = BigAlarmRefs.PROXY_CLIENT, serverSide = BigAlarmRefs.PROXY_SERVER)
public static CommonProxy proxy;
public static final SimpleNetworkWrapper netWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(BigAlarmRefs.MOD_ID);
public static AlarmBlock alarmBlock;
@ -32,6 +36,7 @@ public class BigAlarm {
System.out.println("[BigAlarm]: Connecting speakers...");
alarmBlock = new AlarmBlock();
GameRegistry.registerBlock(alarmBlock, "alarmBlock");
//netWrapper.registerMessage(messageHandler, requestMessageType, 0, Side.SERVER);
}
@EventHandler

View File

@ -1,33 +1,64 @@
package fr.jcs.bigalarm.blocks;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import fr.jcs.bigalarm.BigAlarmRefs;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class AlarmBlock extends BlockContainer {
private IIcon iconAlarm;
public AlarmBlock() {
super(Material.iron);
this.setHardness(5.0F);
this.setResistance(4.0F);
setHardness(5.0F);
setResistance(20.0F);
this.setStepSound(soundTypeMetal);
this.setUnlocalizedName(BigAlarmRefs.MOD_ID + ":alarmBlock");
this.setTextureName(BigAlarmRefs.MOD_ID + ":alarmBlock/front");
this.setTextureName(BigAlarmRefs.MOD_ID + ":default");
this.setCreativeTab(CreativeTabs.tabDecorations);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister iconRegister) { //Method name different but is registerBlockIcons()
this.blockIcon = iconRegister.registerIcon(BigAlarmRefs.MOD_ID + ":alarmBlock/side");
this.iconAlarm = iconRegister.registerIcon(BigAlarmRefs.MOD_ID + ":alarmBlock/top");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta)
{
/*if (side == 1) { //Simplified sentence below
return this.iconAlarm;
} else {
return this.blockIcon;
}*/
return side == 1 ? this.iconAlarm : this.blockIcon;
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side)
{
return side == 1 ? this.iconAlarm : this.blockIcon;
}
@Override
public boolean isFullBlock()
{
return false;
return true;
}
@Override
public boolean isBlockNormalCube() {
return false;
return true;
}
@Override

View File

@ -0,0 +1,70 @@
package fr.jcs.bigalarm.tileentitys;
import cpw.mods.fml.common.FMLCommonHandler;
import fr.jcs.bigalarm.BigAlarmRefs;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
public class TileEntityAlarm extends TileEntity {
private static final String DEFAULT_SOUND_NAME = "default";
private static final float BASE_SOUND_RANGE = 16F;
private static final String SOUND_PREFIX = BigAlarmRefs.MOD_ID + ":alarm-";
public int range;
private int prevRange;
public String soundName;
private String prevSoundName;
private int updateTicker;
protected int tickRate;
private TileEntitySound sound;
public TileEntityAlarm() {
soundName = "";
//range = IC2NuclearControl.instance.alarmRange;
range = 0;
if (FMLCommonHandler.instance().getEffectiveSide().isClient()) {
sound = new TileEntitySound();
}
}
public int getRange() {
return range;
}
public void setRange(int r) {
range = r;
if (prevRange != r) {
//IC2.network.get().updateTileEntityField(this, "range");
}
prevRange = range;
}
public String getSoundName() {
return soundName;
}
public void setSoundName(String name) {
soundName = name;
if (prevSoundName != name){
//IC2.network.get().updateTileEntityField(this, "soundName");
}
prevSoundName = name;
}
@Override
public void readFromNBT(NBTTagCompound nbttagcompound) {
super.readFromNBT(nbttagcompound);
if (nbttagcompound.hasKey("soundName")) {
prevSoundName = soundName = nbttagcompound.getString("soundName");
prevRange = range = nbttagcompound.getInteger("range");
}
}
@Override
public void writeToNBT(NBTTagCompound nbttagcompound) {
super.writeToNBT(nbttagcompound);
nbttagcompound.setString("soundName", soundName);
nbttagcompound.setInteger("range", range);
}
}

View File

@ -0,0 +1,32 @@
package fr.jcs.bigalarm.tileentitys;
import fr.jcs.bigalarm.utils.SoundHelper;
import net.minecraft.client.audio.PositionedSoundRecord;
public class TileEntitySound {
private PositionedSoundRecord sound;
public TileEntitySound() {
}
public void stopAlarm() {
if (sound != null) {
SoundHelper.stopAlarm(sound);
sound = null;
}
}
public void playAlarm(double x, double y, double z, String soundName,
float range, boolean skipCheck) {
if (sound == null || skipCheck) {
sound = SoundHelper.playAlarm(x, y, z, soundName, range);
}
}
public boolean isPlaying() {
if (sound == null) {
return false;
}
return SoundHelper.isPlaying(sound);
}
}

View File

@ -0,0 +1,24 @@
package fr.jcs.bigalarm.utils;
import org.apache.logging.log4j.Level;
import cpw.mods.fml.common.FMLLog;
import fr.jcs.bigalarm.BigAlarmRefs;
public class LogHelper {
public static void log(Level logLevel, Object object) {
FMLLog.log(BigAlarmRefs.MOD_ID, logLevel, String.valueOf(object), new Object[0]);
}
public static void error(Object object) {
log(Level.ERROR, object);
}
public static void info(Object object) {
log(Level.INFO, object);
}
public static void warn(Object object) {
log(Level.WARN, object);
}
}

View File

@ -0,0 +1,44 @@
package fr.jcs.bigalarm.utils;
import cpw.mods.fml.client.FMLClientHandler;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
public class SoundHelper {
private static final float DEFAULT_RANGE = 16F;
private static void playSound(PositionedSoundRecord sound) {
Minecraft.getMinecraft().getSoundHandler().playSound(sound);
}
public static PositionedSoundRecord playAlarm(double x, double y, double z,
String name, float volume) {
float range = DEFAULT_RANGE;
if (volume > 1.0F) {
range *= volume;
}
Entity person = FMLClientHandler.instance().getClient().renderViewEntity;
if (person != null && volume > 0
&& person.getDistanceSq(x, y, z) < range * range) {
PositionedSoundRecord sound = new PositionedSoundRecord(
new ResourceLocation(name), volume, 1.0F, (float) x,
(float) y, (float) z);
playSound(sound);
return sound;
}
return null;
}
public static boolean isPlaying(PositionedSoundRecord sound) {
return Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(sound);
}
public static void stopAlarm(PositionedSoundRecord sound) {
Minecraft.getMinecraft().getSoundHandler().stopSound(sound);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B