]> git.lizzy.rs Git - dragonblocks.git/blobdiff - engine/item_entity.js
Add Map Manager
[dragonblocks.git] / engine / item_entity.js
index d73677329f4074e2270dda8885ababee65ae3271..bd1b07b492314a5de249f1cc9e06938f9aee1938 100644 (file)
@@ -1,42 +1,47 @@
 /*
  * item_entity.js
- * 
+ *
  * Copyright 2020 Elias Fleckenstein <eliasfleckenstein@web.de>
- * 
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  * MA 02110-1301, USA.
- * 
- * 
- */ 
+ *
+ *
+ */
 
 dragonblocks.registerEntity({
        name: "dragonblocks:item_entity",
        width: 0.4,
        height: 0.4,
        gravity: true,
+       verticalSpeed: 2,
        onpunch: self => {
-               dragonblocks.dropItem(dragonblocks.player.give(self.meta.itemstring), self.x, self.y);
+               dragonblocks.dropItem(dragonblocks.player.give(self.meta.itemstring), self.map, self.x, self.y);
                self.despawn();
-       }
+       },
+       oncollide: self => {
+               self.jump();
+       },
 });
 
-dragonblocks.dropItem = function(itemstack, x, y) {
+dragonblocks.dropItem = (itemstack, map, x, y) => {
        if (! itemstack || ! itemstack.item || ! itemstack.count)
                return;
-       let entity = dragonblocks.spawnEntity("dragonblocks:item_entity", x, y);
-       entity.meta.itemstring = itemstack.stringify();
+
+       let entity = map.spawnEntity("dragonblocks:item_entity", x, y);
+       entity.meta.itemstring = itemstack.serialize();
        entity.texture = itemstack.toItem().texture;
        entity.updateTexture();
-}
+};