Skip to content

Instantly share code, notes, and snippets.

@PEMapModder
Created November 8, 2015 16:02
Show Gist options
  • Save PEMapModder/a7569da39b04b040664a to your computer and use it in GitHub Desktop.
Save PEMapModder/a7569da39b04b040664a to your computer and use it in GitHub Desktop.
//class elementalLaserSubclass extends ElementsPE{ // incorrect usage
ModPE.setItem(511,12,5,"Elemental Laser Gun");//did i misplace x and y? but pleas. i am terrible at arts
ModPE.setItem(510,13,5,"Elemental Laser Gun Batteries");
ModPE.setItem(509,14,5,"Elemental Explosive Laser Gun");
ModPE.setItem(508,15,5,"Elemental Explosive Laser Gun Batteries");
function useItem(a,b,c,d) /*extends ElementsPE.useItem(double,double,double,int,int,int)*/{
if(d==511/*laser gun*/&&getInventoryItemCount(510,0,false)>0){
shootLaser(getPlayerX(),getPlayerY(),getPlayerZ(),getYaw(),getPitch()*-1,readData(Level.getWorldDir()+"preference.accuracy.laser"),readData(Level.getWorldDir()+"preference.laser.type"));
}
}
function procCmd(c)/*extends ElementsPE.procCmd(String)*//*requests priority 0*/{
if(c=="/toggle lasertype")saveData(Level.getWorldDir()+"preference.laser.type",!(readData(Level.getWorldDir()+"preference.laser.type")));
if(c.split(" ")[0]=="/preference"&&c.split(" ")[1]=="laser"){
switch(c.split(" ")[2]){
case "1":var args=10;break;
case "2":var args=9;break;
case "3":var args=8;break;
case "4":var args=7;break;
case "5":var args=6;break;
case "6":var args=5;break;
case "7":var args=4;break;
case "8":var args=3;break;
case "9":var args=2;break;
default:clientMessage("Invalid arguments");
case "10":var args=1;
}
saveData(Level.getWorldDir()+"preference.accuracy.laser",args);
}
}
function shootlaser(x,y,z,yaw,negPitch,accuracy,isExplosive,explodeRadius){
addItemInventory(510,-1);
var carryOn=true;
var beamX=x,beamY=y,beamZ=z;
var beamInTile=0;
while(carryOn&&0<=beamX<256&&0<=beamY<128&&0<=beamZ<256){
var xDistance=Math.cos((90-yaw)/180*Math.PI)*accuracy;
var zDistance=Math.sin((90-yaw)/180*Math.PI)*accuracy;
var yDistance=Math.sin(negPitch/180*Math.PI)*accuracy;
beamX=beamX+xDistance;
beamY=beamY+yDistance;
beamZ=beamZ+zDistance;
try{
beamInTile=getTile(Math.floor(beamX),Math.floor(beamY),Math.floor(beamZ));
if(beamInTile!=0&&!(8<=beaminTile<=11)){
carryOn=false;
if(isExplosive)explode(beamX,beamY,beamZ,explodeRadius);
else setTile(beamX,beamY,beamZ,0);
}}catch(e){}
}
}
function getInventoryItemCount(itemId,itemDamage,wantSlotNotNumber){
var sum=0,slot=0;
for(var i=0;i<27;i++){
if(getInventorySlot(i)==itemId&&getInventorySlotData(i)==itemDamage){
slot++;
sum=sum+getInventorySlotCount(i);
}
}if(wantSlotNotNumber)return slot;
return sum;
}
// } incorrect usage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment