Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
SubsystemDispenserBlockBehavior.cs
浏览该文件的文档.
2
3namespace Game {
5 public override int[] HandledBlocks => [216];
6
7 public override void Load(ValuesDictionary valuesDictionary) {
8 base.Load(valuesDictionary);
9 m_databaseObject = Project.GameDatabase.Database.FindDatabaseObject("Dispenser", Project.GameDatabase.EntityTemplateType, true);
10 }
11
12 public override bool InteractBlockEntity(ComponentBlockEntity blockEntity, ComponentMiner componentMiner) {
13 if (m_subsystemGameInfo.WorldSettings.GameMode != GameMode.Adventure) {
14 if (blockEntity != null
15 && componentMiner.ComponentPlayer != null) {
16 ComponentDispenser componentDispenser = blockEntity.Entity.FindComponent<ComponentDispenser>(true);
17 componentMiner.ComponentPlayer.ComponentGui.ModalPanelWidget = new DispenserWidget(componentMiner.Inventory, componentDispenser);
18 AudioManager.PlaySound("Audio/UI/ButtonClick", 1f, 0f, 0f);
19 return true;
20 }
21 }
22 return false;
23 }
24
25 public override void OnHitByProjectile(CellFace cellFace, WorldItem worldItem) {
26 bool acceptDrops = DispenserBlock.GetAcceptsDrops(
27 Terrain.ExtractData(m_subsystemTerrain.Terrain.GetCellValue(cellFace.X, cellFace.Y, cellFace.Z))
28 );
29 if (acceptDrops) {
30 base.OnHitByProjectile(cellFace, worldItem);
31 }
32 }
33
34 public override void OnHitByProjectile(MovingBlock movingBlock, WorldItem worldItem) {
35 bool acceptDrops = DispenserBlock.GetAcceptsDrops(Terrain.ExtractData(movingBlock.Value));
36 if (acceptDrops) {
37 base.OnHitByProjectile(movingBlock, worldItem);
38 }
39 }
40 }
41}
static void PlaySound(string name, float volume, float pitch, float pan)
ComponentPlayer ComponentPlayer
static bool GetAcceptsDrops(int data)
override void OnHitByProjectile(MovingBlock movingBlock, WorldItem worldItem)
override bool InteractBlockEntity(ComponentBlockEntity blockEntity, ComponentMiner componentMiner)
override void Load(ValuesDictionary valuesDictionary)
override void OnHitByProjectile(CellFace cellFace, WorldItem worldItem)
static int ExtractData(int value)
Component FindComponent(Type type, string name, bool throwOnError)
ValuesDictionary ValuesDictionary