mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-10-19 09:02:54 -04:00
Merge branch 'master' of https://github.com/ProjectSWGCore/NGECore2
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()))
|
||||
|
||||
Reference in New Issue
Block a user