This commit is contained in:
Waverunner
2014-04-10 20:04:02 -04:00
71 changed files with 3476 additions and 11 deletions
+198
View File
@@ -38,6 +38,7 @@ import resources.common.Opcodes;
import resources.common.SpawnPoint;
import resources.objects.building.BuildingObject;
import resources.objects.creature.CreatureObject;
import resources.objects.deed.Harvester_Deed;
import resources.objects.player.PlayerObject;
import resources.objects.tangible.TangibleObject;
import resources.objects.tool.SurveyTool;
@@ -84,6 +85,7 @@ public class DevService implements INetworkDispatch {
suiOptions.put((long) 21, "Weapons");
suiOptions.put((long) 22, "Misc Items");
suiOptions.put((long) 23, "Jedi Items");
suiOptions.put((long) 26, "Installations");
suiOptions.put((long) 110, "Survey Devices");
if(creature.getClient().isGM()) suiOptions.put((long) 120, "House Deeds");
break;
@@ -122,6 +124,10 @@ public class DevService implements INetworkDispatch {
suiOptions.put((long) 91, "(Dark) Jedi Robe");
suiOptions.put((long) 92, "Belt of Master Bodo Baas");
break;
case 10: // [Items] Jedi Items
suiOptions.put((long) 111, "Harvesters");
suiOptions.put((long) 112, "Energy resources");
break;
}
@@ -187,6 +193,9 @@ public class DevService implements INetworkDispatch {
case 25: // Tools
sendCharacterBuilderSUI(player, 15);
return;
case 26: // Installations
sendCharacterBuilderSUI(player, 10);
return;
// [Items] Weapons
case 30: // Jedi Weapons
@@ -992,7 +1001,196 @@ public class DevService implements INetworkDispatch {
solarSurveyTool.setCustomName("Solar Survey Device");
inventory.add(solarSurveyTool);
return;
case 111:
// Minerals
String templateString="object/tangible/deed/harvester_deed/shared_harvester_ore_s1_deed.iff";
Harvester_Deed deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(27344);
deed1.setBER(5);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_ore_s2_deed.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(27344);
deed1.setBER(11);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_ore_heavy_deed.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(135400);
deed1.setBER(14);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_ore_deed_elite.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(250000);
deed1.setBER(44);
deed1.setAttributes();
inventory.add(deed1);
// Chemicals
templateString="object/tangible/deed/harvester_deed/shared_harvester_liquid_deed.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(27344);
deed1.setBER(5);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_liquid_deed_medium.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(27344);
deed1.setBER(11);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_liquid_deed_heavy.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(135400);
deed1.setBER(14);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_liquid_deed_elite.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(250000);
deed1.setBER(44);
deed1.setAttributes();
inventory.add(deed1);
// Flora
templateString="object/tangible/deed/harvester_deed/shared_harvester_flora_deed.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(27344);
deed1.setBER(5);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_flora_deed_medium.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(27344);
deed1.setBER(11);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_flora_deed_heavy.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(135400);
deed1.setBER(14);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_flora_deed_elite.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(250000);
deed1.setBER(44);
deed1.setAttributes();
inventory.add(deed1);
// Gas
templateString="object/tangible/deed/harvester_deed/shared_harvester_gas_deed.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(27344);
deed1.setBER(5);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_gas_deed_medium.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(27344);
deed1.setBER(11);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_gas_deed_heavy.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(135400);
deed1.setBER(14);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_gas_deed_elite.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(250000);
deed1.setBER(44);
deed1.setAttributes();
inventory.add(deed1);
// Water
templateString="object/tangible/deed/harvester_deed/shared_harvester_moisture_deed.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(27344);
deed1.setBER(5);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_moisture_deed_medium.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(27344);
deed1.setBER(11);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_moisture_deed_heavy.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(135400);
deed1.setBER(14);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/harvester_deed/shared_harvester_moisture_deed_elite.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(250000);
deed1.setBER(44);
deed1.setAttributes();
inventory.add(deed1);
// Generators
templateString="object/tangible/deed/generator_deed/shared_generator_fusion_deed.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(250000);
deed1.setBER(19);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/generator_deed/shared_generator_wind_deed.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(250000);
deed1.setBER(10);
deed1.setAttributes();
inventory.add(deed1);
templateString="object/tangible/deed/generator_deed/shared_generator_solar_deed.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(250000);
deed1.setBER(15);
deed1.setAttributes();
inventory.add(deed1);
// templateString="object/tangible/deed/generator_deed/shared_generator_photo_bio_deed.iff";
// deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
// deed1.setOutputHopperCapacity(250000);
// deed1.setBER(19);
// inventory.add(deed1);
templateString="object/tangible/deed/generator_deed/shared_generator_geothermal_deed.iff";
deed1 = (Harvester_Deed)core.objectService.createObject(templateString, planet);
deed1.setOutputHopperCapacity(250000);
deed1.setBER(15);
deed1.setAttributes();
inventory.add(deed1);
break;
case 112:
core.resourceService.spawnSpecificResourceContainer("Radioactive", player, 100000);
break;
case 120:
SWGObject houseDeed = core.objectService.createObject("object/tangible/deed/player_house_deed/shared_generic_house_small_deed.iff", planet);
inventory.add(houseDeed);
+41 -1
View File
@@ -48,6 +48,7 @@ import protocol.swg.objectControllerObjects.CommandEnqueueRemove;
import protocol.swg.objectControllerObjects.ShowFlyText;
import protocol.swg.objectControllerObjects.StartTask;
import resources.objects.creature.CreatureObject;
import resources.objects.harvester.HarvesterObject;
import resources.objects.tangible.TangibleObject;
import resources.objects.weapon.WeaponObject;
@@ -137,7 +138,7 @@ public class CommandService implements INetworkDispatch {
target = actor;
}
if (target != actor) {
if (target != actor && target instanceof CreatureObject) {
return false;
}
@@ -521,6 +522,45 @@ public class CommandService implements INetworkDispatch {
}
});
objControllerOpcodes.put(ObjControllerOpcodes.RESOURCE_EMPTY_HOPPER, new INetworkRemoteEvent() {
@Override
public void handlePacket(IoSession session, IoBuffer data) throws Exception {
data.order(ByteOrder.LITTLE_ENDIAN);
Client client = core.getClient(session);
CommandEnqueue commandEnqueue = new CommandEnqueue();
// StringBuilder sb = new StringBuilder();
// for (byte b : data.array()) {
// sb.append(String.format("%02X ", b));
// }
// System.out.println(sb.toString());
/*
05 00 46 5E CE 80 83 00 00 00 ED 00 00 00 3E 45
04 00 00 00 00 00 00 00 00 00 3E 45 04 00 00 00
00 00 90 52 05 00 00 00 00 00 D7 35 05 00 00 00
00 00 01 00 00 00 00 07
*/
long playerId = data.getLong(); // 3E 45 04 00 00 00 00 00
data.getInt(); // 00 00 00 00
data.getLong(); // 3E 45 04 00 00 00 00 00
long harvesterId = data.getLong(); // 1E 55 05 00 00 00 00 00
//long containerId = data.getLong(); // 1E 55 05 00 00 00 00 00 Resources ID
long resourceId = data.getLong(); // 1E 55 05 00 00 00 00 00 Resources ID
int stackCount = data.getInt(); // Stack count
byte actionMode = data.get(); // 0 for retrieving, 1 for discarding
byte updateCount = data.get(); // updateCount
CreatureObject actor = (CreatureObject) client.getParent();
SWGObject target = core.objectService.getObject(harvesterId);
core.harvesterService.handleEmptyHopper(actor,target,harvesterId,resourceId,stackCount,actionMode,updateCount);
}
});
}
+24 -2
View File
@@ -96,8 +96,11 @@ import resources.objects.Delta;
import resources.objects.building.BuildingObject;
import resources.objects.cell.CellObject;
import resources.objects.creature.CreatureObject;
import resources.objects.deed.Harvester_Deed;
import resources.objects.group.GroupObject;
import resources.objects.guild.GuildObject;
import resources.objects.harvester.HarvesterObject;
import resources.objects.installation.InstallationObject;
import resources.objects.intangible.IntangibleObject;
import resources.objects.mission.MissionObject;
import resources.objects.player.PlayerObject;
@@ -314,7 +317,11 @@ public class ObjectService implements INetworkDispatch {
object = new SurveyTool(objectID, planet, Template, position, orientation);
}else if(Template.startsWith("object/tangible")) {
} else if(Template.startsWith("object/tangible/deed/harvester_deed") || Template.startsWith("object/tangible/deed/generator_deed")) {
object = new Harvester_Deed(objectID, planet, Template, position, orientation);
} else if(Template.startsWith("object/tangible")) {
object = new TangibleObject(objectID, planet, Template, position, orientation);
@@ -370,7 +377,22 @@ public class ObjectService implements INetworkDispatch {
object = new ResourceContainerObject(objectID, planet, Template, position, orientation);
}else {
} else if(Template.startsWith("object/installation/mining_ore/construction")) {
float positionY = core.terrainService.getHeight(planet.getID(), position.x, position.z)-1f;
Point3D newpoint = new Point3D(position.x,positionY,position.z);
object = new InstallationObject(objectID, planet, Template, newpoint, orientation);
} else if(Template.startsWith("object/installation/mining_ore") || Template.startsWith("object/installation/mining_liquid") ||
Template.startsWith("object/installation/mining_gas") || Template.startsWith("object/installation/mining_organic") ||
Template.startsWith("object/installation/generators")) {
float positionY = core.terrainService.getHeight(planet.getID(), position.x, position.z)-1f;
Point3D newpoint = new Point3D(position.x,positionY,position.z);
object = new HarvesterObject(objectID, planet, Template, newpoint, orientation);
core.harvesterService.addHarvester(object);
} else {
return null;
}
File diff suppressed because it is too large Load Diff
@@ -28,13 +28,16 @@ import java.util.Random;
import java.util.Vector;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import com.sleepycat.persist.EntityCursor;
import main.NGECore;
import engine.resources.common.CRC;
import engine.resources.objects.SWGObject;
import engine.resources.service.INetworkDispatch;
import engine.resources.service.INetworkRemoteEvent;
import resources.objects.creature.CreatureObject;
import resources.objects.harvester.HarvesterObject;
import resources.objects.resource.GalacticResource;
import resources.objects.resource.ResourceContainerObject;
import resources.objects.resource.ResourceRoot;
@@ -11306,6 +11309,36 @@ public class ResourceService implements INetworkDispatch {
return resource;
}
public Vector<GalacticResource> getSpawnedResourcesByPlanetAndHarvesterType(int planetId, byte harvesterType) {
Vector<GalacticResource> planetResourceList = new Vector<GalacticResource>();
byte searchtype = harvesterType;
if (harvesterType==7) searchtype = (byte) 0;
for (GalacticResource gal : allSpawnedResources){
if (gal.isSpawnedOn(planetId) && gal.getGeneralType()==searchtype)
if (harvesterType!=HarvesterObject.HARVESTER_TYPE_FUSION)
planetResourceList.add(gal);
else if (harvesterType==HarvesterObject.HARVESTER_TYPE_FUSION) {
System.err.println("gal.getContainerType() " + gal.getContainerType());
if (gal.getResourceRoot().getContainerType()==ResourceRoot.CONTAINER_TYPE_ENERGY_RADIOACTIVE)
planetResourceList.add(gal);
} else if (harvesterType==HarvesterObject.HARVESTER_TYPE_GEO) {
System.err.println("gal.getContainerType() " + gal.getContainerType());
if (gal.getGeneralType()==GalacticResource.GENERAL_GEOTHERM)
planetResourceList.add(gal);
}
}
return planetResourceList;
}
public GalacticResource findResourceById(long id){
GalacticResource resource = new GalacticResource();
for (GalacticResource sampleResource : allSpawnedResources){
if (sampleResource.getId()==id)
return sampleResource;
}
return resource;
}
// ToDo: Improve
public GalacticResource grabMeatForCreature(CreatureObject corpse){
GalacticResource resource = null;
+21
View File
@@ -46,6 +46,7 @@ import resources.common.FileUtilities;
import resources.common.ObjControllerOpcodes;
import resources.common.Opcodes;
import resources.common.RadialOptions;
import resources.objects.harvester.HarvesterObject;
import services.sui.SUIWindow.SUICallback;
import services.sui.SUIWindow.Trigger;
import engine.clients.Client;
@@ -81,6 +82,26 @@ public class SUIService implements INetworkDispatch {
if(target == null || owner == null)
return;
if (target instanceof HarvesterObject){
HarvesterObject harvester = (HarvesterObject) target;
Vector<String> admins = harvester.getAdminList();
Vector<String> hoppers = harvester.getHopperList();
if (harvester.getOwner()==owner && !admins.contains(owner.getCustomName())){
admins.add(owner.getCustomName());
}
if (! admins.contains(owner.getCustomName()) && ! hoppers.contains(owner.getCustomName())){
return; // Completely unauthorized
}
if (! admins.contains(owner.getCustomName()) && hoppers.contains(owner.getCustomName())){
// authorized for hopper
// change radialOptions to hopper access
harvester.setAttachment("radial_filename", "harvesterHopper");
}
}
if(target.getGrandparent() != null && target.getGrandparent().getAttachment("structureAdmins") != null)
{
if(core.housingService.getPermissions(owner, target.getContainer()))