fix hanf
This commit is contained in:
@@ -333,50 +333,61 @@ export default function hanfSystem(globalData: IGlobalData) {
|
||||
let hanfDataIdToObjectMap: Map<number, ObjectMp> = new Map<number, ObjectMp>();
|
||||
let hanfDataIdToTextLabelMap: Map<number, TextLabelMp> = new Map<number, TextLabelMp>();
|
||||
|
||||
mp.events.add("SERVER:Hanf_UpdateHanf", (dataJsonArr: string[]) => {
|
||||
var dataJson = dataJsonArr.join('');
|
||||
var data: Array<CannabisData> = <Array<CannabisData>>JSON.parse(dataJson)
|
||||
let currentHanfUpdateJsonData: Map<number, string> = new Map<number, string>();
|
||||
|
||||
var newPlants = data.filter(d => currentHanfData.filter(x => x.Id === d.Id).length == 0);
|
||||
var removedPlants = currentHanfData.filter(d => data.filter(x => x.Id === d.Id).length == 0);
|
||||
var existingPlants = data.filter(d => currentHanfData.filter(x => x.Id === d.Id).length == 1);
|
||||
|
||||
newPlants.forEach(plant => {
|
||||
var model = getPlantModel(plant);
|
||||
var object = mp.objects.new(getPlantModel(plant), new mp.Vector3(plant.X, plant.Y, plant.Z));
|
||||
hanfDataIdToObjectMap.set(plant.Id, object);
|
||||
|
||||
var textLabel = mp.labels.new(getPlantText(plant), new mp.Vector3(plant.X, plant.Y, plant.Z + 1), {
|
||||
los: true,
|
||||
drawDistance: 2
|
||||
});
|
||||
hanfDataIdToTextLabelMap.set(plant.Id, textLabel);
|
||||
});
|
||||
|
||||
removedPlants.forEach(plant => {
|
||||
var object = hanfDataIdToObjectMap.get(plant.Id);
|
||||
hanfDataIdToObjectMap.delete(plant.Id);
|
||||
object.destroy();
|
||||
var textLabel = hanfDataIdToTextLabelMap.get(plant.Id);
|
||||
textLabel.destroy();
|
||||
hanfDataIdToTextLabelMap.delete(plant.Id);
|
||||
});
|
||||
|
||||
existingPlants.forEach(plant => {
|
||||
var object = hanfDataIdToObjectMap.get(plant.Id);
|
||||
var model = getPlantModel(plant);
|
||||
if (model != object.model) {
|
||||
object.destroy();
|
||||
var object = mp.objects.new(model, new mp.Vector3(plant.X, plant.Y, plant.Z));
|
||||
hanfDataIdToObjectMap.delete(plant.Id);
|
||||
hanfDataIdToObjectMap.set(plant.Id, object);
|
||||
mp.events.add("SERVER:Hanf_UpdateHanf", (currentIndex: number, totalData: number, currentData: string) => {
|
||||
currentHanfUpdateJsonData.set(currentIndex, currentData);
|
||||
if (currentHanfUpdateJsonData.size == totalData) {
|
||||
var jsonData: string = "";
|
||||
for (var i = 0; i < totalData; i++) {
|
||||
jsonData += currentHanfUpdateJsonData.get(i);
|
||||
}
|
||||
|
||||
var textLabel = hanfDataIdToTextLabelMap.get(plant.Id);
|
||||
textLabel.text = getPlantText(plant);
|
||||
});
|
||||
currentHanfUpdateJsonData.clear();
|
||||
|
||||
currentHanfData = data;
|
||||
var data: Array<CannabisData> = <Array<CannabisData>>JSON.parse(jsonData)
|
||||
|
||||
var newPlants = data.filter(d => currentHanfData.filter(x => x.Id === d.Id).length == 0);
|
||||
var removedPlants = currentHanfData.filter(d => data.filter(x => x.Id === d.Id).length == 0);
|
||||
var existingPlants = data.filter(d => currentHanfData.filter(x => x.Id === d.Id).length == 1);
|
||||
|
||||
newPlants.forEach(plant => {
|
||||
var model = getPlantModel(plant);
|
||||
var object = mp.objects.new(getPlantModel(plant), new mp.Vector3(plant.X, plant.Y, plant.Z));
|
||||
hanfDataIdToObjectMap.set(plant.Id, object);
|
||||
|
||||
var textLabel = mp.labels.new(getPlantText(plant), new mp.Vector3(plant.X, plant.Y, plant.Z + 1), {
|
||||
los: true,
|
||||
drawDistance: 2
|
||||
});
|
||||
hanfDataIdToTextLabelMap.set(plant.Id, textLabel);
|
||||
});
|
||||
|
||||
removedPlants.forEach(plant => {
|
||||
var object = hanfDataIdToObjectMap.get(plant.Id);
|
||||
hanfDataIdToObjectMap.delete(plant.Id);
|
||||
object.destroy();
|
||||
var textLabel = hanfDataIdToTextLabelMap.get(plant.Id);
|
||||
textLabel.destroy();
|
||||
hanfDataIdToTextLabelMap.delete(plant.Id);
|
||||
});
|
||||
|
||||
existingPlants.forEach(plant => {
|
||||
var object = hanfDataIdToObjectMap.get(plant.Id);
|
||||
var model = getPlantModel(plant);
|
||||
if (model != object.model) {
|
||||
object.destroy();
|
||||
var object = mp.objects.new(model, new mp.Vector3(plant.X, plant.Y, plant.Z));
|
||||
hanfDataIdToObjectMap.delete(plant.Id);
|
||||
hanfDataIdToObjectMap.set(plant.Id, object);
|
||||
}
|
||||
|
||||
var textLabel = hanfDataIdToTextLabelMap.get(plant.Id);
|
||||
textLabel.text = getPlantText(plant);
|
||||
});
|
||||
|
||||
currentHanfData = data;
|
||||
}
|
||||
});
|
||||
|
||||
function getPlantModel(plant: CannabisData): number {
|
||||
|
||||
Reference in New Issue
Block a user